Помощь - Поиск - Пользователи - Календарь
Полная версия: Часы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DmP
Помогите решить задачку...

Даны целые числа h,m (0<h<12, 0<m<59), указывающие момент времени "h часов, m минут". Определить наименьшее время (число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелки

а) совпадут.
б) расположатся перпендикулярно друг другу.

Маленькое замечание : условный оператор, оператор цикла и т.д. не использовать. Разрешается только оператор присваивания и арифметические операции (div, mod, +, - и т.д...)

Заранее спасибо...
volvo
Цитата
условный оператор, оператор цикла и т.д. не использовать.
blink.gif Почему, интересно? Ну, не использовать, так не использовать. Вот такое решение я находил в интернете (для совпадения стрелок):
Var
h, m: Integer;
Hpos, Mpos, Msovp, Mint: Real;

Begin
Write('Введите Часы Минуты: ');
ReadLn(h, m);
h := h mod 12;
Hpos := h + m/60;
Mpos := m/5;
h := (h + Ord(Mpos > Hpos)) mod 12;
Msovp := h*60/11;
Mint := 60*Ord(Mpos > Hpos) + Msovp - m;
WriteLn('Через ', Trunc(Mint), ' минут ', Trunc(Frac(Mint)*60), ' секунд')
End.
DmP
Спасибо.
А вот как сделать с перпендикулярностью - понятия не имею
(если бы можно бы использовать циклы, условия, то другое дело).
klem4
Вот тут, внизу есть решение на Delphi, если есть желание, можешь поковыряться ...

ps Интересно, а надо-ли учитывать в задаче то, что кроме движения минутной стрелки в течении часа сдвигается и часовая стрелка ?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.