Розгалуження — це алгоритмічна структура, у якій залежно від виконання чи невиконання деякої умови здійснюється або та, або інша послідовність дій.
Для організації розгалужень у мові Object Pascal призначені умовні оператори Іf...Then та Іf...Then...Else.
Умовний оператор If...Then
Неповне розгалуження використовується в тому випадку, коли визначені дії тільки у разі виконання умови. Алгоритмічній конструкції «неповне розгалуження» відповідає умовний оператор If...Then.Оператор Іf...Then призначено для виконання деякої послідовності дій у тому випадку, якщо істинною є зазначена умова.
Приклад:
Синтаксис оператора:
If <умова> Then <оператор>;
Оператор Іf перевіряє істинність зазначеної умови. Як умова використовується логічний вираз (або логічна змінна як окремий випадок логічного виразу). Умова істинна, якщо логічний вираз набуває значення True, і хибна в протилежному випадку.
Якщо умова істинна (True), програма виконає дію, зазначену в частині <оператор>.
Якщо ж умова хибна (False), то керування передається оператору, що міститься після оператора Іf.
Блок-схема неповного розгалуження | Приклади |
If A < 5 Then A := A + 1; If a > b Then begin x := a; a := b; b := x end; |
Зверни увагу!
Якщо у випадку істинності умови потрібно виконати послідовність дій, оператори, що реалізують ці дії, беруться в операторні дужки begin...end.
Умовний оператор If...Then...Else
Повне розгалуження використовується в тому випадку, коли визначені різні дії в разі виконання та невиконання умови. Алгоритмічній конструкції «повне розгалуження» відповідає умовний оператор If...Then...Else.Синтаксис оператора:
If <умова> Then <оператор 1>
Else <оператор 2>;
Якщо результатом перевірки умови є значення True, то виконується блок дій <оператор 1>, який міститься після службового слова Then.
Якщо перевірка умови дала результат False, виконується блок дій <оператор 2>, який міститься після службового слова Else.
If <умова> Then <оператор 1>
Else <оператор 2>;
Якщо результатом перевірки умови є значення True, то виконується блок дій <оператор 1>, який міститься після службового слова Then.
Якщо перевірка умови дала результат False, виконується блок дій <оператор 2>, який міститься після службового слова Else.
Зверни увагу!
Перед службовим словом Else крапка з комою не ставиться.
Блок-схема повного розгалуження | |
If a < 5 Then a := a + 1 Else a := a – 1; If (a < b + c) and (b < a + c) and (c < a + b) Then Edit1.Text := ‘трикутник існує’ Else Edit1.Text := ‘трикутника не існує’; |
Приклад:
Обчислити значення виразу (a + 2b) / (a - 3b), де a, b - дійсні числа.
a := StrToFloat(Editl.Text);
b := StrToFloat(Edit2.Text);
If a—3*b = 0
Then Labell.Caption := ’Вираз значення не має: ділення на нуль’
Else begin
z := (a+2*b) /(a-3*b);
Labell.Caption := FloatToStr(z);
end;
a := StrToFloat(Editl.Text);
b := StrToFloat(Edit2.Text);
If a—3*b = 0
Then Labell.Caption := ’Вираз значення не має: ділення на нуль’
Else begin
z := (a+2*b) /(a-3*b);
Labell.Caption := FloatToStr(z);
end;
Приклад:
Обчислити значення заданої функції
Фрагмент проекту для розв’язування цієї задачі матиме такий вигляд:
x := StrToFloat(Editl.Text);
If (x > —3) and (x < 5) Then y := 2*x - 12
Else y := 7-8*x;
Labell.Caption := FloatToStr(y);
x := StrToFloat(Editl.Text);
If (x > —3) and (x < 5) Then y := 2*x - 12
Else y := 7-8*x;
Labell.Caption := FloatToStr(y);
Вкладені розгалуження
Під час розв’язування багатьох задач виникає необхідність при виконанні (або невиконанні) деякої умови знову робити вибір. У такій ситуації застосовують так звані вкладені розгалуження: в умовному операторі після службового слова Then (або Else) використовують оператор If.Приклад:
Записати умовний оператор для обчислення значення функції:
If x < 0 Then y := x
Еlse If x <= 5 Then y := x * x
Else y := 2 * x;
Приклад:
Дано два числа. Визначити, чи рівні вони. Якщо ні, то яке з них більше?
If x = y Then Labell.Caption := ’Числа рівні’
Else If x>y Then Labell.Caption := ’Перше число більше’
Else Labell.Caption := ’Перше число менше’;
If x = y Then Labell.Caption := ’Числа рівні’
Else If x>y Then Labell.Caption := ’Перше число більше’
Else Labell.Caption := ’Перше число менше’;
Джерела:
Інформатика : підруч. для 8 кл. закл. заг. серед.освіти / Йосиф Ривкінд [та ін.]. — Київ : Генеза, 2021.
Інформатика : підруч. для 8 кл. загальноосвіт. навч. закл. / О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов. — Х. : Вид-во «Ранок», 2016