Массивы в языке СИ презентация

Содержание

Слайд 2

Основные определения

Массив - это конечная совокупность данных одного типа. Можно говорить о массивах

целых чисел, массивов символов и.т.д. Мы можем даже определить масссив, элементы которого - массивы( массив массивов), определяя, таким образм, многомерные массивы.
Массивы в Си являются однотипными (хранят данные только одного типа) и имеют заранее определенную длину (размер)

Слайд 3

Основные определения

В СИ массив хранится в виде группы последовательных ячеек одного типа, объединенных

под одним единым именем. Имя массива является указателем (указывает на адрес в памяти). Отдельная ячейка данных массива называется элементом массива. Элементами массива могут быть данные любого типа. Массивы могут иметь как одно, так и более одного измерений. В зависимости от количества измерений массивы делятся на одномерные массивы, двумерные массивы, трёхмерные массивы и так далее до n-мерного массива.

Слайд 4

Одномерные массивы

Одномерный массив – массив с одним параметром, характеризующим количество элементов одномерного массива.

Всегда сразу после имени массива идут квадратные скобочки, в которых задаётся размер одномерного массива, этим массив и отличается от всех остальных переменных. Синтаксис объявления одномерного массива в Си:
<тип данных> <имя одномерного массива>[размерность одномерного массива];

Слайд 5

Одномерные массивы

Например:
int a[16];
где, int - целочисленный тип данных; а - имя

одномерного массива; 16 – размер одномерного массива, 16 ячеек.
В СИ нумерация ячеек массива всегда начинается с 0.
Поэтому максимальный индекс одномерного массива в примере равен 15, но размер массива 16 ячеек. Индекс ячейки – это целое неотрицательное число, по которому можно обращаться к каждой ячейке массива и выполнять какие-либо действия над ячейкой.

Слайд 6

Одномерные массивы

Первый элемент имеет порядковый номер 0. Рассмотрим, почему это так. Представим память

компьютера в виде ленты. Имя массива - это указатель на адрес памяти, где располагаются элементы массива.
Массив хранит адрес первого элемента. Индекс i элемента - это сдвиг на i*sizeof(тип) байт от начала Индекс массива указывает, на сколько байт необходимо сместиться относительно начала массива, чтобы получить доступ к нужному элементу.

Слайд 7

Одномерные массивы

Например, если массив A имеет тип int, то A[10] означает, что мы

сместились на 10*sizeof(int) байт относительно начала. Первый элемент находится в самом начале и у него смещение 0*sizeof(int). В СИ массив не хранит своего размера и не проверяет индекс массива на корректность. Это значит, что можно выйти за пределы массива и обратиться к памяти, находящейся дальше последнего элемента массива (или ближе).

Слайд 8

Одномерные массивы

Массивы могут быть инициализированы при объявлении:
int a[16] = { 5, -12, -12,

9, 10, 0, -9, -12, -1, 23, 65, 64, 11, 43, 39, -15 };
int a[]={5,-12,-12,9,10,0,-9,-12,-1, 23, 65, 64, 11, 43, 39, -15};
Во втором случае показана инициализации массива без определения его размера. В этом случае компилятор сам определит размер одномерного массива. Размер массива можно не указывать только при его инициализации, при обычном объявлении массива обязательно нужно указывать размер массива.

Слайд 9

Одномерные массивы

Создадим массив, после чего найдём его максимальный элемент.

Слайд 10

Одномерные массивы

Eсли при инициализации указано меньше значений, чем размер массива, остальные элементы заполняются

нулями.
Если необходимо заполнить весь массив нулями, тогда пишем
int a[10] = {0};

Слайд 11

Одномерные массивы

Полноценных способов проверки, вышли мы за пределы массива или нет, не существует

Слайд 12

Одномерные массивы

Пример. В заданном массиве из 10 целых чисел надо изменить порядок следования

его элементов на обратный без привлечения вспомогательного массива.

Слайд 13

Код программы

Слайд 14

Одномерные массивы

В следующем примере массив описан как внешний. Функция main подсчитывает наибольшее число

одинаковых идущих подряд элементов массива, определенного вне функции main.

Слайд 15

Код программы

Код программы

Слайд 16

Двумерные массивы в СИ

В двумерном массиве, кроме количества элементов массива, есть такие характеристики

как, количество строк и количество столбцов двумерного массива. То есть, визуально, двумерный массив – это обычная таблица, со строками и столбцами.
Используется следующий синтаксис объявления двумерного массива:
<тип данных> <имя массива> [количество строк][количество столбцов];

Слайд 17

Двумерные массивы в СИ

Размеры двумерного массива в СИ указываются в отдельных парных квадратных

скобках после имени и могут быть любыми положительными целочисленными значениями.
Двумерный массив , который имеет пять строк и три столбца запишется в виде:
int a[5][3];
где: a - имя целочисленного массива, число в первых квадратных скобках указывает количество строк двумерного массива, в данном случае их 5; число во вторых квадратных скобках указывает количество столбцов двумерного массива, в данном случае их 3.

Слайд 18

Двумерные массивы в СИ
Обычным представлением таких массивов являются таблицы значений, содержащие информацию в

строках и столбцах. Чтобы определить отдельный табличный элемент, нужно указать два индекса: первый (по соглашению) указывает номер строки, а второй (опять же по соглашению) указывает номер столбца.

Слайд 19

Двумерные массивы в СИ

Рисунок иллюстрирует двумерный массив a. Массив содержит три строки и

четыре столбца, так что, еще говорят, - это массив три на четыре. Вообще, массивы с m строками и n столбцами называют массивами m на n.
Каждый элемент в массиве а определяется именем элемента в форме a[ i ][ j ]; a – это имя массива, аi иj – индексы, которые однозначно определяют каждый элемент в а. Заметим, что имена элементов первой строки имеют первый индекс 0, имена элементов в четвертом столбце имеют второй индекс 3.

Слайд 20

Двумерные массивы в СИ

Ниже представлено объявление двумерного массива с инициализацией:
int a[5][3] = {

{4, 7, 8}, {9, 66, -1}, {5, -5, 0}, {3, -3, 30}, {1, 1, 1} };
После знака присвоить ставятся общие фигурные скобочки, внутри которых ставится столько пар фигурных скобочек, сколько должно быть строк в двумерном массиве, причём эти скобочки разделяются запятыми. В каждой паре фигурных скобочек записывать через запятую элементы двумерного массива. Во всех фигурных скобочках количество элементов должно совпадать. Так как в массиве пять строк, то и внутренних пар скобочек тоже пять. Во внутренних скобочках записаны по три элемента, так как количество столбцов – три.

Слайд 21

Двумерные массивы в СИ

Допускается не указывать количество строк в двумерном массиве (указываются пустые

квадратные скобки). В таком случае размер массива будет определен по числу инициализирующих значений строк. Количество столбцов матрицы всегда необходимо указывать. Например:
  double b[][4] = {{1,2,3,4},{5,6,7,8}}

Слайд 22

Двумерные массивы в СИ

  Ввод и вывод матриц в языке СИ осуществляется поэлементно.

Так как матрица имеет двойную размерность, то ввод и вывод осуществляется во вложенных циклах. Например:   double a[5][10];   for(int i=0;i<5;i++)    for(int j=0;j<10;j++)     scanf("%lf”,&a[i][j]);   ...   for(int i=0;i<5;i++){    for(int j=0;j<10;j++)     printf("%8.2lf\t”,a[i][j]);    printf("\n”); }

Слайд 23

Двумерные массивы в СИ

В этом примере, сначала заполняем двумерный массив произведением его индексов,

а потом выводим на экран его содержимое.

Слайд 24

Код программы

Слайд 25

Двумерные массивы в СИ

В примере строится единичная матрица a[m][m], размер которой определяется с

помощью конструкции #difine M 5. Сам алгоритм вычисления элементов матрицы основан на том, что произведение (i/j)*(j/i) равно единице тогда и только тогда. когда i равно j. В остальных случаях оно равно нулю.

Слайд 26

Код программы

Слайд 27

Двумерные массивы в СИ

В программе определяется минимальный элемент каждой строки матрицы и выполняется

обмен местами найденного и диагональю этой же строки.

Слайд 28

Код программы

Имя файла: Массивы-в-языке-СИ.pptx
Количество просмотров: 81
Количество скачиваний: 1