Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Інструкція Case

 

До цього часу ми розглядали нескладні випадки розгалужень. Перед тим як перейти до подальшого матеріалу, розглянемо ще одну задачу.

Задача 57. В залежності від отриманої учнем оцінки вивести на екран відповідне повідомлення.

Розв’язання: Використовуючи команду розгалуження не складає труднощів написати наступну програму:

program ocenka1;

var o : integer;

begin

write(‘Введiть отриману оцiнку: ’);

readln(o);

if o = 5 then writeln(‘Молодець! Вiзьмеш дома цукерку.’)

else if o = 4 then writeln(‘Непогано! Але без цукерок!’)

else if o = 3 then writeln(‘Мiг би й краще!’)

else if o = 2 then writeln(‘Мабуть ти забув про школу.’)

else writeln(‘Пробач, але такої оцiнки не ставлять.’);

readln

end.

Зверніть увагу на кількість розгалужень. Тут, хоч їх і не так вже багато, можна й заплутатись яке else до якого if відноситься. Саме для таких випадків і передбачено у мові Паскаль конструкцію вибору. Конструкція вибору описується так:

в залежності від значення змінної зробити вибір, а саме:

при значенні1 – вивести повідомлення1;

при значенні2 – вивести повідомлення2;

...

при значенніn – вивести повідомленняn.

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

...

case o of

{ вибір від значення змінної о }

<01>: <дія1>; { при одному значенні – одна дія }

<02>: <дія2>; { при другому – друга дія }

<03>: <дія3>; { при третьому значенні – третя дія }

<04>: <дія4>; { при четвертому значенні – четверта дія }

end;

{ кінець вибору }

...

Якщо після якогось значення змінної потрібно виконувати не одну дію, а декілька, то всі оператори, що відносяться до даного випадку беруться в операторні дужки begin ... end. Крім того, конструкція case передбачає варіант виконання дій у тому випадку, коли змінна не набула жодного з вказаних у операторі вибору значень – цьому призначено, як і при організації умовного оператора команду else. Знову ж таки, перед гілкою else крапку з комою ставити забороняється.

Ви вже, напевне, самі звернули увагу, що для команди case обов’язково в кінці ставиться end, тобто в нас з’явилась ще одна “нерозлучна солодка парочка”.

Отже спробуємо розв’язати останню задачу при допомозі команди вибору.

program ocenka2;

var o : integer;

begin

write(‘Введiть отриману оцiнку: ’);

readln(o);

case o of

5: writeln(‘Молодець! Вiзьмеш дома цукерку.’);

4: writeln(‘Непогано! Але без цукерок!’);

3: writeln(‘Мiг би й краще!’);

2: writeln(‘Мабуть ти забув про школу.’)

else writeln(‘Пробач, але такої оцiнки не ставлять.’);

end; { case }

readln

end.

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

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

Задача 58. Скласти програму, що моделює торгівлю на базарі.

Розв’язання: Припусти, що ми захотіли купити на базарі взуття. Будемо видавати на екран відповідні повідомлення в залежності від діапазону цін продавців.

program bazar;

var sk : integer;

begin

writeln(‘Скiльки коштують цi дирявi валяночки? ’);

readln(sk);

case sk of

1..10 : writeln(‘Мабуть куплю, якщо не знайду дешевшi.’);

11..50 : writeln(‘Трохи дорогувато!’);

51..100 : writeln(‘Вони що у вас, золотi?’)

else writeln('Мабуть менi почулось!');

end; { case }

readln

end.

Цей нескладний приклад ми привели лише для того, щоб показати використання діапазонів значень при організації вибору. Слід наголосити, що змінні в діапазонах повинні обов’язково бути перераховуваних типів, крім того значення змінної не може перевищувати тип word. Саме тому допускається використання змінних лише відповідних цілочисельних типів та змінних типу char.

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

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

 

 


Читайте також:

  1. Інструкція
  2. Інструкція If... Then... Else...
  3. Інструкція з діловодства
  4. Інструкція з організації інкасації коштів та перевезення валютних цінностей у банківських установах в Україні
  5. ІНСТРУКЦІЯ З ОРГАНІЗАЦІЇ ТА ВПРОВАДЖЕННЯ СИСТЕМИ ІНФЕКЦІЙНОГО КОНТРОЛЮ В АКУШЕРСЬКИХ СТАЦІОНАРАХ
  6. Інструкція по використанню графічного інтерфейсу прикладу
  7. Інструкція та пояснювальна записка
  8. Інструкція щодо використання засобів аптечки індивідуального медичного захисту (АІМЗ)
  9. Посадова інструкція




Переглядів: 633

<== попередня сторінка | наступна сторінка ==>
Інструкція If... Then... Else... | Організація розгалужень в програмах

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.017 сек.