Алгоритми з розгалуженнями для опрацювання величин
Урок 57
8
Повторення
Розділ 8 § 35
Алгоритм — це організована послідовність вказівок виконання дій, спрямована на розв'язання певної задачі.
З курсу математики вам добре відомі алгоритми:
виконання арифметичних операцій над багатоцифровими числами;
знаходження коренів лінійного і квадратного рівнянь;
поділу відрізка на рівні частини,
побудови трикутника за заданими сторонами тощо.
В курсі інформатики ви складали алгоритми не тільки обчислювальних, а й ігрових задач.
8
© Вивчаємо інформатику teach-inf.at.ua
Повторення
Розділ 8 § 35
Ви вже знаєте, що побудова алгоритму будь-якої складності здійснюється з використанням трьох базових алгоритмічних структур:
Слідування
Розгалуження
Повторення
Для графічного зображення алгоритмів використовують блок-схеми.
8
© Вивчаємо інформатику teach-inf.at.ua
Повторення
Розділ 8 § 35
У лінійних алгоритмах використовується тільки структура «слідування». Алгоритми, в основі яких лежить структура «розгалуження», називають алгоритмами з розгалуженнями. Алгоритми, в основі яких лежить структура «повторення», називають циклічними.
8
© Вивчаємо інформатику teach-inf.at.ua
Алгоритми з розгалуженнями
Розділ 8 § 35
Розгалуження — це така форма організації дій, при якій залежно від виконання або невиконання деякої умови здійснюється або та, або інша послідовність дій.
Для перевірки істинності умов і організації розгалужень у програмах у мові Lazarus призначені умовні оператори:
If…Then
If..Then...Else
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Оператор If...Then призначено для виконання деякої послідовності дій у тому випадку, якщо є істинною умова, яку він перевіряє. Умовний оператор відповідає алгоритмічній конструкції «неповне розгалуження».
Синтаксис оператора:
If <умова> Then <оператор>;
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Оператор If перевіряє істинність зазначеної умови. Як умова використовується або логічний вираз, або логічна змінна (тип Boolean). Умова:
Істинна
Хибна
Якщо логічна змінна або вираз набувають значення True
Якщо логічна змінна або вираз набувають значення False
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Якщо умова:
Істинна (True)
Хибна (False)
програма виконає дію, зазначену в частині оператор.
то керування одразу передається оператору, що міститься після оператора If.
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Збільшити значення змінної А на одиницю, якщо її поточне значення менше за 5. Оператор розгалуження має вигляд:
If А < 5 Then А := А + 1;
Оператор А := А + 1 виконується тільки в тому випадку, коли є істинною умова А < 5:
Початкове значення А | Значення умови | Оператор А:= А + 1 | Значення А після виконання оператора IF |
1 | True | Виконується | 2 |
5 | False | Не виконується | 5 |
10 | False | Не виконується | 10 |
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Якщо у випадку істинності умови потрібно виконати послідовність дій, оператори, що реалізують ці дії, беруться в операторні дужки begin...end. Таку конструкцію називають складеним оператором.
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор If...Then
Розділ 8 § 35
Упорядкувати значення змінних а і b за зростанням (а < Ь).
var a, b, x: Integer;
begin
а := StrToInt(InputBox('Bведіть a', 'a=‘,0'));
Ь := StrToInt(InputBox('Bведіть b', b=‘,0'));
If a > b Then begin
x := a; // для обміну значеннями між змінними а і b
а := Ь; // використовується додаткова змінна х
b := х
end;
Edit1.Text := IntToStr(a);
Edit2.Text := IntToStr(b);
end;
Якщо умова хибна, керування передається оператору
Edit1.Text := IntToStr(a).
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор lf...Then...Else
Розділ 8 § 35
Алгоритмічній конструкції «повне розгалуження» відповідає умовний оператор If…Then…Else.
Синтаксис оператора:
If <умова> Then <оператор 1>
Else <оператор 2>
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор lf...Then...Else
Розділ 8 § 35
True
False
Виконується блок дій <оператор 1>, який міститься після службового слова Then.
Виконується блок дій <оператор 2>, який міститься після службового слова Else.
Якщо результатом перевірки умови є значення:
Перед службовим словом Else крапка з комою не ставиться.
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор lf...Then...Else
Розділ 8 § 35
Збільшити змінну А на 1, якщо А < 5, і зменшити на 1 у протилежному випадку.
If А < 5 Then А := А + 1
Else А := А - 1;
8
© Вивчаємо інформатику teach-inf.at.ua
Умовний оператор lf...Then...Else
Розділ 8 § 35
Перевірити існування трикутника зі сторонами а, Ь, с
Умова існування трикутника з певними довжинами сторін: сума двох будь-яких сторін повинна бути більшою за третю.
var а, Ь, с : Integer;
begin
а := StrToInt(InputBox(‘Введіть a', 'a=‘,0'));
Ь := StrToInt(InputBox('Введіть b', ‘b=‘,0'));
с := StrToInt(InputBox('Введіть с', 'с=‘,0'));
If (a < b + с) and (b < a + c) and (c < a + b) Then
Edit1.Text := 'трикутник існує'
Else Edit1.Text := 'трикутника не існує';
end;
8
© Вивчаємо інформатику teach-inf.at.ua
Розгадайте ребус
Розгалуження
«Ребуси українською» © rebus1.com
Розділ 8 § 35
8
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
Розділ 8 § 35
8
© Вивчаємо інформатику teach-inf.at.ua
Питання для самоперевірки
а) If А > В Then А := А - В Else В := В - А;
б) If А <> В Then A := В;
в) If А < В Then А := 2*А Else В := В*А;
а) перевірити, чи є число а парним;
б) від більшого із заданих чисел а і b відняти менше;
в) перевірити, чи є серед чисел а, Ь, с рівні.
Розділ 8 § 35
8
© Вивчаємо інформатику teach-inf.at.ua
Домашнє завдання
Проаналізувати
§ 35, ст. 175-178
Розділ 8 § 35
8
© Вивчаємо інформатику teach-inf.at.ua
Працюємо за комп’ютером
Сторінка
177-178
Розділ 8 § 35
8
© Вивчаємо інформатику teach-inf.at.ua
Дякую за увагу!
8