Downto в паскале что это
Перейти к содержимому

Downto в паскале что это

  • автор:

Оператор цикла for

Кроме того, переменную можно описать непосредственно в заголовке цикла:

for переменная : тип := начальное значение to или downto конечное значение do
оператор

for var переменная := начальное значение to или downto конечное значение do
оператор

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

for var i := 1 to 10 do
Print(i);
for var i := 1 to 5 do
Print(i*i);

Текст от слова for до слова do включительно называется заголовком цикла , а оператор после do телом цикла . Переменная после слова for называется параметром цикла . Для первой формы цикла с ключевым словом to параметр цикла меняется от начального значения до конечного значения, увеличиваясь всякий раз на единицу, а для второй формы ключевым словом downto — уменьшаясь на единицу. Для каждого значения переменной-параметра выполняется тело цикла. Однократное повторение тела цикла называется итерацией цикла . Значение параметра цикла после завершения цикла считается неопределенным.

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

var en: (red,green,blue,white);
.
for
en := red to blue do
write(Ord(en):2);
for var c := ‘a’ to ‘z’ do
write(c);

Если для цикла for . to начальное значение переменной цикла больше конечного значения или для цикла for . downto начальное значение переменной цикла меньше конечного значения, то тело цикла не выполнится ни разу.

Если цикл используется в подпрограмме, то переменная-параметр цикла должна быть описана как локальная. Наилучшим решением в PascalABC.NET является описание переменной в заголовке цикла.

Изменение переменной-параметра цикла внутри цикла является логической ошибкой. Например, следующий фрагмент со вложенным оператором for является ошибочным:

for i := 1 to 10 do
i -= 1;

Downto/ru

Ключевое слово Downto используется для указания того, что значение переменной-счетчика в цикле For уменьшается на 1 на каждом шаге цикла. Значение переменной-счетчика, указанное после слова downto, должно быть меньше, чем начальное значение в инструкции цикла For.

Цикл For downto do

var i : integer; begin for i := 10000 downto 1 do begin // инструкции цикла end; end; 

См. также

Retrieved from «http://wiki.freepascal.org/index.php?title=Downto/ru&oldid=131890»

  • Russian
  • Pascal/ru
  • Reserved words/ru
  • Control Structures/ru

For..To / Downto..Do

Переменная цикла и начальное и конечное значения должны иметь порядковый тип. Используйте составной оператор (Begin..End), чтобы выполнить в цикле несколько операторов.

To:
Со словом To, значение переменной цикла увеличивается на 1 при каждой итерации цикла.

DownTo:
Со словом DownTo, значение переменной цикла уменьшено на 1 при каждой итерации цикла.

Пример
(* For. To, For. DownTo *) For I:=1 To ParamCount Do WriteLn(ParamStr(I); For I:=1 To 10 Do For J:=1 To 10 Do Begin X:=0; For K:=1 To 10 Do X:=X+Mat1[I, K]*Mat2[K, J]; Mat[I, J]:=X; End;

Операторы цикла

Здесь переменная i — управляющая переменная или переменная цикла, А — начальное значение переменной цикла, В — конечное значение переменной цикла. При переходе к обработке оператора цикла for управляющей переменной присваивается заданное начальное значение. Затем в цикле выполняется исполнительный оператор (или составной оператор). Каждый раз при выполнении исполнительного оператора управляющая переменная увеличивается на 1 (для for. to) или уменьшается на 1 (для for. downto). Цикл завершается при достижении управляющей переменной своего конечного значения. Например,

1) for i := 1 to ListSize do
begin
readln (Number):
S := S +Number;
end;
2) for Dlina := 15 downto 1 do
writeln (Sqr(Dlina));
3) for x := 1 to 10 do
for y := 1 to 10 do
writeln (x,’*’,y,’=’,x*y);
4) for Range := Number+1 to Multi*3 do
writeln (Sqrt(Range));

При использовании цикла for компьютер выполняет за программиста черновую работу по инициализации управляющей переменной и по ее увеличению (уменьшению) при каждом повторении цикла. Единственное ограничение заключается в том, что тип управляющей переменной не должен быть real. Переменная цикла не должна изменяться какими-либо операторами внутри цикла. К ней можно обращаться и использовать в вычислениях, но нельзя присваивать новое значение. Присваивания могут выполняться только механизмом самого цикла. Таким образом, следующий цикл является некорректным:

for i := 1 to 10 do
begin
. . .
i := i-1;
. . .
end;

Управляющая переменная должна описываться, как и любая другая переменная. Обычно переменная цикла имеет тип integer, но позднее Вы рассмотрите другие типы данных, которые могут указываться в качестве типа управляющей переменной. Внимание! Следует помнить, что управляющая переменная не может быть типа real. Исполнительная часть цикла может быть либо простым, либо составным оператором. Если начальное значение цикла for . to больше конечного значения, то никакие операции не выполнятся. Таким образом, следующий оператор не приведет ни к каким действиям

for j := 1 to 0 do
writeln (j);

Однако цикл, представленный в такой форме, распечатает целые числа от единицы до десяти:

for j := 1 to 10 do
writeln (j);

Как можно догадаться, следующий цикл выполняет счет в обратном порядке:

for j := 10 downto 1 do
writeln (j);

Часто тело цикла For содержит еще один оператор цикла For. Структуры такого рода называются вложенными циклами. При завершении внутреннего цикла управляющая переменная внешнего цикла увеличивается. Повторение этих действий будет продолжаться до завершения внешнего цикла. Приведенный ниже вложенный цикл печатает пары чисел, начиная от (1,1), (1,2). и кончая (10,10):

for х:= 1 to 10 do
for у:= 1 to 10 do
writeln (‘(‘,х,’,’,y,’), ‘);

Задание. Выполните две задачи, уже решенные Вами задачи с помощью других видов цикла, с помощью со счетчиком.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *