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

Leave a Comment

71 + = 79