Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Понятие массива
Массив это совокупность элементов одного типа, имеющих одно имя и расположенных в памяти ПК вплотную друг к другу. Массивы могут состоять из арифметических данных, символов, строк, структур, указателей. Доступ к отдельным элементам массива осуществляется по имени массива и индексу (порядковому номеру) элемента.
При объявлении массива в программе определяется имя массива, тип его элементов, размерность и размер. Размерность или количество измерений массива определяется количеством индексов при обращении к элементам массива. Массивы бывают одномерные, двухмерные, трехмерные и т.д. . Размер массива это количество его элементов по соответствующим размерностям.
Общий вид объявления массива:
<имя_типа> <имя_массива> [k1] [k2] … [kn];
где k1, k2, …, kn количество элементов массива константы или константные выражения по 1, 2, …, n измерениям. Причем значения индексов могут изменяться от 0 до ki 1.
Примеры объявления массивов:
int A [10]; //одномерный массив из 10 целочисленных величин
float X [20]; //одномерный массив из 20 вещественных величин
int a[5]={1, 2, 3, 4, 5}; //массив с инициализацией его элементов
int c[]={1 , 2, 0, 4, 5, 3, 5, 6, 1}; // массив размерность которого определяется числом инициализирующих элементов
Ввод вывод одномерного массива
Для ввода n элементов одномерного массива, назовем его А, требуется организовать цикл, для ввода каждого i го элемента, где i=0,1,2, …, n1. Аналогичный цикл требуется организовать и для вывода элементов массива.
/* Ввод вывод массива*/ #include <stdio.h> #include <iostrem.h> #include <math.h> #include <conio.h> void main() {clrscr(); int n=5,i; float A[5]; // Ввод массива for (i=0; i<n; i++) { printf("Введите число A[%2d]=",i); cin>>A[i]); } // Вывод массива cout<<"Массив A\n"; for(i=0;i<n;i++) printf("%6.3f ",A[i]); printf("\n"); } |
Пусть а[] заданный массив из n элементов. Сумма всех его элементов в математической форме выглядит следующим образом:
Алгоритм вычисления суммы состоит в следующем:
1. установить значение переменой для накопления суммы (s) в нулевое значение (s=0);
2. в цикле изменяя i от in до ik вычислить сумму элементов массива по выражениию s=s+ai.
При первой итерации цикла (i=in) получим s=s+ain= 0+ ain. На второй (i=in+1) s=s+ain+1= ain + ain+1 и т. д. На последней итерации цикла будем иметь s=s+aik= ain + ain+1+…+ aik. Т.е. в цикле по параметру i "старое" значение s, содержащее накопленную сумму на предыдущей итерации, изменяется на значение ai.
n 0 |
*/вычисление суммы всех элементов массива s=0; for(i=0;i<n;i++) s=s+a[i]; // или s+=a[i]; |
Производится по алгоритмам, аналогичным вычислению суммы. Отличие заключается в том, что вместо добавления элемента массива к сумме, переменная счетчик (k) увеличивается на единицу (k=k+1). Таким образом, вместо s=0 и s=s+ai записать k=0 и k=k+1, то получим алгоритмы подсчета количества элементов массива.
В одномерном массиве a размерностью n, вычислить количество элементов равных заданному числу B и стоящих на четных местах.
/* с помощью цикла for */ k=0; for(i=1;i<n;i+=2) if(a[i]==b ) k++; // или k=k+1; |
Формулы, по которым вычисляется произведение элементов массива, аналогичны формулам вычисления сумм:
P=1
I=0
P=P*a[i]
i=i+1
I<n
*/вычисление суммы всех элементов массива p=1; for(i=0;i<n;i++) p=p*a[i]; //или p*=a[i]; |
+
2.3 Перестановка двух элементов массива
Для перестановки двух элементов массива x[] с индексами k и m, необходимо использование дополнительной переменной (tmp), для хранения копии одного из элементов.
tmp=x[k]; x[k]=x[m]; x[m]=tmp; |