Опрацювання двовимірних масивів даних
Урок 53
teach-inf.at.ua
9
Опрацювання двовимірних масивів даних
Розділ 9 § 39
До типових задач опрацювання двовимірних масивів належать завдання на обчислення:
суми
добутку
кількості
середнього арифметичного
максимуму
мінімуму
елементів кожного рядка чи стовпця, заданого рядка чи стовпця. Обчислення здійснюються за допомогою стандартних прийомів, особливість яких полягає в організації вкладених циклів під час опрацювання масивів.
9
© Вивчаємо інформатику teach-inf.at.ua
Опрацювання двовимірних масивів даних
Розділ 9 § 39
Якщо за параметр
зовнішнього циклу
внутрішнього циклу
взяти індекс номер рядка
взяти індекс номер стовпця
То опрацювання двовимірного масиву буде йти по:
рядках
стовпцях
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Уявіть, що ви — керівник фірми і вам потрібно проаналізувати динаміку продажів телефонів.
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Якщо вас цікавить сумарний обсяг продажів за січень, то вам потрібно виконати додавання елементів першого стовпця таблиці «Продаж телефонів».
Продаж телефонів
№ з/п | Марка | Кількість проданих телефонів, од | ||
Січень | Лютий | Березень | ||
1 | Nokia | 80 | 110 | 120 |
2 | Samsung | 80 | 90 | 80 |
3 | Alcotel | 60 | 70 | 130 |
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Щоб знайти загальну кількість проданих телефонів марки Samsung, треба знайти суму елементів другого рядка.
Продаж телефонів
№ з/п | Марка | Кількість проданих телефонів, од | ||
Січень | Лютий | Березень | ||
1 | Nokia | 80 | 110 | 120 |
2 | Samsung | 80 | 90 | 80 |
3 | Alcotel | 60 | 70 | 130 |
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Якщо ж потрібно знайти загальну кількість проданих телефонів усіх марок за рік, то слід обчислити суму всіх елементів масиву.
Продаж телефонів
№ з/п | Марка | Кількість проданих телефонів, од | ||
Січень | Лютий | Березень | ||
1 | Nokia | 80 | 110 | 120 |
2 | Samsung | 80 | 90 | 80 |
3 | Alcotel | 60 | 70 | 130 |
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Знайти суму елементів третього рядка масиву.
var Tabl: array[1..4, 1..6] of Integer; і, j, Sum: Integer;
begin
Sum := 0;
For j := 1 to 6 do Sum := Sum+Tabl[3,j]; { додавання елементів третього рядка }
Edit1.Text := IntToStr(Sum);
end;
Tabl[1..4, 1..6] of Integer
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Знайти суму елементів в кожному рядку масиву:
var Tabl: array[1..4, 1..6] of Integer; і, j, Sum: Integer; R: String;
begin
R := ";
For і := 1 to 4 do begin // зовнішній цикл по рядках
Sum := 0; // перед початком додавання сума обнуляється
For j := 1 to 6 do Sum := Sum+ Tabl[i,j]; { додавання елементів і-го рядка }
R := R+IntToStr(Sum)+' '; { Sum перетворюється на тип String і додається до рядка відповіді R }
end;
Edit1.Text := R;
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Знайти суму всіх елементів масиву:
var Tabl: array[1..4, 1..6] of Integer;
і, j, Sum: Integer;
begin
Sum := 0;
For і := 1 to 4 do
For j := 1 to 6 do
Sum := Sum+Tabl[i,j];
Edit1.Text := IntToStr(Sum);
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Додавання значень елементів двовимірного масиву
Розділ 9 § 39
Знайти суму елементів головної діагоналі масиву:
var Tabl: array[1 ..4, 1..6] of Integer;
і, j. Sum: Integer;
Begin
Sum := 0;
For і := 1 to 4 do
Sum := Sum+Tabl[i,i]; { додавання елементів з однаковими індексами }
Edit1.Text := IntToStr(Sum);
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Пошук елементів двовимірного масиву, які задовольняють певній умові
Розділ 9 § 39
Знайти кількість парних елементів у кожному стовпці масиву Tabl.
var Tabl: array[..4, 1..6] of Integer; і, j, К: Integer; R: String;
begin
R := ";
For j := 1 to 6 begin // зовнішній цикл по стовпцях
К := 0 // перед початком перегляду кожного стовпця К обнуляється
For і := 1 to 4 do // внутрішній цикл по рядках
If Tabl[i,j] mod 2 = 0 Then К := K+1;
R := R+IntToStr(K) + ' '; { К перетворюється на тип String і
додається до рядка відповіді R }
end;
Edit1.Text := R;
end;
9
© Вивчаємо інформатику teach-inf.at.ua
Розділ 9 § 39
Знайти в кожному рядку масиву Tabl кількість елементів, які перевищують середнє арифметичне значення масиву.
var Tabl: array[1..4, 1..6] of Integer;
і, j, К, Sum: Integer; R: String; Sr: Real;
Begin
R := "; { обчислення суми всіх елементів масиву }
Sum := 0;
For і := 1 to 4 do
For j := 1 to 6 do Sum := Sum+Tabl[i,j];
Sr := Sum/24; // середнє арифметичне всіх 24 елементів масиву
For і := 1 to 4 do begin // зовнішній цикл по рядках
К := 0; // перед початком перегляду кожного рядка К обнуляється
For j := 1 to 6 do If Tabl[ij] > Sr Then К := K+1;
R := R+IntToStr(K)+' ‘; end;
Edit1.Text := R; end;
9
© Вивчаємо інформатику teach-inf.at.ua
Пошук елементів двовимірного масиву, які задовольняють певній умові
Розділ 9 § 39
Заповнити одновимірний масив В[1..6] значеннями максимальних елементів стовпців масиву Tabl.
var Tabl : array[1 ..4, 1..6] of Integer;
В: array[1..6] of Integer; і, 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(lntToStr(B[j])); // виведення B[j] end; end;
9
© Вивчаємо інформатику teach-inf.at.ua
Пошук елементів двовимірного масиву, які задовольняють певній умові
Розділ 9 § 39
Таким чином, опрацювання даних здійснюється шляхом застосування типових алгоритмів опрацювання одновимірних масивів до рядків або стовпців двовимірного масиву.
9
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Розділ 9 § 39
9
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 9 § 39
9
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 39, ст. 217-222
Розділ 9 § 39
9
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Розділ 9 § 39
Сторінка
220-222
Вправа 39
9
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
teach-inf.at.ua
9