Помощь - Поиск - Пользователи - Календарь
Полная версия: Часы
Форум «Всё о Паскале» > 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 Интересно, а надо-ли учитывать в задаче то, что кроме движения минутной стрелки в течении часа сдвигается и часовая стрелка ?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.