Пример 4.2.
Вывести сообщения для дней недели с использованием оператора множественного ветвления. Проект – консольное приложение. В программе в разделе объявления типов type определен тип WeekDay из 7 строк. В разделе переменных var объявлена переменная MyWeek этого типа, значениям которой в исполняемой части программы присвоены русскоязычные имена дней недели. Программа содержит цикл запроса у пользователя номера дня недели в пределах 1..7. После ввода номера в этом интервале с помощью оператора выбора case..of формируется текстовое сообщение о дне недели. Если пользователь вводит номер 0, работа приложения завершается. Ввод чисел, отличных от 0..7, программа рассматривает, как ошибку, и просит повторить ввод,
Листинг программы
program prg_4_2;
{$mode objfpc}{$H+}
uses
Classes, SysUtils, RusTrans;
label
10;
type
WeekDay=array[1..7] of string;
var
s:string;
MyWeek:WeekDay;
x:integer;
begin
MyWeek[1]:=’Понедельник’;
MyWeek[2]:=’Вторник’;
MyWeek[3]:=’Среда’;
MyWeek[4]:=’Четверг’;
MyWeek[5]:=’Пятница’;
MyWeek[6]:=’Суббота’;
MyWeek[7]:=’Воскресенье’;
writeln(Rus(‘Введите номер дня недели 1..7, для конца 0′));
writeln;
10:readln(x);
case x of
0: s:=Rus(‘Спасибо, до свидания’);
1: s:=Rus(MyWeek[x])+Rus(‘ – день бездельник’);
2,3,4: s:=Rus(MyWeek[x])+Rus(‘ – рабочий день’);
5: s:=Rus(MyWeek[x])+Rus(‘. Уф, завтра отдыхаем!’);
6: s:=Rus(MyWeek[x])+Rus(‘ – выходной день’);
7: s:=Rus(MyWeek[x])+Rus(‘ – выходной день, а завтра…’);
else
begin
writeln(Rus(‘Вы ошиблись, повторите’));
goto 10;
end;
end;
writeln(s);
if x<>0 then goto 10;
readln
end.
Консоль перед закрытием программы:
Выводы
- Для безусловной передачи управления применяется инструкция goto <Метка>.
- Для ветвлений - инструкция If <условие> then < инструкция 1> else < инструкция 2>.
- Возможна сокращенная инструкция ветвлений if <условие> then < инструкция>.
- Для множественного ветвления можно применить инструкцию выбора case…of. Селектор этой инструкции должен быть порядкового типа (чаще всего целочисленного, например integer).
- Если в ветвях then или else нужно выполнить несколько инструкций, то их нужно объединить в одну составную инструкцию с помощью скобок begin…end.
- Инструкция ветвления может применяться для создания циклов.