Задача. Стрелки часов - Pascal ABC
Формулировка задачи:
Стрелки часов движутся с постоянными угловыми скоростями и показывают b часов и m минут. Найти число полных минут до ближайшего момента, в который стрелки совпадут.
Решение задачи: «Задача. Стрелки часов»
textual
Листинг программы
var h,m,um:integer; uh,du,r,k:real; begin repeat write('Час от 0 до 11 h='); readln(h); until h in [0..23]; repeat write('Минута от 0 до 59 m='); readln(m); until m in [0..59]; um:=6*m; //угол минутной стрелки uh:=0.5*(h*60+m); //угол часовой стрелки du:=5.5;//уменьшение угла в 1 минуту if um<uh then r:=uh-um//если минутная стрелка сзади else r:=360-um+uh; //если впереди k:=r/du; writeln('k=',k:0:2); end.
Объяснение кода листинга программы
- В начале объявляются переменные: h, m, um, uh, du, r, k типа integer и real.
- В первой повторяющейся операции используется цикл while для получения значения переменной h от 0 до 11.
- Во второй повторяющейся операции используется цикл while для получения значения переменной m от 0 до 59.
- Переменная um вычисляется как произведение 6 на значение переменной m.
- Переменная uh вычисляется как половина суммы произведения 6 на значение переменной h и на значение переменной m.
- Переменная du вычисляется как 5.5.
- Переменная r вычисляется как разница между переменной uh и переменной um, если минутная стрелка находится сзади, и как разница между 360 и переменной um, и вычитается из переменной uh, если минутная стрелка находится впереди.
- Переменная k вычисляется как частное от деления переменной r на переменную du.
- Значение переменной k выводится на экран с помощью функции writeln, при этом значение переменной k округляется до двух знаков после запятой.