Другие языки программирования и технологии

Помогите решить задачу в паскале

Помогите решить задачу: "Корабль может двигаться четырьмя курсами: на север, на юг, на восток и на запад. Капитан может дать команду на изменение курса: вправо, влево, вперед, назад. Определите новый курс корабля"
Интересная задачка!
Если её ещё дополнить следующими условиями:
− корабль может как двигаться, так и стоять;
− корабль может двигаться как вперёд, так и назад;
− корабль увеличивает/уменьшает скорость движения, если даётся повторная команда вперёд или назад;
− поворот корабля не может быть совершён, если корабль стоит;
− начальное положение корабля: стоит носом на север.
То получается вот такая программка:

const Kurs : array [0..3] of String[9] = ('на север', 'на восток', 'на юг', 'на запад');
var N, V : Integer; C : Char;
begin
WriteLn('Корабль стоит носом на север. '); N := 0; V := 0;
repeat
WriteLn('Выберите команду капитана: ');
WriteLn('1 - вперёд');
WriteLn('2 - назад');
WriteLn('3 - вправо');
WriteLn('4 - влево');
WriteLn('Любой другой символ - окончание ввода команд. ');
Write('Команда капитана: '); ReadLn(C);
case C of
'1' : Inc(V);
'2' : Dec(V);
'3' : if V <> 0 then if V > 0 then N := (N + 1) mod 4 else N := (N + 4) mod 4;
'4' : if V <> 0 then if V > 0 then N := (N + 4) mod 4 else N := (N + 1) mod 4;
end;
until Not(C in ['1'..'4']);
if V = 0 then WriteLn('Корабль стоит носом ', Kurs[N], '.') else
if V > 0 then WriteLn('Корабль движется ', Kurs[N], ' со скоростью ', V, ' узлов. ') else
WriteLn('Корабль движется задним ходом ', Kurs[(N + 2) mod 4], ' со скоростью ', Abs(V), ' узлов. ');
end.
Алексей Адышев
Алексей Адышев
58 197
Лучший ответ
пиши в аську 169527 143
могу помочь.. . если заитересован, пиши в личку....
пиши на мыло