Program Ship;
Type Side=(North, East, South, West); Var St_Curs, N_Curs: Side; { Старый и новый курс } Com: String; { Команда } Begin St_Curs: = North; WriteLn(’Идем на Север...’); { Определение нового курса } Repeat Write(’Введите команду: ’); Readln(Com); If Com = ’вперед’ then N_Curs: = St_Curs Else If Com = ’вправо’ then Begin { Движение вправо } If St_Curs = West then N_Curs: = North Else N_Curs: = Succ(St_Curs) End Else If Com = ’назад’ then Case St_Curs of North, East: N_Curs: = Succ(Succ (St_Curs)); South, West: N_Curs: = Pred(Pred(St_Curs)); End Else If Com = ’влево’ then If St_Curs = North then N_Curs: = West Else N_Curs: = Pred(St_Curs) Else If Com < > ’стоп’ then Writeln(’Неправильная команда’: 30); Write(’ Новый курс: ’); Case N_Curs of North: Writeln(’Север’); East: Writeln(’Восток’); South: Writeln(’Юг’); West: Writeln(’Запад’); End; St_Curs: = N_Curs; Until Com = ’стоп’; Writeln(’Приехали! Нажмите Enter’); Readln; End. Для самопроверки напишите программу, в которой курс корабля может быть задан более точно, с промежуточными направлениями: Север, Северо-восток, Восток и т.д. Интервальный тип Этот тип можно определить, указав некоторый диапазон значений из любого другого предварительно определенного порядкового типа, который в этом случае называют базовым. Диапазон определяется указанием наибольшего и наименьшего постоянных значений, входящих в диапазон, причем нижняя граница не должна превышать верхнюю. Вновь задаваемый тип можно предварительно описать в разделе Type, как это показано ниже.
Type Index = 0..63; Letter = ’A’..’Z’; или указывать его при описании переменных в разделе Var: Const Nmax=100; Var Curs: 1..5; Bukva: ’a’..’z’; Mas: Array[1..Nmax] Of Real;
В последней строке интервальный тип использован для описания диапазона значений индекса массива. Если при выполнении программы значение переменной, описанной с помощью интервального типа, выходит за границы диапазона, то программа прерывается с выдачей сообщения об ошибке вида: Range Check Error.
Множества Множество - это совокупность элементов одного и того же перечисляемого типа. Оно задается перечислением элементов. Например, множество четных чисел от 0 до 10 в математике записывается так: { 0, 2, 4, 6, 8, 10 }. В Паскале оно представляется аналогично, только заключается в квадратные скобки: [0, 2, 4, 6, 8, 10] В общем случае в разделе Var множество описывается следующим образом: Var Имя_множества: Set Of Тип_Компонент; где Тип_Компонент — обязательно порядковый.
|