1 of 19

Алгоритми опрацювання табличних величин

Урок 45

teach-inf.at.ua

9

2 of 19

Задачі опрацювання масивів

Розділ 9 § 34

Розв'язування багатьох прикладних задач, що потребують опрацювання сукупності однотипних значень, базується на типових алгоритмах опрацювання масивів, які передбачають послідовний перегляд елементів масиву і виконання певних дій із кожним елементом.

9

© Вивчаємо інформатику teach-inf.at.ua

3 of 19

Задачі опрацювання масивів

Розділ 9 § 34

Серед різноманіття задач опрацювання послідовностей можна виділити основні типи задач опрацювання одновимірних масивів:

задачі на змінювання значень елементів масиву;

задачі на пошук у масиві елемента із заданою властивістю;

задачі на знаходження суми (добутку) елементів масиву;

задачі на впорядкування (сортування) масивів.

9

© Вивчаємо інформатику teach-inf.at.ua

4 of 19

Задачі опрацювання масивів

Розділ 9 § 34

Опрацювання елементів масиву виконується в циклах, де як індекс використовують параметр циклу. Розглянемо способи розв'язування таких задач на прикладі числового масиву

A[1..N]

9

© Вивчаємо інформатику teach-inf.at.ua

5 of 19

Задачі на змінювання значень елементів масиву

Розділ 9 § 34

Заміна значень усіх елементів масиву

Алгоритм розв'язування задачі: послідовно перебрати всі елементи масиву і значення чергового елемента змінити за певним правилом наприклад,

змінити знак елементів на протилежний

надати всім елементам нульові значення

збільшити значення всіх елементів на певну величину

Подвоїти значення елементів масиву A[1..N].

For і := 1 to N do A[i] := A[i]*2;

9

© Вивчаємо інформатику teach-inf.at.ua

6 of 19

Задачі на змінювання значень елементів масиву

Розділ 9 § 34

Заміна значень із перевіркою умови

Алгоритм розв'язування задачі: послідовно перебрати всі елементи масиву; якщо черговий елемент відповідає деякій умові, його значення змінити за певним правилом. Як умова може перевірятися значення елемента масиву на кратність деякому числу, додатність, рівність нулю тощо.

Може перевірятися також і значення індексу елемента масиву (наприклад, змінюються елементи, що стоять на парних місцях).

9

© Вивчаємо інформатику teach-inf.at.ua

7 of 19

Задачі на змінювання значень елементів масиву

Розділ 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

8 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 9 § 34

Визначення кількості елементів із заданою властивістю

Визначити кількість додатних елементів масиву А.

К := 0; {лічильник елементів із заданою властивістю}

For і := 1 to N do

If A[i] > 0 Then К := K+1;

9

© Вивчаємо інформатику teach-inf.at.ua

9 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 9 § 34

Визначення найбільшого (найменшого) елемента масиву A[i..N]

Алгоритм розв'язування задачі: припустити, що найбільшим є перший елемент масиву, після чого послідовно перебрати елементи масиву, починаючи з другого; якщо черговий елемент більший за максимальний, його значення запам'ятати як максимальне.

Часто крім значення максимального елемента потрібно знайти і його індекс.

9

© Вивчаємо інформатику teach-inf.at.ua

10 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 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

11 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 9 § 34

Визначення номера першого елемента масиву, значення якого відповідає умові

Алгоритм розв'язування задачі: збільшувати індекс і доти, доки елемент з індексом і не задовольнятиме даній умові та величина i не перевищуватиме розмірність масиву. Якщо після виходу з циклу і > N, це означає, що в масиві не знайдено елемента, значення якого відповідає умові.

9

© Вивчаємо інформатику teach-inf.at.ua

12 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 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

13 of 19

Задачі на пошук у масиві елемента із заданою властивістю

Розділ 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

14 of 19

Розгадайте ребус

Масив

«Ребуси українською» © rebus1.com

Розділ 9 § 34

9

© Вивчаємо інформатику teach-inf.at.ua

15 of 19

Питання для самоперевірки

Розділ 9 § 34

  1. Дано масив А: (3, 8, 5, 7, 6). Виконайте дії з елементами масиву.

а) 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

16 of 19

Питання для самоперевірки

Розділ 9 § 34

  1. Дано масив А[1..5]. Запишіть оператори для реалізації таких завдань:

а) ввести з клавіатури значення елементів масиву;

б) знайти добуток елементів масиву;

в) знайти мінімальний елемент масиву;

г) знайти кількість додатних елементів масиву.

  1. Складіть програму для виконання завдання: масив Numbers[1..50] заповнено випадковими числами в межах 100. Визначити, скільки елементів масиву відрізняються від останнього елемента.

9

© Вивчаємо інформатику teach-inf.at.ua

17 of 19

Домашнє завдання

Проаналізувати

§ 34, ст. 189-193

Розділ 9 § 34

9

© Вивчаємо інформатику teach-inf.at.ua

18 of 19

Працюємо за комп’ютером

Розділ 9 § 34

Сторінка

192-193

9

© Вивчаємо інформатику teach-inf.at.ua

19 of 19

Дякую за увагу!

teach-inf.at.ua

9