Сложный подсчет времени

Тема в разделе "Delphi - FAQ", создана пользователем r2d2, 15 июн 2009.

  1. r2d2

    r2d2 Гость

    Программу пишу на Делфи 8
    Собственно, смысл программы:
    Есть скандинавский аукцион, там тикает время до окончания лота. После каждой ставки аукционная стоимость и время повышается на определенную величину. Программа нужна для расчета ориентировочного времени, нужного для достижения определенной суммы. Например, текущая стоимость 2500, требуется рассчитать сколько времени надо ждать до достижения 17500. Но дело в том, что при разной аукционной стоимости добавление времени идет по разному. Пусть это будет 5 интервалов и временное распределение соответственно, расположенных следующим образом:
    1-4999 добавляется 2 минуты. Каждая ставка поднимает стоимость аукционную на 50 рублей.
    5000-9999 добавляется 1.5 минуты
    10000-14999 добавляется 1 минута
    15000-19999 добавляется 30 сек
    20000- и более добавляется 15 сек

    Так вот, как я ни пытался что-то придумать, получалось только громадный код. Я только начинающий, поэтому прошу помочь, может есть способ это как-то организовать в систему и написать короче?

    Мой код примерно следующий:
    x - текущая стоимость лота
    y - требуемая стоимость лота (до которой мы считаем)
    Это я нашел в нете: Для начала вводим функцию интервала Between:
    [codebox]function Between(Check, Left, Right: Integer): Boolean;
    begin
    Result := (Check >= Left) and (Check < Right);
    end;[/codebox]
    Далее просто разиваю на случаи:
    При первом интервале случай один: [codebox]If between(y,1,5000) then s:=(y-x)*120/50 // Если требуемая стоимость попадает в диапазон от 1 до 4999,
    то вычитаем от требуемой (она ведь больше будет) текущую, потом делим на 50 (стоимость 1 ставки).
    У нас теперь в s количество ставок, необходимое на покрытие этого периода времени.
    И мы это умножаем на время, которое добавляется за 1 ставку. В итоге в s имеем искомое время. [/codebox]
    Но, если в первом случает всего 1 вариант события, то во втором их уже два: Если y и х в одном диапазоне и если у и х в разных диапазонах. В третьем - их уже три.
    В итоге, если посчитать, выйдет 15 строк кода в нашем варианте. В моем их выходит порядка 45. НУ наверняка же есть способ полегче?
     
Загрузка...
Похожие Темы - Сложный подсчет времени
  1. SergEkb
    Ответов:
    4
    Просмотров:
    1.156
  2. iasakov
    Ответов:
    0
    Просмотров:
    1.977
  3. maliy
    Ответов:
    1
    Просмотров:
    318
  4. zamanov
    Ответов:
    1
    Просмотров:
    652
  5. sunni
    Ответов:
    0
    Просмотров:
    1.235

Поделиться этой страницей