ВП_Лекция 8_C_Статические_массивы.ppt
- Количество слайдов: 23
Статические массивы Лекция 8 ст. преп. М. А. Сокольская
План. Понятие массива Статические одномерные массивы 1. 2. • • • Статические двумерные массивы. 3. • • 2 Объявление Обработка Примеры • Объявление Обработка Примеры
Понятие массива 3 Определение Массив – последовательность однотипных элементов, имеющих общее имя, доступ к которым осуществляется по индексу. Все массивы состоят из смежных ячеек памяти. Младший адрес соответствует первому элементу массива, старший – последнему. Виды массивов в С: 1) Статические 2) Динамические
Статические массивы 1. Количество элементов зафиксировано при объявлении. 2. Память для массива выделяется на этапе трансляции программы. 3. Массив объявляется вместе с остальными переменными программы 4
Объявление статического массива 5 Тип_элементов имя_массива [ кол-во_эл-тов ] Пример: int a [ 20 ]; #define nmax 40 float mas [ nmax ]; Можно инициализировать массивы вместе с объявлением: char a[7]="Привет"; char b[7]={'П', 'р', 'и', 'в', 'е', 'т', 0 x 0}; char c[]="Привет"; double d[5]={2. 3, 3. 1, 4. 2, 5. 0, 4. 2}
Обращение к элементам статического массива Осуществляется через индекс элемента. В С все массивы нумеруются с нуля. int a[5]; a[0]=8; a[1]=2*k; a[i-3]=8*l; 6
Обращение к элементу массива (в общем случае) К элементу массива любого типа можно обратиться: - через индекс; - используя имя массива как указатель на его первый элемент (адресная арифметика). 7
Пример: сортировка одномерного массива методом «пузырька» 8
Пример: сортировка одномерного массива методом «пузырька» 9 int main (){ int massiv [ 10 ]; // исходный массив int i, j; //переменные циклов int tmp; // вспомогательная переменная //заполнение массива и его вывод на экран srand(time (NULL)); /* инициализация генератора случайных чисел*/ for (i=0; i<10; i++) { massiv [ i ] = rand (RAND_MAX) % 100; cout<
//цикл сортировки for (i=0; i<10; i++) for (j=0; j<9; j++) if (massiv [ j ]>massiv [ j+1 ]) { tmp=massiv[ j ]; massiv[ j ]=massiv[ j+1 ]; massiv[ j+1 ]=tmp; } 10
//вывод на экран результата for (i=0; i<10; i++) cout<
Пример. Реверс массива (статический массив) 12 #include
a[j]=j+1; printf("%3 d", a[j]); } invert(a, N); printf("n. After reverse: n"); for(j=0; j
void invert (int *a, int n) //передача массива в функцию { for(int j=0, tmp; j
Двумерные массивы используются при решении матричных (табличных) задач и задач, сводящихся к матричным. Синтаксис объявления массива: тип_элементов имя_массива [кол-во строк][кол -во столбцов]; 15
Объявление статического двумерного массива #define n 10 #define m 5 int mass[n][m]; long massl [ 5 ]; int q[2][3]={{1, 1, 1} {2, 2, 2}}; mass[i][j]=4; massl[0][0]=200*l; 16
Пример. Сложение квадратных матриц #include
for (j=0; j
printf(“n”); } getch(); } 19
Пример: умножение матриц 20 #define n 5 void main (){ int a[n][n], b[n][n], c[n][n]; int i, j; for (i=0; i<=n; i++) //заполнение матриц for (j=0; j<=n; j++) { a[i][j] = rand(RAND_MAX)%100; b[i][j] = rand(RAND_MAX)%100; c[i][j]=0; }
21 //вывод матрицы a for (i=0; i
int k=0; for (i=0; i
for (i=0; i