Delphi - Циклы for...to...do

Это логика расчета факториала. Давайте перенесем ее на язык программирова­ния Delphi. Цикл в Delphi оформляется следующим образом:


	for счетчик := начальное_значение
	to
	конечное_значение
	do
	действие;

После слова for нужно присвоить какой-нибудь переменной начальное значе­ние. Эта переменная будет использоваться в качестве счетчика выполнения цикла.

 

Закажи видеокурс по Delphi прямо сейчас и получи 106 видеоуроков! Кликни сюда:

Delphi - Циклы for...to...do

ЗАКАЗАТЬ


После каждого выполнения действия этот счетчик будет увеличиваться на единицу, пока переменная не превысит конечного значения. В качестве счетчика я привык использовать переменную с именем index или i, но некоторые специалисты счи­тают, что и счетчикам нужно давать более внятные имена. На мой взгляд, более внятного имени далеко не всегда можно придумать. В общем виде цикл выглядит так: 

for...to...do Действие1

 

Посмотри подробный видеоурок с примерами о том как работать с такими циклами:

Хочешь больше таких видеоуроков - тогда скачай прямо сейчас их бесплатно - СКАЧАТЬ БЕСПЛАТНО.


Рассмотрим пример. 


	
	var
	
	index:Integer; sum:Integer; EndCount:Integer; begin Sum: =0;
	
	for index:=0 to 5 do Sum:=Sum+ index; end;
	
	

В этом примере объявляются две переменные index и sum типа "целое число". Сначала переменной sum присваивается значение 0. После этого запускается цикл, в котором переменная index будет изменяться от 0 до 5. Теперь посмотрим поэтапно, что здесь происходит.

  1. На первом этапе переменная index равна 0. sum тоже равна нулю, значит, вы­полнится операция sum:=o+o. Результат sum = о;
  2. На втором этапе index увеличена на 1, значит, выполнится действие sum: =о+1. Результат sum = 1.
  3. Здесь index увеличена на 1 и уже равна 2, a sum = 1. Значит, выполнится дейст­вие Sum: =1+2. Результат Sum = 3.
  4. Здесь index увеличена на 1 и уже равна 3, a sum = 3. Значит, выполнится дейст­вие sum: =3+3. Результат sum = б.
  5. Здесь index увеличена на 1 и уже равна 4, a sum = 6. Значит, выполнится дейст­вие Sum: =4 + 6. Результат Sum = 10.
  6. Здесь index увеличена на 1 и уже равна 5, a sum = 10. Значит, выполнится дей­ствие Sum: =5+10. Результат sum = 15.

Заметьте, что мы не увеличиваем значение переменной index, используя для этого определенные команды. Значение увеличивается автоматически, потому что эта переменная объявлена счетчиком в цикле for.

 

Давайте перенесем рассмотренный выше программный код непосредственно в програм­му, чтобы мы могли убедиться в этом на реаль­ном примере. Создайте новое приложение. По­местите на форме два компонента TLabel, два компонента TEdit и одну кнопку. 
 
Компонент Edit1 переименован в EndEdit, a Edit2 переименован в ResuitEdit. Теперь по нажатии кнопки (обработчик события onclick для кнопки, которое генерируется, когда пользователь нажал на кнопке) пишем код, представленный в листинге:

 


	procedure TFontil. CalculateButtonCl ick (Sender: TObj ect) ; var
	
	index:Integer;
	
	sum: Integer;
	
	EndCount:Integer; begin
	
	Sum: =0;
	
	EndCount:=StrToInt(EndEdit.Text);
	
	for index:=0 to EndCount do
	
	Sum: = Sum+ index;
	
	ResuitEdit.Text:=IntToStr(Sum) ; end;
	
	

В принципе, текст тот же самый. Единственная разница заключается в том, что цикл запускается, начиная от 0 до числа, введенного в компонент EndEdit. EndEdit содержит текст, а нам нужно превратить его в число, поэтому мы используем функцию strToint для преобразования строки в число. Эта функция работает так же, как и intTostr, которая наоборот преобразовывала число в строку.

Результат преобразования сохраняется в переменной EndCount:

EndCount := StrToint(EndEdit.Text);

После этого запускается цикл, в котором переменная index будет изменятся от 0 ДО значения EndCount (в котором находится ЧИСЛО, введенное В EndEdit).

for index:=0 to EndCount do

Запустите программу и введите в строку Конечное значение число 5. После этого нажмите на кнопку, и в строке результата должно появиться число 15.

Здесь необходимо еще отметить то, что после цикла for будет выполняться только одно действие. Например, если вы захотите выполнить два действия подряд, то вы должны заключить их в скобки begin и end, как это показано в следующем примере.


	for index:=0 to EndCount do begin Sum: = Sum+ Index;
	
	Sum: =Sum+1; end;
	
	

Здесь на каждом шаге цикла sum увеличивается еще на единицу. Если вы по­пробуете написать так:

for index:=0 to EndCount do Sum: =Sum+Index; Sum:=Sum+1;

то выполняться в цикле будет только строка sum:=sum+index. Вторая строка Sum: =sum+i выполнится только по окончании цикла.

СОВЕТ. Если вы что-то не поняли в предыдущем примере, вернитесь к главе, где описывались блок-схемы. Там был рассмотрен пример, который работает как цикл for.. .to.. .do. Попробуйте точно так же самостоятельно нарисовать блок-схему для данного примера и мысленно пройдите ее по шагам.

 

dle

Помоги проекту! Расскажи друзьям об этом сайте: