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

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

§ 36. Складання програм із розгалуженнями

Вкладені розгалуження

Під час розв’язування багатьох задач виникає необхідність при виконанні (або невиконанні) деякої умови знову робити вибір. У такій ситуації застосовують так звані вкладені розгалуження: в умовному операторі після службового слова Then (або Else) використовують оператор If.

Записати умовний оператор для обчислення значення функції:

Під час запису програмного коду використовуйте структурований запис операторів, тобто пов’язані пари ключових слів або їх групи (наприклад, Then...Else, begin...end) пишіть на одній вертикалі. Це зробить текст програми більш наочним і зрозумілим.

 

Обчислити:

Z _ jmax(x, у) при x < 0;

|min(x, у) при x > 0.

If x < 0 Then If x > y Then z := x

Else z := y Else If x < y Then z := x Else z := y;

Знайти корені квадратного рівняння вигляду ах2 + bx + c = 0. Процедура обробки події для кнопки Знайти корені (рис. 36.1):

var a, b, c, xl, x2, D: Real;

{ введення коефіцієнтів a, b, c } a := StrToFloat(Editl.Text); b := StrToFloat(Edit2.Text); c := StrToFloat(Edit3.Text);

D := b * b - 4 * a * c; // обчислення дискримінанта

Edit4.Text := FloatToStr(D); // виведення значення дискримінанта If D > 0 Then begin

x1 := (-b + Sqrt(D)) / (2 * a); // обчислення і виведення значень коренів x2 := (-b -Sqrt(D)) / (2 * a);

 

Edit5.Text := FormatFloat('0.##', x1);

Edit6.Text := FormatFloat('0.##', x2); end Else

If D = 0 Then begin xl := -b / (2 * a);

Edit5.Text := FormatFloat('0.##', x); end

Else Edit5.Text := 'Коренів немає'; end;

1. Що таке вкладені розгалуження?

2. У яких випадках у записі оператора If використовують опера-торні дужки begin...end?

3. Яких значень набудуть змінні А і В після виконання умовного оператора If для наведених наборів початкових значень?

Фрагмент програмного коду

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

А

В

I-O

Il

CQ

PO

I

II

<

   

А = 3, В = 5

   

А = 8, В = 5

   

LO

I

II

CQ

PO

I

II

<

   

4. Запишіть умовний оператор, який виконує таку дію: вивести в текстове поле Editl кількість цифр у цілому числі А, що належить діапазону від 1 до 999.

5. Запишіть умовний оператор, який виконує таку дію: найбільше з трьох різних значень змінних дійсного типу X, Y і Z зменшити на 0,3.

6. Створіть програму, за допомогою якої визначається сторіччя, до якого належить зазначений рік у (у > 0). (Врахувати, що, наприклад, початком ХХ ст. був 1901, а не 1900 рік.)

Вправа 36

 

Скласти програму «Вгадай число» за таким планом:

1) Комп’ютер загадує випадкове число від 1 до 100.

2) Користувач робить спробу вгадати число.

3) Комп’ютер порівнює введене число із загаданим і дає відповідь «Мало» або «Забагато». Якщо користувач відгадав число, виводиться напис «Ти вгадав число!».

1) Розмістіть на формі компоненти згідно з рис. 1.

* З тим, як додавати рисунки із зовнішніх файлів, ви ознайомитеся в § 47.

2) У вікні Інспектор об'єктів задайте значення властивостей компонентів згідно з таблицею:

Властивість

Значення

Властивість

Значення

Forml.Caption

Вгадай число

Buttonl .Caption

Загадати нове число

Labell.Caption

Ваша спроба:

Buttonl.WordWrap

True

Label3.Caption

Ти вгадав число!

Button2.Caption

Перевірити

 

3) Опишіть змінну b (загадане комп’ютером число) як глобальну: var Forml: TFormI;

b: Integer;

4) Створіть процедуру обробки події onclick для кнопки Загадати нове число. У програмному коді процедури запишіть оператори: begin

Randomize;

b := Random(100);

Label2.Visible := False;

Label3.Visible := False;

Editl .Clear;

Editl .SetFocus; end;

 

5) Створіть процедуру обробки події onclick для кнопки Перевірити (рис. 2, 3). У програмному коді процедури запишіть оператори: var a: Integer; begin

a := StrToInt(Editl.Text); { а — число, яке вводиться користувачем }

{ Якщо число вгадано, елемент Label3 стає видимим, а елемент Label2 (для слів «Мало» і «Забагато») — невидимим }

If a = b Then begin

Label3.Visible := True;

Label2.Visible := False;

end

Else If a < b Then begin

Label2.Visible := True;

Label2.Caption := 'МАЛО'; end

Else begin

Label2.Visible := True;

Label2.Caption := 'ЗАБАГАТО'; end;

end;

6) Запустіть проект на виконання. Збережіть проект у папці Вправа 36.

7) Як потрібно діяти, щоб відгадати число якомога швидше? Комп’ютерне тестування

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

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

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