Народна Освіта » Інформатика » § 35. Алгоритми з розгалуженнями

НАРОДНА ОСВІТА

§ 35. Алгоритми з розгалуженнями

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

Для організації розгалужень у мові Object Pascal призначені умовні оператори lf...Then та lf...Then...Else.

Умовний оператор If...Then

 

Оператор lf...Then призначено для виконання деякої послідовності дій у тому випадку, якщо істинною є зазначена умова. Цей умовний оператор відповідає алгоритмічній конструкції «неповне розгалуження».

Синтаксис оператора:

If <умова> Then <оператор>;

Оператор If перевіряє істинність зазначеної умови. Як умова використовується логічний вираз (або логічна змінна як окремий випадок логічного виразу). Умова істинна, якщо логічний вираз набуває значення True, і хибна в протилежному випадку.

Якщо умова істинна (True), програма виконає дію, зазначену в частині <оператор>. Якщо ж умова хибна (False), то керування передається оператору, що міститься після оператора If.

Збільшити значення змінної А на одиницю, якщо її поточне значення менше від 5.

Оператор розгалуження має вигляд: If A < 5 Then A := A + 1; Оператор А := А + 1 виконується тільки в тому випадку, коли істинною є умова A < 5:

Початкове значення А

Значення

умови

Оператор А := А + 1

Значення А після виконання оператора If

1

True

Виконується

2

5

False

Не виконується

5

10

False

Не виконується

10

Якщо у випадку істинності умови потрібно виконати деяку послідовність дій, оператори, що реалізують ці дії, беруться в операторні дужки begin...end. Таку конструкцію називають складеним оператором.

Поміняти місцями значення змінних a і b, щоб була вірною нерівність a < b. var a, b, x: Integer; begin

a := StrToInt(InputBox('BBefliTb a', 'a=','0')); b := StrToInt(InputBox('BBefliTb b', 'b=','0'));

If a > b Then begin

x := a; // для обміну значеннями між змінними a i b a := b; // використовується додаткова змінна х b := x

end;

Editl .Text := IntToStr(a);

Edit2.Text := IntToStr(b); end;

Якщо умова хибна, керування передається оператору Editl .Text := IntToStr(a).

Умовний оператор If...Then...Else

 

Алгоритмічній конструкції «повне розгалуження» відповідає умовний оператор If...Then...Else.

Синтаксис оператора:

If <умова> Then <оператор 1>

Else <оператор 2>;

Перед службовим словом Else крапка з комою не ставиться.

якщо результатом перевірки умови є значення True, то виконується блок дій <оператор 1>, який міститься після службового слова Then. Якщо перевірка умови дала результат False, виконується блок дій оператор 2>, який міститься після службового слова Else.

Збільшити змінну a на 1, якщо a < 5, і зменшити на 1, якщо a >5. If a < 5 Then a := a + 1 Else a := a - 1;

Перевірити існування трикутника зі сторонами a, b, c.

Умова існування трикутника із заданими довжинами сторін: сума двох будь-яких довжин сторін повинна бути більшою за третю. var a, b, с : Integer; begin

a := StrToInt(InputBox('BBefliTb a', 'a=','0')); b := StrToInt(InputBox('BBefliTb b', 'b=','0')); c := StrToInt(InputBox('BBefliTb c', 'c=','0'));

If (a < b + c) and (b < a + c) and (c < a + b) Then Editl .Text := 'трикутник існує'

Else Editl .Text := 'трикутника не існує'; end;

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

1. Дайте означення розгалуження як алгоритмічної конструкції.

2. Які вирази використовують як умову в умовному операторі?

3. Поясніть, як виконується умовний оператор в неповній формі.

4. Як записується і виконується умовний оператор в повній формі?

5. Початкові значення змінних А = -3; B = 5. Знайдіть значення змінних А і B після виконання таких операторів:

а) If A > B Then A := A - B Else B := B - A;

б) If A <> B Then A := B;

в) If A < B Then A := 2 * A Else B := B * A;

6. Запишіть умовні оператори, за допомогою яких можна виконати такі дії:

а) перевірити, чи є число а парним;

б) від більшого із заданих чисел a i b відняти менше;

в) перевірити, чи є серед чисел a, b, c рівні.

 

Вправа 35

Визначити більше з трьох чисел a, b, c.

1) Створіть новий проект. Змініть заголовок форми на «Пошук максимального числа». Розмістіть на формі чотири компоненти Edit для введення значень a, b, c та виведення значення Max найбільшого з трьох чисел згідно з рисунком.

2) Додайте на форму кнопку Buttonl і змініть заголовок доданої кнопки на «Знайти Мах».

3) Створіть процедуру обробки події onclick для кнопки Знайти Мах. У програмному коді створеної процедури запишіть оператори: var a, b, c, Max: Integer;

begin

a := StrToInt(EditUext); b := StrToInt(Edit2.Text); c := StrToInt(Edit3.Text); If a > b Then Max := a Else Max := b;

If c > Max Then Max := c;

Edit4.Text := IntToStr(Max); end;

4) Перевірте роботу програми для різних наборів чисел. Збережіть проект у папці Вправа 35.

5) Змініть програмний код так, щоб програма знаходила найменше з трьох чисел.

6) Додайте на форму кнопку Button2 і змініть її заголовок на «Упорядкувати a, b, c». Створіть процедуру обробки події onclick для цієї кнопки, щоб значення змінних a, b і c були впорядковані за неспаданням (поміняйте місцями a, b і c так, щоб стало a < b < c).

Комп’ютерне тестування

Виконайте тестове завдання 35 з автоматичною перевіркою на сайті interactive.ranok.com.ua.

 

Це матеріал з підручника Інформатика 8 клас Бондаренко

 

Категорія: Інформатика

Автор: admin от 7-10-2016, 22:41, Переглядів: 5295