Цитата:
Сообщение от citrus
помогие плиз с задачкой про курс корабля)
С клав. вводится текущий курс корабля (север, юг, запад, восток), Затем поступает команда (направо, налево, прямо, назад) Надо чтобы в итоге он выавал курс корабля после команды..я так понимаю тут будет много Case и перечисляемяе типы..но. что-то я не знаю что в кейсе писать(
|
С перечисляемыми типами не получилось - значения переменных таких типов нельзя вводить с консоли, кроме того, они не могут быть индексами оператора CASE. Так что пришлось попроще (программа прерывается вводом команды 5 (Stop)):
Код:
CONST
Course:ARRAY[1..4] of STRING=('Nord', 'Zued', 'West', 'Ost');
VAR
Course_bef,Course_aft,Command:BYTE;
BEGIN
WriteLn('Enter the initial course number:');
WriteLn(' 1 - Nord');
WriteLn(' 2 - Zued');
WriteLn(' 3 - West');
WriteLn(' 4 - Ost');
ReadLn(Course_bef);
REPEAT
WriteLn('Enter the command number:');
WriteLn(' 1 - Right');
WriteLn(' 2 - Left');
WriteLn(' 3 - Forward');
WriteLn(' 4 - Back');
WriteLn(' 5 - Stop');
ReadLn(Command);
IF Command<>5 THEN
BEGIN
Case Course_bef of
1 {Nord}:
Case Command of
1: Course_aft:=4 {Ost};
2: Course_aft:=3 {West};
3: Course_aft:=1 {Nord};
4: Course_aft:=2 {Zued};
END;
2 {Zued}:
Case Command of
1: Course_aft:=3 {West};
2: Course_aft:=4 {Ost};
3: Course_aft:=2 {Zued};
4: Course_aft:=1 {Nord};
END;
3 {West}:
Case Command of
1: Course_aft:=1 {Nord};
2: Course_aft:=2 {Zued};
3: Course_aft:=3 {West};
4: Course_aft:=4 {Ost};
END;
4 {Ost}:
Case Command of
1: Course_aft:=2 {Zued};
2: Course_aft:=1 {Nord};
3: Course_aft:=4 {Ost};
4: Course_aft:=3 {West};
END;
END;
Writeln('Course: ',Course[Course_aft]);
Writeln;
Course_bef:=Course_aft;
END;
UNTIL Command=5 {Stop};
END.