Язык программирования - pascal Что должно получится в результате: Ввод: 7N5E2S3E...

0 голосов
38 просмотров

Язык программирования - pascal Что должно получится в результате: Ввод: 7N5E2S3E Вывод:5N8E Ввод:10N30W20N Вывод:30N30W


image

Информатика (23 баллов) | 38 просмотров
Дан 1 ответ
0 голосов
Правильный ответ

PascalABC.NET 3.4.2, сборка 1843 от 24.10.2018

Внимание! Если программа не работает, обновите версию!

begin

 var s := ReadlnString;

 var L := s.MatchValues('\d+[NWSE]').ToList;

 var (x, y) := (0, 0); // N: +y, E: +x, S: -y, W: -x

 foreach var t in L do

 begin

   var n := t[:t.Length].ToInteger;

   case t.Last of

     'N': y += n;

     'E': x += n;

     'S': y -= n;

     'W': x -= n

   end

 end;

 var sy := y > 0 ? 'N' : 'S';

 var sx := x > 0 ? 'E' : 'W';

 $'{Abs(y)}{sy}{Abs(x)}{sx}'.Println

end.


image
(654k баллов)