На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Можно ли задать шаг в For?
      ExpandedWrap disabled
        For i:=0 to Maximum do if i mod step = 0 then
        begin
         
        end;



      Автор Vit
      ----------------------------------------------------

      Делаем от X до Y с шагом Z, в N записываем число, которое будем использовать.

      ExpandedWrap disabled
        for i := 0 to Trunc(Y-X)/Z do
        begin
         N := X+i*Z;
         ShowMessage(IntToStr(N))
        end



      Если, например, от 3 до 7 с шагом 2, то:

      ExpandedWrap disabled
        for i := 0 to 2 do
         ShowMessage(IntToStr(3+i*2))


      Автор Jin X
        Я бы не стал так делать при достаточно больших числах, т.к. такой цикл неоптимизирован.
        В любом случае счётчик увеличивается на единицу, и такой способ является искусственным выходом из положения.

        Поэтому лучше заменять конструкцию FOR TO на WHILE DO :
        ExpandedWrap disabled
          k := k_start; // задание начального значения k_start
          while k <= k_finish do // проверка достижения верхней границы цикла
          begin
            {...}
            ShowMessage(IntToStr(k));
            inc (k, k_step); // увеличение переменной k на шаг k_step
          end;
        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
        0 пользователей:


        Рейтинг@Mail.ru
        [ Script execution time: 0,0152 ]   [ 16 queries used ]   [ Generated: 27.04.24, 06:31 GMT ]