Описание двумерных массивов.
Двумерный массив представляет собой матрицу. Индекс двумерного массива состоит из номера строки и номера столбца, на пересечении которых находится элемент. К элементу двумерного массива обращаются, указывая через запятую номер строки и номер столбца, например, a[3,3], a[1,2].
Объявление двумерного массива аналогично объявлению одномерных массивов:
Const n=4; m=3;
Type mas= array[1..m,1..n] of integer;
Var a,b:mas;
Заполнение двумерного массива.
Присвоить элементам двумерного массива значения можно, также как для одномерного:
1) вводя значения с клавиатуры;
2) случайными числами;
3) вычисляя значение по формуле.
Примеры заполнения двумерного массив, содержащего 8 строк и 12 столбцов случайными числами:
1) построчно (индекс строк меняется медленнее, чем индекс столбца)
for i:=1 to 8 do
for j:=1 to 12 do
a[i, j]:=random(100);
2) по столбцам (индекс столбца меняется медленнее, чем индекс строки)
for j:=1 to 12 do
for i:=1 to 8 do
a[i, j]:=random(100);
Примеры.
1. Найти минимальный по модулю элемент каждой строки матрицы.
Program example1;
Const m=5; n=8;
Var a:array[1..m, 1..n] of real;
i,j:integer;
jmin:integer;{номер строки с минимальным элементом}
begin
for i:=1 to m do
for j:=1 to n do
Read(a[i,j])
for i:=1 to m do begin
jmin:=1;
for j:=2 to n do
if abs([a[i,j]) < abs(a[i, jmin]) then jmin:=j;
writeln(’минимальный по модулю элемент в строке ‘,i, ‘ в столбце ‘, j, ‘равен ’ a[i, jmin]:5:1)
end
end.
2. В двумерном массиве а(5,5) найти среднее арифметическое значение чётных элементов массива.
Program example2;
Const m=5; n=5;
Var a:array[1..m, 1..n] of integer;
S, k, i, j: integer;
Sr:real;{среднее значение чётных элементов }
begin
for i:=1 to m do
for j:=1 to n do
Read(a[i,j])
S:=0;
K:=0;
for i:=1 to m do begin
for j:=2 to n do
if a[i, j] mod 2=0 then
begin
s:=s+a[i, j];{сумма чётных элементов}
k:=k+1; {количество чётных элементов}
end;
if k=0 then writeln(‘чётных элементов в массиве нет’)
else begin
sr:=s/k;
writeln(‘sr=’,sr:5:2)
end;
end.
Упражнения.
1. В матрице А(8,8) найти сумму элементов главной диагонали.
2. В матрице A(10,12) поменять местами строки с минимальным и максимальным элементами.
3. В матрице Х(8,5) найти среднее арифметическое значение максимальных элементов в каждой строке.
4. В матрице В(10,8) найти минимальный и максимальный элементы в каждой строке и их порядковые номера.
5. В матрице В(9,7) найти минимальный и максимальный элементы в каждом столбце и их порядковые номера.
6. В матрице С(10,12) найти отрицательные элементы и их порядковые номера. Сформировать из этих элементов массив.
7. Найти минимальное и максимальное значение элементов главной диагонали матрицы В(8,8),их порядковые номера. Значения элементов определить по формуле:
где: - порядковый номер элемента в столбце и в строке. При делении на 0 элемент массива принять равным 10.
8. В матрице С(8,11) найти отрицательные элементы в каждой строке и их сумму.
9. В матрице В(6,6) найти чётные значения элементов, их порядковые номера, количество и сумму.
10. Транспонировать матрицу Х(6,6).
11. Найти сумму элементов до максимального и минимального значения в матрице А(6,9).
12. В массиве В(3,3) поменять местами столбец, содержащий максимальный элемент, со столбцом, содержащим минимальный элемент.
13. Найти сумму элементов той строки массива А(3,3), в которой расположен максимальный элемент строки.
14. Найти наибольшую сумму из сумм каждой строки массива М(4,4).
15. Сформировать массив из минимальных элементов столбцов матрицы А(4,4).
16. Дан массив А(10) и массив В(3,3). В массиве В заменить нулями те элементы, которые имеют нечетную сумму индексов и превосходят среднее арифметическое значение элементов массива А.
17. Написать программу, которая удаляет из массива В(10,12) элементы, меньше заданной величины и освободившиеся места заполняет нулями.
Строки.