Массивы
– структурированный тип данных, состоящий из фиксированного числа элементов одинакового типа, имеющих общее имя. Массив
A = (а 1 а 2 … а n ) Линейный (одномерный) массив Имя массива Элементы массива Примеры Массив оценок по предмету, массив фамилий, алфавит
b 11 b 12 … b 1m B =b 21 b 22 … b 2m … … … … b n1 b n2 … b nm Двумерный массив (таблица) Имя массива Элементы массива Примеры Ведомость оценок, меню в столовой,
Название регулярный тип массивы получили за то, что элементы в них, упорядочены по номерам (индексам), определяющим положение элемента в массиве. Примеры a i – элемент линейного массива; a ij – элемент двумерного массива. N строки N столбца i, j – индексы.
– выражения любого порядкового типа. Индексы Тип индекса определяет границы изменения значения индекса.
Формат описания массива type = array [тип индекса] of < тип элементов> ; var : < имя типа>; или var : array [тип индекса] of < тип элементов> ;
Примеры type m as = array[ 1..5 ] of byte; var m1 : array [ ] of real; m 2 : array [ ] of integer; m3 : array [ ] of char; m4 : m as ; m5 : array [ 1..3 ] of m as ; m6 : array [ 1..3, 1..5 ] of byte; m7 : array [ 1..4, 1..6, 1..2 ] of real; m8 : array [ boolean ] of char; m9 : array [ char ] of byte;
Ввод-вывод элементов линейного массива.
Нельзя вводить (выводить) массив как единое целое. Ввод-вывод значений элементов массива производится поэлементно в цикле.
Пример const n = 15; var m : array [ 1..n ] of integer; i : byte;
Ввод элементов линейного массива с клавиатуры for i := 1 to n do begin write( Введите m [, i, ] > ); readln( m [ i ] ); end;
Ввод элементов линейного массива случайными числами randomize; { обновление последовательности случайных чисел} for i := 1 to n do m [ i ] :=random(50); { ввод целыми случайными числами в [0;50) } Для заполнения целыми случайными числами в диапазоне [a ; b] используется выражение: random(b-a+1) + a.
Вывод элементов линейного массива for i := 1 to n do writeln( m [ i ] ); { вывод в столбец}
Ввод-вывод элементов двумерного массива.
– таблицы (матрицы). Двумерные массивы Каждый элемент матрицы определяется номерами строки и столбца, на пересечении которых он стоит. mas [i, j] – элемент двумерного массива. Имя N N массива строки столбца
Пример const n = 3; m=5; var mas : array [ 1..n,1..m ] of integer; i, j : byte;
Ввод элементов двумерного массива с клавиатуры for i := 1 to n do for j := 1 to m do readln( mas [ i,j ] );
Ввод элементов двумерного массива случайными числами randomize; for i := 1 to n do for j := 1 to m do mas [ i,j ] :=random(21)-10; { в вод целыми случайными числами в диапазоне [-10 ;10]}
Вывод элементов двумерного массива в виде таблицы for i := 1 to n do begin for j := 1 to m do write( mas [ i,j ] ); {вывод в строку} writeln; { перевод строки} end;
– это таблица, у которой число строк равно числу столбцов, т.е. n = m. Квадратная матрица
Свойства квадратных матриц b 11 b 12 … b 1n b 21 b 22 … b 2n … … … … b n1 b n2 … b nn Главная диагональ i = j Побочная диагональ i+j = n+1 i > j j > i i+j > n+1 i+j < n+1
!!! Для обработки диагоналей квадратных матриц достаточно одного цикла.