§ 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, Переглядів: 2439