Інструкція Case » Pascal - основи програмування

Основи програмування на мові Pascal

 

Спонсори

Інструкція 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.

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

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

скачать dle 10.4фильмы бесплатно Наступна сторінка » Організація розгалужень в програмах Попередня сторінка » Інструкція If... Then... Else...