М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
kennysussus
kennysussus
01.09.2020 08:17 •  Информатика

Ii. написать программу, которая подсчитывает: 1) периметр квадрата, площадь которого равна а; 2) площадь равностороннего треугольника, периметр которого равен р;

👇
Ответ:
gulser
gulser
01.09.2020
Var  n, a, s: real; 
i: integer;
label 1, 2, 3, 4;
begin 
1: 
Writeln('1)Периметр квадрата'); 
Writeln('2)Площадь равностороннего треугольника');
Write('Ваш выбор >>> '); 
Read(n); 
Writeln(''); 
if n = 1 then  
begin   
2: 
Write('Введите площадь кварата >>> '); 
Read(s); 
if s < 0 then  
begin   
Writeln('Некорректный ввод'); 
Writeln(''); 
goto 2; 
end; 
a := Sqrt(s) * 4; 
Writeln(''); 
Writeln('Периметр квадрата >>> ', a);   
goto 4; 
end 
else 
if n = 2 then 
begin   
3: 
Write('Введите периметр равностороннего треугольника >>> '); 
Read(a); 
if a < 0 then  
begin   
Writeln('Некорректный ввод');   
Writeln(''); 
goto 3; 
end; 
s := (sqrt(3) / 4) * Sqr(a/3); 
Writeln('');   
Writeln('Площадь равностороннего треугольника >>> ', s); 
goto 4; 
end 
else 
begin   
Writeln('Некорректный ввод');   
Writeln('');   
goto 1; 
end; 
4: 
Writeln(''); 
Writeln('1)Заного'); 
Writeln('2)Выйти'); 
Write('Ваш выбор >>> '); 
Read(n); 
Writeln('');
if n = 1 then   
goto 1 ;
else   
exit;
end.
4,8(37 оценок)
Открыть все ответы
Ответ:
Wanemid
Wanemid
01.09.2020

Очевидно, решения нет, если нужно выпустить ровно K = NM - 1 человека: он должен перейти в какую-то комнату, но из всех комнат, кроме его, есть путь наружу.

При всех остальных K можно, например, поступить так:

- отсчитать сверху и слева направо K комнат, в них открыть дверь вверх

- в оставшихся комнатах, не находящихся в нижнем ряду, открыть путь вниз

- в оставшихся комнатах нижнего ряда, кроме правого нижнего угла, открыть дверь вправо

- в правом нижнем углу, если там ещё не открыта дверь, открыть дверь влево

В итоге K человек уйдут с территории через верх, а остальные будут бесконечно ходить между двумя комнатами в правом нижнем углу.

Код (python 3):

N, M, K = map(int, input().split())

if K == N * M - 1:

   print("IMPOSSIBLE")

elif K == N * M:

   for _ in range(N):

       print("U" * M)

else:

   for _ in range(K // M):

       print("U" * M)

   if K // M < N - 1:

       print("U" * (K % M) + "D" * (M - K % M))

       for __ in range(N - 1 - K // M):

           print("D" * M)

       print("R" * (M - 1) + "L")

   else:

       print("U" * (K % M) + "R" * (M - K % M - 1) + "L")

4,8(81 оценок)
Ответ:
Dollyy
Dollyy
01.09.2020

Очевидно, решения нет, если нужно выпустить ровно K = NM - 1 человека: он должен перейти в какую-то комнату, но из всех комнат, кроме его, есть путь наружу.

При всех остальных K можно, например, поступить так:

- отсчитать сверху и слева направо K комнат, в них открыть дверь вверх

- в оставшихся комнатах, не находящихся в нижнем ряду, открыть путь вниз

- в оставшихся комнатах нижнего ряда, кроме правого нижнего угла, открыть дверь вправо

- в правом нижнем углу, если там ещё не открыта дверь, открыть дверь влево

В итоге K человек уйдут с территории через верх, а остальные будут бесконечно ходить между двумя комнатами в правом нижнем углу.

Код (python 3):

N, M, K = map(int, input().split())

if K == N * M - 1:

   print("IMPOSSIBLE")

elif K == N * M:

   for _ in range(N):

       print("U" * M)

else:

   for _ in range(K // M):

       print("U" * M)

   if K // M < N - 1:

       print("U" * (K % M) + "D" * (M - K % M))

       for __ in range(N - 1 - K // M):

           print("D" * M)

       print("R" * (M - 1) + "L")

   else:

       print("U" * (K % M) + "R" * (M - K % M - 1) + "L")

4,7(60 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ