До типових задач опрацювання двовимірних масивів належать завдання на обчислення суми, добутку, кількості, середнього арифметичного, максимуму, мінімуму елементів кожного рядка чи стовпця, заданого рядка чи стовпця. Обчислення здійснюються за допомогою стандартних прийомів, особливість яких полягає в організації вкладених циклів під час опрацювання масивів.
Зверни увагу!
Якщо за параметр зовнішнього циклу взяти індекс рядка, а за параметр внутрішнього — номер стовпця, то опрацювання двовимірного масиву буде йти по рядках, а якщо навпаки — то по стовпцях.
Додавання значень елементів двовимірного масиву
Які завдання можуть постати перед фахівцем під час аналізу таблиці «Продаж телефонів»?
- Якщо цікавить сумарний обсяг продажів за січень, то потрібно виконати додавання елементів першого стовпця таблиці «Продаж телефонів».
- Щоб знайти загальну кількість проданих телефонів марки Samsung, треба знайти суму елементів другого рядка.
- Якщо потрібно знайти загальну кількість проданих телефонів усіх марок за рік, то слід обчислити суму всіх елементів масиву.
Приклад:
Знайти суму елементів третього рядка масиву Tabl[1..4, 1..6] of Integer.
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For j := 1 to 6 do Sum := Sum+Tabl[3,j]; // додавання елементів 3—го рядка
Edit1.Text := IntToStr(Sum);
end;
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For j := 1 to 6 do Sum := Sum+Tabl[3,j]; // додавання елементів 3—го рядка
Edit1.Text := IntToStr(Sum);
end;
Приклад:
Знайти суму елементів в кожному рядку масиву:
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer; R: String;
begin
R := ‘’;
For i := 1 to 4 do begin // зовнішній цикл по рядках
Sum := 0; // перед початком додавання сума обнуляється
For j := 1 to 6 do Sum := Sum+Tabl [i,j]; // додавання елементів і-го рядка
R := R+IntToStr(Sum)+’ ‘; // IntToStr(Sum) додається до рядка відповіді R
end;
Edit1.Text := R;
end;
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer; R: String;
begin
R := ‘’;
For i := 1 to 4 do begin // зовнішній цикл по рядках
Sum := 0; // перед початком додавання сума обнуляється
For j := 1 to 6 do Sum := Sum+Tabl [i,j]; // додавання елементів і-го рядка
R := R+IntToStr(Sum)+’ ‘; // IntToStr(Sum) додається до рядка відповіді R
end;
Edit1.Text := R;
end;
Приклад:
Знайтисумувсіх елементів масиву:
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For i := 1 to 4 do
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For i := 1 to 4 do
For j := 1 to 6 do Sum := Sum+Tabl[i,j];
Edit1.Text := IntToStr(Sum);
end;
Edit1.Text := IntToStr(Sum);
end;
Приклад:
Знайти суму елементів головної діагоналі масиву:
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For i := 1 to 4 do Sum := Sum+Tabl[i,і]; //додавання елементів з однаковими індексами
Edit1.Text := IntToStr(Sum);
end;
var Tabl: array[1..4, 1..6] of Integer; i, j, Sum: Integer;
begin
Sum := 0;
For i := 1 to 4 do Sum := Sum+Tabl[i,і]; //додавання елементів з однаковими індексами
Edit1.Text := IntToStr(Sum);
end;
Пошук елементів двовимірного масиву, які задовольняють певній умові
Приклад:
Знайти кількість парних елементів у кожному стовпці масиву Tabl.
var Tabl: array[1..4, 1..6] of Integer; i, j, K: Integer; R: String;
begin
R := ‘’;
For j := 1 to 6 begin // зовнішній цикл по стовпцях
K := 0; // перед початком перегляду кожного стовпця К обнуляється
For i := 1 to 4 do // внутрішній цикл по рядках
If Tabl[i,j] mod 2 = 0 Then K := K+1;
R := R+IntToStr(K) + ’ ‘; //IntToStr(K) додається до рядка відповіді R
end;
Edit1.Text := R;
end;
var Tabl: array[1..4, 1..6] of Integer; i, j, K: Integer; R: String;
begin
R := ‘’;
For j := 1 to 6 begin // зовнішній цикл по стовпцях
K := 0; // перед початком перегляду кожного стовпця К обнуляється
For i := 1 to 4 do // внутрішній цикл по рядках
If Tabl[i,j] mod 2 = 0 Then K := K+1;
R := R+IntToStr(K) + ’ ‘; //IntToStr(K) додається до рядка відповіді R
end;
Edit1.Text := R;
end;
Приклад:
Знайти в кожному рядку масиву Tabl кількість елементів, які перевищують середнє арифметичне значення масиву.
var Tabl: array[1..4, 1..6] of Integer;
i, j, K, Sum: Integer; R: String; Sr: Real;
begin
R := ’’;
Sum := 0; // обчислення суми всіх елементів масиву
For i := 1 to 4 do
For j := 1 to 6 do Sum := Sum+Tabl[i,j];
Sr := Sum/24; // середнє арифметичне всіх 24 елементів масиву
For i := 1 to 4 do begin // зовнішній цикл по рядках
K := 0; // перед початком перегляду кожного рядка К обнуляється
For j := 1 to 6 do If Tabl[i,j] > Sr Then K := K+1;
R := R+IntToStr(K) +’ ‘;
end;
Edit1.Text := R;
end;
var Tabl: array[1..4, 1..6] of Integer;
i, j, K, Sum: Integer; R: String; Sr: Real;
begin
R := ’’;
Sum := 0; // обчислення суми всіх елементів масиву
For i := 1 to 4 do
For j := 1 to 6 do Sum := Sum+Tabl[i,j];
Sr := Sum/24; // середнє арифметичне всіх 24 елементів масиву
For i := 1 to 4 do begin // зовнішній цикл по рядках
K := 0; // перед початком перегляду кожного рядка К обнуляється
For j := 1 to 6 do If Tabl[i,j] > Sr Then K := K+1;
R := R+IntToStr(K) +’ ‘;
end;
Edit1.Text := R;
end;
Приклад:
Заповнитиодновимірний масив В[1..6] значеннями максимальних елементів стовпців масиву Tabl.
var Tabl: array[1..4, 1..6] of Integer;
var Tabl: array[1..4, 1..6] of Integer;
B: array[1..6] of Integer; i, j, Max: Integer;
begin
For j := 1 to 6 begin // зовнішній цикл по стовпцях
Max := Tabl[1,j];
For і := 2 to 4 do
If Max < Tabl[i, j] Then Max := Tabl[i, j];
B[j] := Max;
ListBox1.Items.Add(IntToStr(B[j])); // виведення В[j]
end;
end;
begin
For j := 1 to 6 begin // зовнішній цикл по стовпцях
Max := Tabl[1,j];
For і := 2 to 4 do
If Max < Tabl[i, j] Then Max := Tabl[i, j];
B[j] := Max;
ListBox1.Items.Add(IntToStr(B[j])); // виведення В[j]
end;
end;
Таким чином, опрацювання даних здійснюється шляхом застосування типових алгоритмів опрацювання одновимірних масивів до рядків або стовпців двовимірного масиву.
Джерела:
За підручником Інформатика : підруч. для 9 кл. загальноосвіт. навч. закл. /О.О.Бондаренко, В.В.Ластовецький, О.П.Пилипчук, Є.А.Шестопалов.—Х.:Видво «Ранок», 2017.