§ 37. Поліваріантне розгалуження
У багатьох випадках, коли доводиться використовувати декілька вказівок розгалуження, вкладених одна в одну, краще скористатися оператором вибору.
оператор вибору Case
Оператор вибору Case дозволяє вибрати один із декількох операторів залежно від значення селектора.
Синтаксис оператора вибору Case:
Case <Селектор> of
<список міток 1>: <оператор1>;
<список міток N>: <операторЫ>; end;
Тут <Селектор> — це змінна або вираз, значення якої буде перевірятися; <список міток> — деякий набір можливих значень.
Селектор — змінна або вираз порядкового типу (цілого, символьного тощо).
Список міток можна задавати у вигляді окремого значення, переліку значень або у вигляді діапазону значень.
Виконання оператора Case починається з обчислення значення селектора. Далі виконується оператор, одна з міток якого збігається зі значенням селектора. Оператор може бути як простим, так і складеним. Після виконання цього оператора керування передається оператору, записаному після ключового слова end. Тобто може бути виконана тільки одна з гілок оператора вибору.
Гілки оператора Case будуть перебиратися послідовно, до першого збігу значення <Селектор> зі значенням однієї з міток. Якщо значення <Селектор> не дорівнює жодному зі значень міток, жодну з гілок виконано не буде.
Визначити, яким є одноцифрове число x — простим чи складеним. Case x of
I: ShowMessage ('Це — I');
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 N of // N — кількість балів
4.. 6: ShowMessage ('Ваша оцінка — задовільно');
7.. 9: ShowMessage ('Ваша оцінка — добре');
10.. 12: ShowMessage ('Ваша оцінка — відмінно');
Else ShowMessage ('Виконайте тест ще раз');
end;
1. Для розв’язування яких задач використовують оператор вибору?
2. Які вирази можна використовувати як селектор в операторі Case?
3. Як в операторі Case можна задати список міток?
4. Доповніть таблицю виконання оператора Case для різних початкових значень змінної А.
Фрагмент програмного коду |
Початкове значення А |
Значення А після виконання оператора Case |
13 |
||
40 |
||
88 |
||
11 |
||
26 |
5. Розгляньте фрагмент програми для визначення пори року за номером місяця. Подайте наведений фрагмент програми у вигляді команди вибору:
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 (Такого номера місяця немає');
6. Напишіть програму, яка за номером дня тижня визначає, скільки цього дня у вашому класі уроків: К1 — кількість уроків з гуманітарних предметів, К2 — із природничо-математичних дисциплін.
Вправа 37
Створити проект для розв’язання задачі.
Касир продає квитки на автобус, який курсує за маршрутом від міста а до міста В. Ціна квитка залежить від відстані, на яку потрібно їхати пасажиру:
Скільки коштуватимуть N квитків до населеного пункту, відстань2 до якого вводиться з клавіатури?
1) Створіть новий проект. Змініть заголовок форми на «Касир».
2) Можливий інтерфейс програми наведено на рисунку. Розмістіть на формі два компоненти Edit для введення значень відстані та кількості квитків і два компоненти Label. Змініть заголовки написів.
3) Додайте на форму кнопку Buttonl і змініть заголовок доданої кнопки на «Загальна сума». Створіть процедуру обробки події onclick для цієї кнопки:
procedure TFormI .Button1Click(Sender: TObject);
4) Опишіть необхідні змінні.
var X, V: Double; R, N: Integer; { R — відстань, X — ціна квитка, N — кількість квитків, V — загальна вартість квитків }
5) У програмному коді процедури ButtonIClick запишіть оператори: begin
R := StrToI nt(Edit1 .Text);
N := StrToInt(Edit2.Text);
Case R of
1..50: X := 20;
51.. 100: X := 75;
101.. 150: X := 125;
Else X := 175;
end;
V := X 2 N;
ShowMessage ('Вартість квитків ' + FloatToStr(V) +' грн'); end;
6) Запустіть проект на виконання. Перевірте роботу програми для різних значень відстані й кількості квитків. Збережіть проект у папці Вправа 37.
Комп’ютерне тестування
Виконайте тестове завдання 37 з автоматичною перевіркою на сайті interactive.ranok.com.ua.
Це матеріал з підручника Інформатика 8 клас Бондаренко
Автор: admin от 7-10-2016, 22:42, Переглядів: 3193