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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2009, 21:27   #1
NDR777
Новичок
Джуниор
 
Регистрация: 05.02.2009
Сообщений: 1
Печаль Циклы

Уважаемые форумчане, напишите мне хоть один пример одного или всех этих циклов: while ... do; repeat ... until;for ... do;
Заранее спасибо.
NDR777 вне форума Ответить с цитированием
Старый 05.02.2009, 21:38   #2
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

Код:
var
i:integer;
qwe:integer;
begin
for i:=0 to 10 do
begin
 inc (qwe);
end
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
qwe:integer;
begin
while qwe<>10 do
begin
 inc (qwe);
end
end;
r9m вне форума Ответить с цитированием
Старый 05.02.2009, 21:44   #3
Crivel
Delphi\C++
Форумчанин
 
Аватар для Crivel
 
Регистрация: 18.06.2008
Сообщений: 277
По умолчанию

Пример цикла repeat:
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
i:integer;
begin
i := 0;
repeat
inc (i);
until i = 100;
end;
Crivel вне форума Ответить с цитированием
Старый 06.02.2009, 09:03   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Смысл этих циклов. У Вас есть игровая прога, где персонаж двигается по
форме.Если Вы знаете сколько шагов он должен пройти (или хотите задать это количество шагов - скажем 10) следует применять цикл
Код:
for i:= 1 to 10 do  //  явно задали 10 шагов
 x:= x + 1;  //  даем приращение координаты для перемещения 
                // аналогично  Inc(x);
Случай, когда Ваш персонаж просто шагает, но может упереться в стенку с координатой ХS.Значит нужно на каждом шаге проверять дошел
ли персонаж до стенки.Применяем цикл с проверкой условия до шага (цикл с предусловием)
Код:
wile x <> XS do   // если координата персонажа не совпадает с
                                  //  с координатой стенки
  begin
     x:= x + 1;  // делаем очередной шаг
  end
  else  STOP   //  если условие x<>XS неверно(дошагали до стенки) - стоим
Такую же проверку можно делать в цикле Repeat ... until.Только здесь сначала выполняем оператор (в нашем случае делаем шаг), а затем проверяем условие на совпадение x = XS. Это цикл с постусловием
Код:
repeat
  x:= x + 1;  // сделали шаг
 until  x = XS; // проверка совпадения координат
Кстати в последнем операторе после repeat операторские скобки begin ...end не ставятся.
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 06.02.2009, 12:52   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну а в случае с while зачем begin ... end;?
puporev вне форума Ответить с цитированием
Старый 06.02.2009, 13:18   #6
r9m
₪₪₪₪₪₪₪₪
Форумчанин
 
Аватар для r9m
 
Регистрация: 16.04.2007
Сообщений: 471
По умолчанию

хороший тон? Привычка? На всякий случай?
r9m вне форума Ответить с цитированием
Старый 06.02.2009, 13:21   #7
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Почему тогда в цикле с for этого нет?
puporev вне форума Ответить с цитированием
Старый 06.02.2009, 14:07   #8
UnChanter
Пользователь
 
Аватар для UnChanter
 
Регистрация: 14.12.2008
Сообщений: 65
По умолчанию

Цитата:
Сообщение от puporev Посмотреть сообщение
Почему тогда в цикле с for этого нет?
поставь!!, если хочешь
UnChanter вне форума Ответить с цитированием
Старый 06.02.2009, 14:08   #9
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Учту замечания профессионала.
Не думаю, что здесь найдется много людей не знающих основных понятий языка и в том числе, что такое операторские скобки или составной оператор.Это я добавляю к следующему посту от puporev.
И не сомневайся даже ... отдых - кайф, работа - лажа!

Последний раз редактировалось DeKot; 06.02.2009 в 15:11.
DeKot вне форума Ответить с цитированием
Старый 06.02.2009, 14:11   #10
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Просто скобки begin ... end; нужны когда внутри них выполняеися более одного действия, например
Код:
wile (x <> XS) or (y<>YS) do   // если координата персонажа не совпадает с
                                  //  с координатой стенки
  begin
     x:= x + 1;  // делаем очередной шаг
     y:=y-1;
  end
  else  STOP   //  если условие x<>XS неверно(дошагали до стенки) - стоим
puporev вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
циклы Кирилл17 Помощь студентам 4 30.10.2009 20:59
Циклы }{oт@бь)ч Общие вопросы Delphi 4 05.02.2009 16:41
Циклы(паскаль) Freia Помощь студентам 6 26.12.2008 13:37
циклы. Кирилл17 Помощь студентам 6 24.12.2008 03:23
Циклы! vlad1991 Паскаль, Turbo Pascal, PascalABC.NET 15 28.10.2008 22:07