Задача №3 (Владения рыцаря)
Английская система
мер1 миля 1760 ярдов
1 ярд 3 фута
1 фут 12 дюймов
1 дюйм 12 линий
Рыцарь сэр Джон купил новый замок и послал двух своих слуг измерить периметрсвоего нового владения. Один измерял длину другой ширину. Выяснилось, что оградаявляется точным прямоугольником. Требуется написать программу, которая подсчитаетпериметр.Формат входных данных:ввод производить в виде двух строк. в каждой из строк записан результат измеренийслуги. При этом каждая величина записана в формате:M Y F D L, где M (0 <= M <= 10000)- мили, Y (0 <= Y <= 1760)- ярды, F - (0 <= F <= 3)футы, D - (0 <= D <= 12) дюймы, L - (0 <= L <= 12) линии. (Отсутствующее числозаменяеться на 0)
Ври выводе использовать сокращенные меры - миля=мл. ярды = ярд. фут=фт.дюймы=фт. линии=лн.
Примеры вводных и выходных данных:
ВВОД:1 3 2 11 011 0 0 0 0
ВЫВОД: 24 мл. 7 ярд. 2 фт. 10дм. 0лн

1

Ответы и объяснения

Лучший Ответ!
2014-04-03T22:53:26+00:00

Это Проверенный ответ

×
Проверенные ответы содержат надёжную, заслуживающую доверия информацию, оценённую командой экспертов. На "Знаниях" вы найдёте миллионы ответов, правильность которых подтвердили активные участники сообщества, но Проверенные ответы - это лучшие из лучших.
Паскаль АВС:

Program Greenpigs;
uses crt;
var
  Lmile, Wmile, Lyard, Wyard, Lfoot, Wfoot, Linch, Winch, Lline, Wline:integer;
begin
  writeln('Введите длину:');
  writeln('Мили, ярды, футы, дюймы, линии:');
  repeat
    readln (Lmile, Lyard, Lfoot, Linch, Lline);
  until ((Lmile>=0)and(Lmile<=10000)and(Lyard>=0)and(Lyard<1760)and(Lfoot>=0)and(Lfoot<3)and(Linch>=0)and(Linch<12)and(Lline>=0)and(Lline<12));
  writeln('Введите ширину:');
  writeln('Мили, ярды, футы, дюймы, линии:');
repeat
  readln (Wmile, Wyard, Wfoot, Winch, Wline);
until ((Wmile>=0)and(Wmile<=10000)and(Wyard>=0)and(Wyard<1760)and(Wfoot>=0)and(Wfoot<3)and(Winch>=0)and(Winch<12)and(Wline>=0)and(Wline<12));
  Lmile:=2*(Lmile+Wmile);
  Lyard:=2*(Lyard+Wyard);
  Lfoot:=2*(Lfoot+Wfoot);
  Linch:=2*(Linch+Winch);
  Lline:=2*(Lline+Wline);
  while (Lline>=12) do
    begin
       Lline:=Lline-12;
       Linch:=Linch+1;
    end;
  while (Linch>=12) do
    begin
       Linch:=Linch-12;
       Lfoot:=Lfoot+1;
    end;
  while (Lfoot>=3) do
    begin
       Lfoot:=Lfoot-3;
       Lyard:=Lyard+1;
    end;
  while (Lyard>=1760) do
    begin
       Lyard:=Lyard-1760;
       Lmile:=Lmile+1
    end; 
writeln('Периметр равен ',Lmile,' мл. ',Lyard,' ярд. ',Lfoot,' фт. ',Linch,' дюйм. ',Lline,' лн. ');
end.