Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Концепція курсу авторів Володіної Володіна.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5 Мб
Скачать
☆

18.2. Оператор вибору Case

Оператор вибору є як в Навчальній Алгоритмічній Мові, так і в мові програмування Паскаль. Він має такий формат запису:

Case <керівна змінна або вираз> of

            <набір значень 1 або діапазон 1>: <серія команд 1>;

<набір значень 2 або діапазон 2>: <серія команд 2>;

. . .

<набір значень N або діапазон N>: <серія команд N>

Else <альтернативна до всіх наборів або діапазонів значень серія команд>

end;

Виконання цього оператора починається з обчислення значення виразу або керівної змінної, записаних після службового слова case. Сама назва змінної вказує, що саме залежно від її значення будуть виконуватися певні дії. Керівна змінна може мати один з перераховних типів (це такий тип, значення якого можна перерахувати) - лише цілочисловий, символьний або логічний тип. Змінні дійсного та рядкового типів не можна використовувати як керівні змінні оператора case.

Залежно від обрахованого значення виразу або керівної змінної буде реалізовано лише одну відповідну цьому значенню серію команд.

Якщо жодний набір або діапазон значень не відповідає значенню виразу або керівної змінної, виконується альтернативна до всіх наборів або діапазонів значень серія команд (її записують після службового слова else).  Ця серія команд є необов’язковою (її відсутність можна порівняти із скороченою формою оператора розгалуження).

Записуючи набір можливих значень керівної змінної, значення, які мають той самий тип, що й керівна змінна, відділяють одне від одного комою.

Набір можливих значень керівної змінної можна подати не лише перелічивши ці значення, а й за допомогою діапазону, який записують так:

<початкове значення діапазону>..<кінцеве значення діапазону>

Наприклад, діапазон 2..6 містить такі цілі числа: 2, 3, 4, 5, 6, а діапазон ‘a’..’c’ складається з символів ‘a’, ‘b’, ‘c’.

 

Запишемо фрагмент програми визначення рівня знань учня, використовуючи оператор вибору. Оскільки значенням керівної змінної не може бути дійсна величина, уведемо допоміжну змінну с, яка зберігатиме значення відсотка набраних учнем знань, заокруглене до цілого числа. Щоб обрахувати її значення треба кількість набраних балів (значення змінної х) помножити на 100%, а знайдений результат поділити на максимально можливий бал (значення змінної у): c:= trunk (x*100/y);

 

{----- передаємо значення х та у з програми Асімо--------------------}

c:= trunk (x*100/y);

Case c of

76 .. 100 : writeln (‘Рівень знань високий’);

51 .. 75 : writeln (‘Рівень знань достатній’);

26 .. 50 : writeln (‘Рівень знань середній’)

            else writeln (‘Рівень знань низький’)

end;

{--------------------кінець фрагмента програми-----------------------------}

 

Записаний фрагмент програми працюватиме так:

      Після отримання значень х та у з програми Асімо, визначатиметься, скільки відсотків від максимальної кількості можливих балів набрав учень. Потім це значення буде заокруглено до цілого числа та збережено у змінній с.

      Залежно від того, яке значення отримано та збережено у змінній с, буде виконуватися лише одна з чотирьох можливих команд виведення повідомлення на екран.

o  Якщо значення змінної с належить діапазону від 76 до 100, то буде виконана перша команда оператора case (тобто, на екран буде виведено повідомлення, що учень має високий рівень знань) і після цього виконання оператора вибору буде закінчено.

o  У разі, якщо значення с належить діапазону від 51 до 76, то програма виведе на екран повідомлення про те, що рівень знань учня достатній та перейде до виконання наступного за case оператора (readln).

o  Якщо ж значення змінної с належить третьому можливому діапазону (від 26 до 50), то програма виконає третю команду оператора вибору, тобто виведе повідомлення про середній рівень знань учня та закінчить на цьому виконання оператора вибору.

o  У випадку, коли значення змінної с не належить жодному з трьох розглянутих діапазонів, то програма перейде до виконання команди, записаної після оператора else (виведе на екран повідомлення про низький рівень знань учня).

Отже, наша програма залежно від того, якого значення набуває змінна с, виведе на екран лише одне з чотирьох можливих повідомлень і перейде до виконання наступної за оператором вибору дії.

 

Перевір себе

4. Який формат записування оператора case у мові програмування Паскаль? Яка послідовність виконання оператора вибору?

5. Що називають керівною змінною? Яким може бути тип цієї змінної?

6. Як задають можливі значення керівної змінної?