Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2008, 06:37   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
Стрелка как запустить цикл for с шагом отличным от единицы

Всем привет!
Вот как мне пустить цикл
Код:
for counter := 0 to 100 do
begin
   { Тыры пыры }
end;
не с шагом 1 (0, 1, 2, 3, 4, 5, ...., 100), а с шагом, скажем, 2 (0, 2, 4, 6, ..., 100) или с другим каким не будь. Уж очень не хочиться юзать if...then в цикле. Или while...do предётся взять. ж(
Altera вне форума Ответить с цитированием
Старый 25.03.2008, 07:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вопрос понятен, во многих других языках есть конструкция for ... step <шаг цикла>
но в Delphi такого нет.
Поэтому нужно воспользоваться любым из двух других циклов: while ... do или repeat .. until
например:
Код:
  i:=0;
  while i<=100 do begin
     { Тыры пыры }
     i := i + 2;
  end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 25.03.2008, 07:31   #3
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

Код:
for counter := 0 to 50 do  
begin
    i:=counter*2;  
   { Тыры пыры }  
end;
_Dmitry вне форума Ответить с цитированием
Старый 25.03.2008, 08:27   #4
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

_Dmitry
вы считаете это нормальным ?
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 25.03.2008, 08:58   #5
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
Сообщение

Код:
for counter := 0 to 50 do  
begin
    i:= counter shl 1;  
   { Тыры пыры }  
end;
считаю нормальным =)
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 25.03.2008, 09:07   #6
_Dmitry
Участник клуба
 
Аватар для _Dmitry
 
Регистрация: 02.09.2007
Сообщений: 1,193
По умолчанию

А что здесь ненормально?
Вопрос был, как запустить цикл for с шагом отличным от единицы
Код:
for k:=0 to (max-min) div step do
begin
  i:=min+k*step;
  //операторы цикла
end;
Согласен, что циклы while или repeat в этом случае выглядят изящней.
_Dmitry вне форума Ответить с цитированием
Старый 25.03.2008, 09:35   #7
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
Код:
for counter := 0 to 50 do  
begin
    i:= counter shl 1;  
   { Тыры пыры }  
end;
считаю нормальным =)
еще куда ни шло
Цитата:
А что здесь ненормально?
Вопрос был, как запустить цикл for с шагом отличным от единицы
1. for k:=0 to (max-min) div step do
2. begin
3. i:=min+k*step;
4. //операторы цикла
5. end;

for k:=0 to (max-min) div step do
begin
i:=min+k*step;
//операторы цикла
end;

Согласен, что циклы while или repeat в этом случае выглядят изящней.
хуже.
Менять переменную цикла в For крайне некорректное действие, на уровне goto. Хотя это может быть мое субъективное мнение
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 25.03.2008, 10:52   #8
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Квэнди, так ведь _Dmitry счётчик и не трогает...
B_N вне форума Ответить с цитированием
Старый 25.03.2008, 10:55   #9
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Да, согласен, глаза спали видимо
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 25.03.2008, 14:30   #10
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от Virtson Посмотреть сообщение
Код:
for counter := 0 to 50 do  
begin
    i:= counter shl 1;  
   { Тыры пыры }  
end;
считаю нормальным =)
Работает, но что собственно делает оператор "shl"
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл... Лёка PHP 5 03.02.2008 21:38
Единицы по диагонали ChipLink Общие вопросы Delphi 2 24.01.2008 19:45
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34
Суммирование ячеек с заданным шагом valerij Microsoft Office Excel 10 10.10.2007 00:22