В памяти компьютера двумерный массив располагается по строкам
a11 a12 a13 a14 a21 a22 a23 a24 a31 a32 a33 a34
1 строка | 2 строка | 3 строка |
При просмотре массива от начала в первую очередь изменяется первый индекс(номер столбца. К элементу двумерного массива обращаются, указывая номер строки и номер столбца, на пересечении которых он расположен, например 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 по формуле.
Пример заполнения двумерного массив случайным образом:
a. по строке (индекс строк меняется медленнее, чем индекс столбца)
for i:=1 to 8 do
for j:=1 to 12 do
a[i, j]:=random(100);
b. по столбцу (индекс столбца меняется медленнее, чем индекс строки)
for j:=1 to 8 do
for i:=1 to 12 do
a[i, j]:=random(100);
Примеры
1.Найти минимальный по модулю элемент каждой строки матрицы. Блок схема программы показана на рисунке 5.1
Program example-1;
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.
исунке 5.1

Рисунок 5.1. Блок схема программы.
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,8) найти среднее арифметическое значение максимальных элементов в каждой строке
4. В матрице В(8,8) найти минимальный и максимальный элементы в каждой строке и их порядковые номера.
5. В матрице В(8,8) найти минимальный и максимальный элементы в каждом столбце и их порядковые номера.
6. В матрице С(8,8) найти отрицательные элементы и их порядковые номера. Сформировать из этих элементов массив.
7. Найти минимальное и максимальное значение элементов главной диагонали матрицы
( 8,8 ), их порядковые номера
Элементы определить по формуле:
где:
- порядковый номер элемента в столбце и в строке. При делении на 0 элемент массива принять равным 10.
8. В матрице С(8,11) найти отрицательные элементы и их сумму в каждой строке.
9. В матрице В(6,6) найти чётные значения элементов, их порядковые номера, количество и сумму.
10. Транспонировать матрицу Х(8,8).
11. Найти сумму элементов до максимального и минимального значения в матрице А(6,9).
12. В массиве В(3,3) поменять местами столбец, содержащий наибольшее значение со столбцом, содержащим наименьшее значение.
13. Найти сумму элементов той строки массива А(3,3), в которой расположен максимальный элемент строки.
14. Найти наибольшую сумму из сумм каждой строки массива М(5,5).
15. Сформировать массив из минимальных элементов столбцов матрицы А(4,4).
16. Дан массив А(10) и массив В(3,3). В массиве В заменить нулями те элементы, которые имеют нечетную сумму индексов и превосходят среднее арифметическое значение элементов массива А.
17. Написать программу, которая удаляет из массива В(10,12) элементы,меньше заданной величины и освободившиеся места заполняет нулями
Строки






