двумерные массивы
Массивы Двумерный массив (матрица) – это массивы, положение элементов в которых описывается двумя индексами или прямоугольная таблица, состоящая из нескольких строк и столбцов Обозначение: a[i,j], где i – номер строки, j – номер столбца var a:array[1..n, 1..m] of integer;
Структура массива Двумерный массив В[i,j] типа integer из 4 строк и 5 колонок. Элемент массива В[2,4]=34 индексы Номер строки Номер столбца
Объявление массивов Зачем объявлять? –определить имя массива –определить тип массива –определить число элементов –выделить место в памяти ЭВМ Объявление массива позволяет правильно оперировать с данными и резервировать место для хранения данных в памяти.
Объявление массива целых чисел Массив описывают в секции VAR var A : array[ ] of integer ; имя начальный индекс конечный индекс тип Const N=12; var A: array[1.. N] of integer; Описание через константу
Объявление массивов Массивы других типов: var X, Y: array [1..10] of real; C: array [1..20] of char; Другой диапазон индексов: var Q: array [0..9] of real; C: array [-5..13] of char; Индексы других типов: var A: array ['A'..'Z'] of real; B: array [False..True] of integer; D: array ['a'..'z',w2..w4] of string; A['C'] := *A['B']; B[False] := B[False] + 1;
Что нельзя делать? Нельзя в массивы целого типа вводить вещественные значения var a: array[1..10] of integer;... A[5] := 4.5; Нельзя использовать индексы отсутствующие в перечислениях var a: array ['z'..с'] of integer;... A['B'] := 15; Нельзя выходить за пределы индексов указанные в описании var a: array [0..9] of integer;... A[10] := 'X';
Операции с массивами Выполняются в циклах Объявление const N = 5; var a: array[1..N] of integer; i: integer; Ввод данных с клавиатуры for i:=1 to N do begin write('a[', i, ']='); read ( a[i] ); end; Данные обрабатывают поэлементно for i:=1 to N do a[i]:=a[i]*2; Вывод данных на дисплей writeln('Массив A:'); for i:=1 to N do write(a[i]:4); a[1] = a[2] = a[3] = a[4] = a[5] = a[1] = a[2] = a[3] = a[4] = a[5] = for i:=1 to N do writeln (a[,I,]=,a[i]:4); Что будет на экране?
Двумерный массив Массив – набор элементов одного типа, имеющих общее имя, и разные номера (индексы). Массив с двумя индексами называют двухмерным. Моделью двумерного массива является прямоугольная таблица элементов - матрица. Номер элемента состоит из двух чисел – номера строки, и номера столбца. Матрица 3 х 3 элемента Главная диагональ Обращение к элементам массива имеет вид: А [ i, j ]. Это означает, что мы хотим получить элемент, расположенный в i -й строке и j -м столбце.
Описание двумерного массива Описание матрицы в разделе var аналогично описанию одномерного массива, только необходимо указывать диапазон изменения столбцов и строк. Const n=10; m=12; Var a:array [1..n,1..m] of integer; Или Var B:array [1..10,1..12] of real;
Ввод двумерного массива Паскаля с клавиатуры Writeln (Введите матрицу построчно); For i:=1 to n do For j:= 1 to m do Begin Write (a[,i,,,j,]=); Readln (a[i,j]); End;
Ввод двумерного массива из генератора случайных чисел Randomize; For i:=1 to n do Begin Begin For j:=1 to m do Begina[i,j]:=random(11)+2; write(a[i,j], ); End;Writeln;End; Массив случайных целых чисел из интервала [2,12]
Суммирование элементов массива Сумма всех элементов: sum:=0; for i:=1 to n do for j:=1 to m do sum:=sum+a[i,j]; writеln('Сумма=',sum); Сумма элементов главной диагонали (x[1,1], x[2,2] и т.д.): sum:=0; for i:=1 to n do sum:=sum+a[i,i]; writеln ('Сумма=',sum); Cумма по столбцам с записью в массив zum[1..m]: for j:=1 to m do zum[j]:=0; for i:=1 to n do zum[j]:=zum[j]+x[i,j]; for j:=1 to m do write(zum[j]:4);
Максимальный (минимальный) элемент массива max:=a[1,1]; min:=a[1,1]; for i:=1 to n do for j:=1 to m do begin if a[i,j]>max then max:=a[i,j]; if a[i,j]<min then min:=a[i,j]; end; writeln (max=,max,max=,min);
Решение задач Вывести максимальные и минимальные элементы в каждом столбце двумерного массива program mass2x; Const n=10; m=12; Var a:array [1..n,1..m] of integer; i,j,min,max: integer; begin For i:=1 to n do Begin For j:=1 to m do Begin a[i,j]:=random(11)+2; write(a[i,j]:6,' '); End; Writeln; End; Writeln; For j:=1 to m do Begin min:=a[1,j]; max:=a[1,j]; For i:=1 to n do Begin if min>a[i,j] then min:=a[i,j]; if max<a[i,j] then max:=a[i,j]; write (a[i,j]:6,' '); End; writeln(j,' столбец min=',min,' max=',max) ; End; Writeln( ); end.
Задание на самоподготовку Найти произведение нечетных элементов двумерного массива целых чисел. Найти сумму элементов двумерного массива, находящихся ниже главной диагонали. Найти максимальный элемент дополнительной диагонали квадратной матрицы. Дополнительная диагональ Главная диагональ