Найти угол между часовой и минутной стрелками - PascalABC.NET
Формулировка задачи:
Задано время, нужно рассчитать угол между часовой и минутной стрелками.
Решение задачи: «Найти угол между часовой и минутной стрелками»
textual
Листинг программы
program ex;
var h,m:integer;
r,rm,rh:real;
begin
repeat
begin
writeln('Введите время (12 часовой формат): ');readln(h,m);
end;
until(((h>0) and (h<13))and((m>=0) and (m<=60)));
rm:=360*m/60;//угол между минутной стрелкой и полуднем
rh:=360*(h mod 12)/12;//угол между часовой стрелкой и полуднем
write('угол между стрелками: ',abs(rm-rh));
end.
Объяснение кода листинга программы
- Задается тип переменных h, m, r, rm, rh как integer и real соответственно.
- С помощью цикла repeat-until происходит запрос на ввод времени в 12-часовом формате.
- Внутри цикла выполняется преобразование введенных значений минут и часов в углы rm и rh соответственно.
- Значение переменной rh вычисляется как 360 умноженное на остаток от деления часа на 12, деленное на 12.
- Значение переменной rm вычисляется как 360 умноженное на минуту, деленное на 60.
- Выводится значение угла между стрелками, полученного как разность абсолютного значения rm и rh.
- Цикл завершается, когда введены корректные значения времени (от 1 до 12 часов и от 0 до 60 минут).