Циклы

  • Автор темы Автор темы Sascha
  • Дата начала Дата начала

Sascha

Команда форума
Администратор
Ofline
Цикл — это многократно повторяющаяся последовательность действий. Первый цикл, с которым мы познакомимся в этом уроке называется While…Do (делай пока верно условие).

Сейчас мы разберем цикл while…do
Чтобы понять как это работает, откроем Delphi, создадим новый проект, и кинем на форму Edit1 и Button1.


Создаем на кнопке процедуру OnClick и первое, что нам надо сделать — это ввести переменную A типа Integer:

Теперь между ключевыми словами begin и end установим значение переменной A равное 1:
Код:
A:=1;
И сейчас мы напишем сам цикл, с условием A<>50, то есть пока A не равно 50 будет выполняться цикл.
Если же А = 50 — цикл остановится:
Код:
While A<>100 do
begin
//Тело цикла
end;
Теперь мы будем увеличивать значение А например на 1. Это будет выглядеть так:
Код:
A:=A+1;
Edit1.Text:=IntToStr(A);
Компилируем программу, нажимаем на кнопку, и видим , что в Edit1 появилось число 100. Почему сразу 100? А не 1,2,3,4…100? Дело в том, что программа на столько быстро выполнила условие, и цикл закончился, выдав конечный результат.

Вот и все, теперь мы можем наблюдать за процессом выполнения условия 🙂

Цикл со счетчиком For…To…Do
Вид данного цикла таков:

For переменная счетчик:=Выражение №1 To выражение №2 Do
Код:
begin
//тело цикла
end;
Этот цикл называется со счетчиком, потому что он сам увеличивает переменную счетчик на единицу.
Первым делом нам нужно добавить переменную S типа Integer.
Код:
For A:=1 to 50 do
begin
//Тело цикла
end;
В тело цикла мы запишем:
Код:
S:=s+a;
Программа будет считать сумму чисел от 1 до 50, прибавляя к переменной S переменную счетчик A.
И после цикла выводим результат в Edit1.
Код:
Edit1.Text:=StrToInt(S);
Рассмотрим цикл Repeat
Код:
Repeat
//Тело цикла
Until условие;
Этот цикл сначала выполняет действие, а потом проверяет условие. Цикл выполниться в любом случае хотя бы один раз.

Стираем цикл For в нашей программе и пишем цикл Repeat:
Код:
var A, S:integer;
begin
S:=0; //Присваеваем ноль
a:=0;
Repeat
a:=a+1;
S:=s+a; //Вычисления
Until a=100; //цикл будет выполняться пока a не достигнет 100
Edit1.Text:=IntToStr(S);
end;
Эта программа выполнит тоже самое что и предыдущая.
 
Назад
Сверху Снизу