Тема: Поліваріантне розгалуження
Мета:
Тип уроку: урок засвоєння нових знань, формування вмінь.
Обладнання: комп'ютери, презентація, середовище програмування Lazarus
8 клас Урок 45 Дата__________________________
Тема: Поліваріантне розгалуження
Мета:
Тип уроку: урок засвоєння нових знань, формування вмінь.
Обладнання: комп'ютери, презентація, середовище програмування Lazarus
Хід уроку.
а) not (X<=Y) (False)
б) (X<>Y)or not (X-1=Y) (True)
2. Запишіть за допомогою умовного оператора виконання таких дій:
а) якщо x>10, то значення x замінити його абсолютною величиною;
б) менше з двох чисел x та y замінити нулем
в) присвоїти змінній x значення 0, якщо її початкове значення належало відрізку [0; 2];
г) якщо значення змінної x від’ємне, то залишити його без змін, у протилежному випадку зробити його таким, як і значення y.
Перевірка домашнього завдання
Розробіть проект Мішень, у якому за введеними в текстові поля дійсними числами х та у у вікні повідомлення буде виведено повідомлення «Вітаємо! Влучний постріл!», якщо точка з координатами (х; у) належить заштрихованій області, та повідомлення «Шкода, не влучив!» — в іншому разі.
Розміщення компонентів на формі:
Текст процедури
procedure TForm1.Button1Click(Sender: TObject);
var x,y:Real;
begin
x:=StrToFloat(Edit1.Text);
y:=StrToFloat(Edit2.Text);
if (x>=-2)and(x<=2)and(y>=-2)and(y<=2)
then ShowMessage('Вітаємо! Влучний постріл!')
else ShowMessage('Шкода, не влучив!');
end;
У багатьох випадках, коли доводиться використовувати декілька вказівок розгалуження, вкладених одна в одну, краще замінити їх оператором вибору.
Оператор вибору Case дозволяє вибрати один із декількох операторів залежно від значення деякого виразу. Загальний вигляд оператора вибору:
Case <Селектор> of
<список міток 1>: <оператор1>;
…
<список міток N>: <onepaтopN>;
end;
<Селектор> — вираз, значення якого буде перевірятися; <список міток> — деякий набір можливих значень виразу.
Селектор — змінна або вираз тільки порядкового типу (цілого, символьного тощо).
Список міток можна задавати у вигляді окремого значення, переліку значень (2, 4, 12) або у вигляді діапазону значень (5..11).
Виконання оператора Case починається з обчислення значення селектора. Далі виконується оператор, одна з міток якого збігається зі значенням селектора. Оператор може бути як простим, так і складеним. Після виконання цього оператора керування передається оператору, записаному після службового слова end. Тому може бути виконана тільки одна з гілок оператора вибору.
Гілки оператора Case будуть перебиратися послідовно, до першого збігу значення однієї з міток зі значенням <Селектор>. Якщо значення <Селектор> не дорівнює жодному зі значень міток, жодну з гілок виконано не буде.
Визначити, чи є одноцифрове число X простим чи складеним.
Case X of
1: ShowMessage ('Це — 1');
2, 3, 5, 7: ShowMessage ('Це — просте число');
4, 6, 8, 9: ShowMessage ('Це — складене число');
end;
Якщо є дії, які потрібно виконати у випадку, коли значення <Селектор> не збігається з жодним зі значень міток, то використовують
оператор Case у повній формі:
Case <Селектор> of
<список міток 1>: соператор 1>;
…
<список міток N-1>: <оператор N-1>;
Else <оператор N>;
end;
При використанні повної форми запису оператора у випадку, коли значення <Селектор> не збігається з жодним зі значень міток, буде виконано групу операторів, розташовану в гілці Else. В операторі Case перед ключовим словом Else ставиться символ «;».
Вибрати словесну оцінку залежно від кількості балів N за допомогою оператора Case:
Case N of
4..6: ShowMessage ('Ваша оцінка — задовільно');
7..9: ShowMessage ('Ваша оцінка — добре');
10..12: ShowMessage ('Ваша оцінка — відмінно');
Else ShowMessage ('Вам доведеться виконати тест ще раз');
end;
Вправа 1.
Доповніть таблицю виконання оператора Case для різних початкових значень А.
Фрагмент програмного коду |
Початкове значення A |
Значення А після виконання оператора Case |
Case A mod 10 of 3..5: A := A + 10;
6..9: A := A * 10; |
13 |
|
40 |
|
|
88 |
|
|
11 |
|
|
26 |
|
Вправа 2
В яких операторах допущені помилки?
А) If a mod 2 =0 Then a := a div 2 Else a := a*2;
Б) Case Х mod 2;
0 : ShowMessage ('Парне');
1 : ShowMessage ('Непарне');
end;
В) If a>5 Then a := True;
Г) If a>5 Then a := 0; Else a := 10;
Вправа 3.
Розгляньте фрагмент програми для визначення пори року за номером місяця. Змініть програму для визначення пори року з використанням команди вибору:
If (N = 12) or (N = 1) or (N = 2) then S := 'зима'
Else If (N >= 3) and (N <= 5) then S := 'весна'
Else If (N >= 6) and (N <= 8) then S := 'літо'
Else If (N >= 9) and (N <= 11) then S := 'осінь'
Else ShowMessage ('Такого номера місяця немає');
Пропонований фрагмент процедури:
Case N of
12, 1, 2: S:= 'зима';
3..5: S := 'весна';
6..8: S := 'літо';
9..11: S := 'осінь';
Else ShowMessage ('Такого номера місяця немає');
Реалізуйте задачу у вигляді проекту, дібравши оформлення на власний розсуд.
Домашнє завдання
Опрацювати п. 37
Вправа 37
Створити проект для розв’язання задачі.
Касир продає квитки на автобус, який курсує за маршрутом від міста А до міста В. Ціна квитка залежить від відстані, на яку потрібно їхати пасажиру:
X =
Скільки коштуватимуть N квитків до населеного пункту, відстань до якого вводиться з клавіатури?
1) Створіть новий проект. Змініть заголовок форми на «Касир» (властивість Caption).
2) Можливий інтерфейс програми наведено на рисунку.
Розташуйте текстові поля для введення значень відстані та кількості квитків.
Помістіть на форму елементи керування Label та змініть заголовки написів.
3) Додайте на форму командну кнопку Загальна сума. Створіть процедуру обробки для командної кнопки Button1.
procedure TForml.ButtonlClick(Sender: TObject);
4) Опишіть необхідні змінні. Позначимо R — відстань, X — ціна квитка на задану відстань, N — кількість квитків, V — загальна вартість квитків.
var X, V: Double; R, N: Integer;
5) Запишіть код процедури обробки події OnClick:
begin
R ;= StrToInt(Edit1 Text);
N := StrToInt(Edit2.Text);
Case R of
1..50: X := 5;
51 ..100: X := 15;
101..150: X := 25;
Else X := 35;
end;
V := X*N;
ShowMessage ('Вартість квитків ' + FloatToStr(V) +' грн');
end;
Виконайте програму для різних значень відстані й кількості квитків. Збережіть проект у папці Вправа 37.