На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! правила раздела Алгоритмы
1. Помните, что название темы должно хоть как-то отражать ее содержимое (не создавайте темы с заголовком ПОМОГИТЕ, HELP и т.д.). Злоупотребление заглавными буквами в заголовках тем ЗАПРЕЩЕНО.
2. При создании темы постарайтесь, как можно более точно описать проблему, а не ограничиваться общими понятиями и определениями.
3. Приводимые фрагменты исходного кода старайтесь выделять тегами code.../code
4. Помните, чем подробнее Вы опишете свою проблему, тем быстрее получите вразумительный совет
5. Запрещено поднимать неактуальные темы (ПРИМЕР: запрещено отвечать на вопрос из серии "срочно надо", заданный в 2003 году)
6. И не забывайте о кнопочках TRANSLIT и РУССКАЯ КЛАВИАТУРА, если не можете писать в русской раскладке :)
Модераторы: Akina, shadeofgray
  
> Положение стрелок на циферблате
    Как-то давно я обращался в паскалевский форум с просьбой помочь написать реализацию одной "звездонутой" задачи... Так правильно мы её и не решили - и меня тогда направили к вам(а я постеснялся :)). В силу обстоятельств обращаюсь только сейчас(гложет что-то внутри - не написал я её :( ).

    Пусть даны целые числа m,n(часы, минуты), 0<=m<=11, 0<=n<=59, определяющие время суток. Определить наименьшее время(число полных минут), которое должно пройти до того момента, когда часовая и минутная стрелка на циферблате:
    а)совпадут;
    б)расположатся перпендикулярно друг другу.

    Вроде бы как задача не стоит и выеденного яйца... :)
    Но вот западло - разрешено использовать только оператор присваивания (ввода/вывода тоже можно).
      тебе надо решить в принципе, или красиво?

      если в принципе, то можно забецать здоровенный двумерный массив из предопределенных значений, который вводится с помощью операторов присваивания...
      а потом зная
      i - кол-во часов
      и j - кол-во минут
      написать
      res=arr[i][j]
        В том то и дело, что массивы тоже нельзя :(.
        Здесь я так думаю должны использоваться одни div'ы и mod'ы :).
          (раздраженно) нет бы сразу сказать, что можно, а что нельзя...
          а то сиди гадай тут..
          массивы оказывается нельзя, а / и \% (div  и mod)
          можно....
          а + и - можно?
            ExpandedWrap disabled
              <br>mins:=m*60+n;<br>dmin:=12*60/11;<br>minsmatch:=trunc(dmin*trunc((mins+dmin)/dmin)-mins);<br>dmin:=dmin/2;<br>minsperp:=trunc(dmin*round((mins+dmin)/dmin)-mins);<br>

            По-моему так.
              Спрашивали когда-то на паскалевском форуме...

              ExpandedWrap disabled
                Var<br>   h, m: Integer;<br>   Hpos, Mpos, Msovp, Mint: Real;<br><br>Begin<br>   Write('Введите Часы Минуты: ');<br>   ReadLn(h, m);<br>   h := h mod 12;<br>   Hpos := h + m/60;<br>   Mpos := m/5;<br>   If Mpos < Hpos then<br>   Begin<br>      Msovp := h*60/11;<br>      Mint := Msovp - m<br>   End<br>   else If Mpos > Hpos then<br>   Begin<br>      h := (h + 1) mod 12;<br>      Msovp := h*60/11;<br>      Mint := 60 + Msovp - m<br>   End;<br>   WriteLn('Совпадут через ', Trunc(Mint), ' минут ', Trunc(Frac(Mint)*60), ' секунд')<br>End.
              if'ы, надеюсь, можно (если нет, ищи в паск. форуме (по куску моего кода), там нельзя было).

              Про перпендикуляр потом (если не забуду), сейчас некогда.
              Сообщение отредактировано: 7in -
              0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
              0 пользователей:


              Рейтинг@Mail.ru
              [ Script execution time: 0,0267 ]   [ 15 queries used ]   [ Generated: 4.03.24, 09:02 GMT ]