Скачать презентацию Статические массивы Лекция 8 ст преп М А Скачать презентацию Статические массивы Лекция 8 ст преп М А

ВП_Лекция 8_C_Статические_массивы.ppt

  • Количество слайдов: 23

Статические массивы Лекция 8 ст. преп. М. А. Сокольская Статические массивы Лекция 8 ст. преп. М. А. Сокольская

План. Понятие массива Статические одномерные массивы 1. 2. • • • Статические двумерные массивы. План. Понятие массива Статические одномерные массивы 1. 2. • • • Статические двумерные массивы. 3. • • 2 Объявление Обработка Примеры • Объявление Обработка Примеры

Понятие массива 3 Определение Массив – последовательность однотипных элементов, имеющих общее имя, доступ к Понятие массива 3 Определение Массив – последовательность однотипных элементов, имеющих общее имя, доступ к которым осуществляется по индексу. Все массивы состоят из смежных ячеек памяти. Младший адрес соответствует первому элементу массива, старший – последнему. Виды массивов в С: 1) Статические 2) Динамические

Статические массивы 1. Количество элементов зафиксировано при объявлении. 2. Память для массива выделяется на Статические массивы 1. Количество элементов зафиксировано при объявлении. 2. Память для массива выделяется на этапе трансляции программы. 3. Массив объявляется вместе с остальными переменными программы 4

Объявление статического массива 5 Тип_элементов имя_массива [ кол-во_эл-тов ] Пример: int a [ 20 Объявление статического массива 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 Пример: сортировка одномерного массива методом «пузырька» 8

Пример: сортировка одномерного массива методом «пузырька» 9 int main (){ int massiv [ 10 Пример: сортировка одномерного массива методом «пузырька» 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 //цикл сортировки 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<<massiv [ i ]<<“, “; _getch(); //вывод на экран результата for (i=0; i<10; i++) cout<

Пример. Реверс массива (статический массив) 12 #include <stdio. h> #include <conio. h> #define N Пример. Реверс массива (статический массив) 12 #include #include #define N 20 //объявление константы void invert(int *a, int n); //прототип функции void main() { int j, a[N]; printf(“Исходный массив: n"); for(j=0; j

a[j]=j+1; printf( 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; 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 Объявление статического двумерного массива #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 <stdio. h> #include <math. h> #include <conio. h> #define Пример. Сложение квадратных матриц #include #include #include #define n 5 void main () { int a[n][n], b[n][n], c[n][n]; int i, j; for (i=0; i

for (j=0; j<n; j++) { scanf(“%d%d”, &a[ i ][ j ], &b[ i ][ for (j=0; j

printf(“n”); } getch(); } 19 printf(“n”); } getch(); } 19

Пример: умножение матриц 20 #define n 5 void main (){ int a[n][n], b[n][n], c[n][n]; Пример: умножение матриц 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<n; i++){ for (j=0; j<n; j+) printf(“%5 d”, 21 //вывод матрицы a for (i=0; i

int k=0; for (i=0; i<n; i++) for (j=0; j<n; j++) for (k=0; k<n; k++) int k=0; for (i=0; i

for (i=0; i<n; i++){ for (j=0; j<n; j+) printf(“%5 d”, с[i][j]); printf(“n”); } //for for (i=0; i