1 of 16

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

За новою програмою

Урок 46

9

2 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Задача 4. Визначити найбільше значення елементів табличної величини.

Спочатку вважатимемо, що значення першого елемента табличної величини є найбільшим.

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

9

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

3 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Текст відповідної процедури:

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of real; i: integer; max: real;

begin

for i := 1 to 10 do a[i] := StrToFloat(Memo1.Lines[i-1]);

max := a[1]; {вважаємо, що найбільше значення — значення першого елемента}

for i := 2 to 10 do If a[i] > max Then max := a[i]; {замінюємо найбільше значення}

Label1.Caption := FloatToStr (max) + ' — найбільше значення’;

end;

9

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

4 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Можливий варіант розміщення об’єктів на електронній формі.

9

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

5 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Задача 5. Дано табличну величину, значення всіх елементів якої різні. Визначити найбільше та найменше значення серед елементів цієї табличної величини та поміняти їх місцями.

Оскільки треба поміняти місцями найбільше та найменше значення серед значень елементів табличної величини, то потрібно визначити не тільки самі ці значення, а ще й номер елемента, значення якого найбільше, та номер елемента, значення якого найменше.

Визначимо все це, переглядаючи значення елементів табличної величини лише один раз.

9

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

6 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Спочатку вважатимемо, що значення першого елемента і найбільше, і найменше, а номер найбільшого і найменшого елементів:

1

9

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

7 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

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

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

9

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

8 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Можливий варіант розміщення об’єктів на електронній формі.

9

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

9 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

Текст відповідної процедури:

procedure TForm1.Button1Click(Sender: TObject);

var a: array [1..10] of real; i, nmax, nmin: integer; max, min: real;

begin

for i := 1 to 10 do a[i] := StrToFloat(Memo1.Lines[i-1]);

max := a[1]; nmax := 1; // значення першого елемента важаємо найбільшим

min := a[1]; nmin := 1; // значення першого елемента важаємо найменшим

for i := 2 to 10 do

If a[i] > max {порівняння значення чергового елемента з найбільшим на цей момент}

Then

begin

max := a [i]; // замінюємо значення найбільшого елемента

nmax := i; // замінюємо номер найбільшого елемента

end

9

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

10 of 16

Найбільший і найменший елементи табличної величини

Розділ 6 § 6.2

(Продовження…) Текст відповідної процедури:

Else

If a[i] < min // порівняння значення чергового елемента з найменшим на цей момент

Then

begin

min := a[i]; // замінюємо значення найменшого елемента

nmin := i; // замінюємо номер найменшого елемента

end;

a[nmax] := min; a[nmin] := max; {обмін значеннями найбільшого і найменшого елементів}

for i := 1 to 10 do

Memo2.Lines.Append(FloatToStr(a[i])); {виведення значень елементів табличної величини з переставленими найбільшим і найменшим значенням}

end;

9

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

11 of 16

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

Найбільше

Розділ 6 § 6.2

9

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

12 of 16

Дайте відповіді на запитання

  1. Як потрібно змінити наведений фрагмент, щоб у ньому визначалося найменше значення елементів табличної величини?

max := а[1];

for і := 2 to 10 do If a[i] > max Then max := a[i];

  1. Якщо в табличній величині кілька елементів мають найбільше значення серед значень усіх елементів цієї табличної величини, то фрагмент max := a[1]; for і := 2 to 10 do If a[i] > max Then max := a[i]; визначає, який з них найбільший? Чи зміниться щось, якщо в розгалуженні змінити знак > на знак >=?

Розділ 6 § 6.2

9

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

13 of 16

Дайте відповіді на запитання

  1. Для чого використовують властивість Memo1.Lines.Count багаторядкового текстового поля?
  1. Для розв'язування якої задачі опрацювання елементів табличної величини можна використати такий фрагмент?

s := 0; k := 0;

for і := 1 to 10 do If a[i] > 0 Then begin s := s + a[i]; k := k + 1; end;

sa := s/k;

У яких випадках під час виконання проекту із цим фрагментом може виникнути помилка?

Розділ 6 § 6.2

9

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

14 of 16

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

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

§ 6.2, ст. 167-173

Розділ 6 § 6.2

9

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

15 of 16

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

Сторінка

169-170

Розділ 6 § 6.2

9

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

16 of 16

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

За новою програмою

Урок 46

9