2.10M
Категория: ИнформатикаИнформатика

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

1.

Алгоритми
опрацювання
табличних
величин
9
Урок 26
За новою програмою

2.

Розділ 6
§ 6.2
Запитання
9
1. Яка величина називається табличною?
2. Що таке елемент табличної
складається його ім'я?
величини?
Із
3. Як описується таблична величина в рядку var?
© Вивчаємо інформатику
teach-inf.at.ua
чого

3.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
Розглянемо кілька
табличних величин:
обчислення
суми
значень
усіх її
елементів
© Вивчаємо інформатику
типових
обчислення суми і
кількості значень
елементів, що
відповідають
певним умовам
teach-inf.at.ua
задач
9
опрацювання
знаходження
найбільшого
та
найменшого
елементів
пошук
заданого
елемента

4.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Такі задачі досить часто розв'язують на практиці.
Наведемо лише кілька прикладів.
Так, синоптики визначають,
Найбільшу, найменшу та
середню температуру за
день
© Вивчаємо інформатику
teach-inf.at.ua
Середню кількість опадів
протягом місяця
тощо

5.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
У процесі визначення переможців у деяких змаганнях
відкидають найбільшу та найменшу оцінки суддів і
обчислюють середнє арифметичне тих оцінок, що
залишилися.
© Вивчаємо інформатику
teach-inf.at.ua

6.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Адміністрацію вашого навчального закладу може
цікавити, скільки учнів 9-х класів мають семестрові
оцінки з інформатики:
10
11
Чи є у вашому класі учні, що
отримали оцінку 8 за останню
практичну роботу, тощо.
© Вивчаємо інформатику
teach-inf.at.ua
12

7.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
У всіх задачах, які розглянемо в цьому пункті, будемо
вводити значення елементів табличної величини з
багаторядкового текстового поля, значення інших
змінних — з текстових полів.
Якщо результатом є
значення елементів
табличної величини
Якщо результатом є
значення інших змінних
то виводитимемо їх у
багаторядкове текстове
поле
то виводитимемо їх у
написи
© Вивчаємо інформатику
teach-inf.at.ua

8.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
Для розв'язування цих задач створимо
процедури, що оброблятимуть подію Click
для
кнопки.
Аналогічно
ви
зможете
створювати
процедури,
які
будуть
обробляти інші події для кнопки або події
для інших об'єктів.
9
Розглядатимемо табличні величини з 10
елементів.
Якщо
кількість
елементів
табличної величини інша, то потрібно
внести до наведених текстів процедур
відповідні зміни.
© Вивчаємо інформатику
teach-inf.at.ua

9.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Задача 1. Визначити суму значень усіх елементів
табличної величини.
Опрацювання
елементів
табличної
величини
здійснюватиметься
з
використанням
циклу.
Використаємо
змінну
для
накопичування
суми
значень
елементів табличної величини. Перед
циклом надамо їй значення
© Вивчаємо інформатику
teach-inf.at.ua
s
0

10.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
У циклі послідовно переглядатимемо елементи
табличної величини та додаватимемо їхні значення до
змінної s.
procedure TForm1.Button1Click(Sender: TObject);
var a: array [1..10] of real; i: integer; s: real;
begin
for і := 1 to 10 do a[i] := StrToFloat(Memo1.Lines[i-1]); {дані з рядків
багаторядкового текстового поля перевести в дійсні числа та присвоїти відповідним
елементам табличної величини}
s := 0; {початкове значення для змінної, значення якої визначатиме суму
значень елементів табличної величини}
for і := 1 to 10 do s := s + a[i]; {додавання до змінної s значення чергового
елемента табличної величини}
Label1.Caption := FloatToStr(s); // виведення результату в напис
end;
© Вивчаємо інформатику
teach-inf.at.ua

11.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Звертаємо вашу увагу: якщо в циклі використовується
команда змінення значення певної величини, у даній
задачі:
s := s + а[і]
То перед циклом цій змінній обов'язково потрібно
присвоїти початкове значення, у даній задачі:
s := 0
© Вивчаємо інформатику
teach-inf.at.ua

12.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Задача 2. Визначити, скільки разів задане дійсне
число трапляється серед значень елементів табличної
величини.
Очевидно, що для розв'язування
цієї задачі потрібно переглянути
послідовно значення всіх елементів
табличної величини, порівняти кожне
з них із заданим числом, і якщо деяке
з них дорівнює цьому числу, то
збільшити лічильник таких елементів
на 1.
© Вивчаємо інформатику
teach-inf.at.ua

13.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
Текст відповідної процедури:
9
procedure TForm1.Button1Click(Sender: TObject);
var a: array [1..10] of real; i, k: integer; x: real;
Begin
for і := 1 to 10 do a[i] := StrToFloat(Memo1.Lines[i-1]); {введення значень
елементів табличної величини}
х := StrToFloat (Edit1.Text); // введення заданого числа
к := 0; {лічильник кількості елементів табличної величини, що дорівнюють
заданому числу, — їх поки що не траплялося жодного}
for і := 1 to 10 do
If a[i] = х Then k := k + 1; {збільшення на 1 значення лічильника, якщо
значення чергового елемента табличної величини дорівнює заданому числу}
Label1.Caption := IntToStr(k) + ‘разів’; {виведення результату в напис з
додаванням пояснювального тексту}
end;
© Вивчаємо інформатику
teach-inf.at.ua

14.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Задача 3. Визначити, чи є задане дійсне число серед
значень елементів даної табличної величини.
Цю задачу можна було б розв'язати аналогічно до
попередньої: визначити, скільки елементів табличної
величини дорівнюють заданому числу, і якщо ця кількість:
дорівнює 0
більше 0
то заданого числа серед
значень елементів
табличної величини
то задане число серед
значень елементів
табличної величини
немає
є
© Вивчаємо інформатику
teach-inf.at.ua

15.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
Але такий метод
нераціональним.
розв'язування
Уявіть собі, що задане число є
значенням уже першого елемента
табличної величини. Тоді всі інші
її елементи переглядати вже не
потрібно, і це значно економить
час розв'язування цієї задачі,
особливо
якщо
кількість
елементів табличної величини
велика.
© Вивчаємо інформатику
teach-inf.at.ua
цієї
9
задачі
є

16.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Для реалізації раціонального методу розв'язування
цієї задачі використаємо змінну логічного типу f і нехай
її значення,
false
true
означатиме, що заданого
числа серед значень
елементів табличної
величини
означатиме, що задане
число серед значень
елементів табличної
величини
немає
є
© Вивчаємо інформатику
teach-inf.at.ua

17.

Розділ 6
§ 6.2
Обчислення суми значень і кількості
елементів табличної величини
9
Перед
початком
перегляду
значень
елементів
табличної величини присвоїмо змінній f значення false,
адже задане число в табличній величині поки що не
знайшлося. Порівнюватимемо в циклі послідовно
значення елементів табличної величини із заданим
числом, і якщо одне з них дорівнює заданому числу, то
змінимо значення змінної f на true та перервемо
виконання циклу командою break (англ. break —
переривати).
Виведення
реалізуємо
значення змінної:
© Вивчаємо інформатику
teach-inf.at.ua
залежно
від
f

18.

Розділ 6
§ 6.2
Текст відповідної процедури:
9
procedure TForm1.Button1Click(Sender: TObject);
var a: array [1..10] of real; i: integer; x: real; f: boolean;
begin
for і := 1 to 10 do a[i] := StrToFloat(Memo1.Lines[i-1]);
x := StrToFloat(Edit1.Text);
f := false; // задане число поки що не траплялося
for і := 1 to 10 do
If а[і] = х
Then begin
f := true; // задане число є серед значень елементів табличної величини
break; // перериваємо виконання циклу, бо задане число є в табличній
величині
end;
If f = true Then Label1.Caption := ‘Число є’
Else Label1.Caption := 'Числа немає’;
end;
© Вивчаємо інформатику
teach-inf.at.ua

19.

Розділ 6
§ 6.2
Задачі на змінювання значень
елементів масиву
Заміна значень усіх елементів масиву
9
Алгоритм розв'язування задачі: послідовно перебрати
всі елементи масиву і значення чергового елемента
змінити за певним правилом наприклад,
змінити знак
елементів на
протилежний
надати всім
елементам
нульові значення
збільшити
значення всіх
елементів на
певну величину
Подвоїти значення елементів масиву A[1..N].
For і := 1 to N do A[i] := A[i]*2;
© Вивчаємо інформатику
teach-inf.at.ua

20.

Розділ 6
§ 6.2
Задачі на змінювання значень
елементів масиву
Заміна значень із перевіркою умови
9
Алгоритм розв'язування задачі: послідовно перебрати
всі елементи масиву; якщо черговий елемент відповідає
деякій умові, його значення змінити за певним
правилом. Як умова може перевірятися значення
елемента
масиву
на
кратність
деякому
числу,
додатність, рівність нулю тощо.
Може перевірятися також і значення
індексу
елемента
масиву
(наприклад,
змінюються елементи, що стоять на парних
місцях).
© Вивчаємо інформатику
teach-inf.at.ua

21.

Розділ 6
§ 6.2
Задачі на змінювання значень
елементів масиву
Від'ємні елементи масиву А замінити числом 25.
9
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;
© Вивчаємо інформатику
teach-inf.at.ua

22.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
Визначення
властивістю
кількості
елементів
із
9
заданою
Визначити кількість додатних елементів масиву А.
К := 0; {лічильник елементів
заданою властивістю}
For і := 1 to N do
If A[i] > 0 Then К := K+1;
© Вивчаємо інформатику
teach-inf.at.ua
із

23.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
Визначення
масиву A[i..N]
найбільшого
(найменшого)
9
елемента
Алгоритм розв'язування задачі: припустити, що
найбільшим є перший елемент масиву, після чого
послідовно перебрати елементи масиву, починаючи з
другого;
якщо
черговий
елемент
більший
за
максимальний,
його
значення
запам'ятати
як
максимальне.
Часто крім значення максимального
елемента потрібно знайти і його
індекс.
© Вивчаємо інформатику
teach-inf.at.ua

24.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
9
Визначити індекс найбільшого числа в масиві А[1..N].
Мах := А[1]; {змінна для збереження найбільшого значення
елемента}
К := 1; // змінна для збереження індексу найбільшого елемента
For і := 2 to N do {перебираємо елементи, починаючи з другого}
If A[i] > Max Then begin
{ якщо і-й елемент більший за Мах, значення Мах замінюється на
значення А[і]; у змінній К запам'ятовуємо значення індексу і }
Мах := А[і]; К := і; end;
Edit1.Text := 'Найбільший елемент має індекс ' + IntToStr(K);
Edit2.Text := 'Мах=' + IntToStr(Max);
© Вивчаємо інформатику
teach-inf.at.ua

25.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
Визначення номера першого
значення якого відповідає умові
Алгоритм розв'язування задачі:
збільшувати індекс і доти, доки
елемент
з
індексом
і
не
задовольнятиме
даній
умові
та
величина i не перевищуватиме
розмірність масиву. Якщо після
виходу з циклу і > N, це означає, що
в масиві не знайдено елемента,
значення якого відповідає умові.
© Вивчаємо інформатику
teach-inf.at.ua
елемента
9
масиву,

26.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
9
Визначити номер першого елемента масиву А[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 := 'значення не знайдене';
© Вивчаємо інформатику
teach-inf.at.ua

27.

Розділ 6
§ 6.2
Задачі на пошук у масиві елемента із
заданою властивістю
9
Задачі на знаходження суми (добутку) елементів
Знайти добуток всіх елементів масиву А[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];
© Вивчаємо інформатику
teach-inf.at.ua

28.

Розділ 6
§ 6.2
Розгадайте ребус
9
Масив
© Вивчаємо інформатику
teach-inf.at.ua
«Ребуси українською» © rebus1.com

29.

Розділ 6
§ 6.2
Дайте відповіді на запитання
9
1. Для
розв'язування
яких
задач
опрацювання
табличної величини можна використати наведені
фрагменти?
а) s := 0; for і := 1 to 10 do s := s + a[i];
б) k := 0; for і := 1 to 10 do If a[i] < 0 Then k := k + 1;
в) k := 0; for і := 1 to 10 do If a[i] = x Then k := k + 1;
2. З якою метою у наведеному фрагменті
використано змінну f?
f := false;
for і := 1 to 10 do If a[i] = x Then begin
f := true;
break; end;
© Вивчаємо інформатику
teach-inf.at.ua

30.

Розділ 6
§ 6.2
Домашнє завдання
9
Проаналізувати
§ 6.2, ст. 165-167
© Вивчаємо інформатику
teach-inf.at.ua

31.

Розділ 6
§ 6.2
Працюємо за комп’ютером
9
Сторінка
172-173
© Вивчаємо інформатику
teach-inf.at.ua

32.

Дякую за увагу!
9
Урок 26
За новою програмою
English     Русский Правила