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

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

§ 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