Вывести ориентацию локатора после выполнения команд

Локатор ориентирован на одну из сторон света («С» — север, «З» — запад, «Ю» — юг, «В» — восток) и может принимать три цифровые команды поворота: 1 — поворот налево, -1 — поворот направо, 2 — поворот на 180°. Дан символ C — исходная ориентация локатора и целые числа N1 и N2 — две посланные команды. Вывести ориентацию локатора после выполнения этих команд

code: #pascal
Program Case11;
Const ds = ['С','В','Ю','З'];
Var 
N1,N2:Byte;
w,s:Char;{w - выбранное действие, s - исходная ориентация}
Begin
Repeat
WriteLn('Выберете действие 0 - начать, продолжить, другое-выход');
ReadLn(w);
Repeat
Write('Введите исходную ориентацию (С,В,Ю,З):');
ReadLn(s);
Until s In ds;
Repeat
Write('Введите 2 команды (1-налево,2-на 180 гр.,-1-направо)');
ReadLn(N1,N2);
Until ((N1 in [1,2]) Or (N1 = -1)) And ((N2 in [1,2]) Or (N1 = -1));
Write('Новое направление ');
Case s Of
'С':Case Abs(N1 + N2) Of
0,4:Write('С');
1:Write('З');
2:Write('Ю');
3:Write('В');
End;
'В':Case Abs(N1 + N2) Of
0,4:Write('В');
1:Write('С');
2:Write('З');
3:Write('Ю');
End;
'Ю':Case Abs(N1 + N2) Of
0,4:Write('Ю');
1:Write('В');
2:Write('С');
3:Write('З');
End;
'З':Case Abs(N1 + N2) Of
0,4:Write('З');
1:Write('Ю');
2:Write('В');
3:Write('С');
End;
End;
Until W <> '1';
End.

автор: Puporev

Поделиться:

Похожие статьи: