Алгоритми опрацювання табличних величин
Урок 45
teach-inf.at.ua
9
Задачі опрацювання масивів
Розділ 9 § 34
Розв'язування багатьох прикладних задач, що потребують опрацювання сукупності однотипних значень, базується на типових алгоритмах опрацювання масивів, які передбачають послідовний перегляд елементів масиву і виконання певних дій із кожним елементом.
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі опрацювання масивів
Розділ 9 § 34
Серед різноманіття задач опрацювання послідовностей можна виділити основні типи задач опрацювання одновимірних масивів:
задачі на змінювання значень елементів масиву;
задачі на пошук у масиві елемента із заданою властивістю;
задачі на знаходження суми (добутку) елементів масиву;
задачі на впорядкування (сортування) масивів.
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі опрацювання масивів
Розділ 9 § 34
Опрацювання елементів масиву виконується в циклах, де як індекс використовують параметр циклу. Розглянемо способи розв'язування таких задач на прикладі числового масиву
A[1..N]
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на змінювання значень елементів масиву
Розділ 9 § 34
Заміна значень усіх елементів масиву
Алгоритм розв'язування задачі: послідовно перебрати всі елементи масиву і значення чергового елемента змінити за певним правилом наприклад,
змінити знак елементів на протилежний
надати всім елементам нульові значення
збільшити значення всіх елементів на певну величину
Подвоїти значення елементів масиву A[1..N].
For і := 1 to N do A[i] := A[i]*2;
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на змінювання значень елементів масиву
Розділ 9 § 34
Заміна значень із перевіркою умови
Алгоритм розв'язування задачі: послідовно перебрати всі елементи масиву; якщо черговий елемент відповідає деякій умові, його значення змінити за певним правилом. Як умова може перевірятися значення елемента масиву на кратність деякому числу, додатність, рівність нулю тощо.
Може перевірятися також і значення індексу елемента масиву (наприклад, змінюються елементи, що стоять на парних місцях).
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на змінювання значень елементів масиву
Розділ 9 § 34
Від'ємні елементи масиву А замінити числом 25.
For і := 1 to N do
If A[i] < 0 Then A[i] := 25;
Елементи масиву А, що мають парні індекси, замінити нулем.
For і := 1 to N do
If і mod 2 = 0 Then A[i] := 0;
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Визначення кількості елементів із заданою властивістю
Визначити кількість додатних елементів масиву А.
К := 0; {лічильник елементів із заданою властивістю}
For і := 1 to N do
If A[i] > 0 Then К := K+1;
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Визначення найбільшого (найменшого) елемента масиву A[i..N]
Алгоритм розв'язування задачі: припустити, що найбільшим є перший елемент масиву, після чого послідовно перебрати елементи масиву, починаючи з другого; якщо черговий елемент більший за максимальний, його значення запам'ятати як максимальне.
Часто крім значення максимального елемента потрібно знайти і його індекс.
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Визначити індекс найбільшого числа в масиві А[1..N].
Мах := А[1]; {змінна для збереження найбільшого значення елемента}
К := 1; // змінна для збереження індексу найбільшого елемента
For і := 2 to N do {перебираємо елементи, починаючи з другого}
If A[i] > Max Then begin
{ якщо і-й елемент більший за Мах, значення Мах замінюється на значення А[і]; у змінній К запам'ятовуємо значення індексу і }
Мах := А[і]; К := і; end;
Edit1.Text := 'Найбільший елемент має індекс ' + IntToStr(K);
Edit2.Text := 'Мах=' + IntToStr(Max);
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Визначення номера першого елемента масиву, значення якого відповідає умові
Алгоритм розв'язування задачі: збільшувати індекс і доти, доки елемент з індексом і не задовольнятиме даній умові та величина i не перевищуватиме розмірність масиву. Якщо після виходу з циклу і > N, це означає, що в масиві не знайдено елемента, значення якого відповідає умові.
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Визначити номер першого елемента масиву А[1..N], значення якого дорівнює Р.
і :=0;
Repeat
i:= i+1
Until A[i] = P Or (i > N); {N — кількість елементів в масиві А}
If і <= N Then Edit1.Text := 'i=' + IntToStr(i)
else Edit1.Text := 'значення не знайдене';
9
© Вивчаємо інформатику teach-inf.at.ua
Задачі на пошук у масиві елемента із заданою властивістю
Розділ 9 § 34
Задачі на знаходження суми (добутку) елементів
Знайти добуток всіх елементів масиву А[1..N].
Р := 1;
For і := 1 to N do P := Р*А[і];
Знайти суму додатних елементів масиву A[1..N].
S:=0;
For і := 1 to N do
If A[i] > 0 Then S := S+A[i];
9
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Масив
«Ребуси українською» © rebus1.com
Розділ 9 § 34
9
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 9 § 34
а) For і := 1 to 5 do A[i] := -А[і];
б) For і := 1 to 5 do
If A[i] mod 3 = 0 Then A[i] := A[i] div 3;
в) For і := 1 to 5 do
If і mod 2 = 0 Then A[i] := 0;
г) S := 0; For і := 1 to 5 do S := S+A[i];
д) P := 1; For і := 1 to 5 do
If A[i] <= 5 Then P := P*A[i];
9
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 9 § 34
а) ввести з клавіатури значення елементів масиву;
б) знайти добуток елементів масиву;
в) знайти мінімальний елемент масиву;
г) знайти кількість додатних елементів масиву.
9
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 34, ст. 189-193
Розділ 9 § 34
9
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Розділ 9 § 34
Сторінка
192-193
9
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
teach-inf.at.ua
9