Меню Закрыть

Downto паскаль что означает

Содержание

Оператор for вызывает оператор , находящийся после слова do, по одному разу для каждого значения в диапазоне от начального до конечного значений.

Синтаксис

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

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

Замечания

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

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

downto

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

Пример

(* for. to, for. downto *)
for i := 1 to ParamCount do
WriteLn(ParamStr(i);

(* Умножение матриц *)
type Matrix10x10 = array [1 .. 10, 1 .. 10] of Real;

procedure Multiply (Mat1, Mat2 : Matrix10x10; var Res : Matrix10x10);
var
i, j, k : Integer;
X : Real;
begin
for i := 1 to 10 do
for k := 1 to 10 do
begin
X := 0.0;
for j := 1 to 10 do
X := X + Mat1[i, j] * Mat2[j, k];
Res[i, k] := X;
end;
end;

for i in 1 .. Argument_Count loop
Put_Line (Argument (i));
end loop;

— Умножение матриц
type Matrix10x10 is array (1 .. 10, 1 .. 10) of Float;

procedure Multiply (Mat1, Mat2 : Matrix10x10; Res : out Matrix10x10) is
X : Float;
begin
for i in 1 .. 10 loop
for k in 1 .. 10 loop
X := 0.0;
for j in 1 .. 10 loop
X := X + Mat1 (i, j) * Mat2 (j, k);
end loop;
Res (i, k) := X;
end loop;
end loop;
end Multiply;

Оператор for аналогичен оператору for Паскаля, за исключением обратного перебора. В Паскале границы менятся местами, в языке Ада — нет:

for i := 10 downto 1 do
begin
.
end;

Читайте также:  Посудомойка бош ошибка е25

— Ада
for i in 1 .. 10 loop
.
end loop;

for i in reverse 1 .. 10 loop
.
end loop;

Удобно, что не нужно определять переменные цикла.

Оператор for ожидает диапазон значений. Помимо непосредственного задания диапазона , для перечисления массивов можно использовать атрибут ‘Range.

— Умножение матриц произвольных размеров
type Matrix is array (Integer range <>, Integer range <>) of Float;

function "*" (Mat1, Mat2 : Matrix) return Matrix is
dj : constant Integer := Mat2’First (1) — Mat1’First (2);
X : Float;
begin
if Mat1’Length (2) /= Mat2’Length (1) then
raise Constraint_Error with
"Размеры не совпадают, не могу умножить";
end if;
return Result : Matrix (Mat1’Range (1), Mat2’Range (2)) do
for i in Mat1’Range (1) loop
for k in Mat2’Range (2) loop
X := 0.0;
for j in Mat1’Range (2) loop
X := X + Mat1 (i, j) * Mat2 (j + dj, k);
end loop;
Result (i, k) := X;
end loop;
end loop;
end return;
end "*";

3.5. Цикл с downto

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

Напечатает числа 10, 9, 8, …

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

Циклы в Паскаль представляют собой многократно — повторяющиеся действия. В этой статье мы рассмотрим операторы цикла For To и For Downto. Эти операторы используются в том случае, если нам необходимо, чтобы какое-то действие повторилось несколько раз.

Создадим программу, которая будет выводить на экран квадраты чисел от 1 до 10.

Использование цикла For..to.

Строка №3. Записываем переменну «N». Она будет использоваться в качестве счетчика цикла. Практически во всех программах, использующих цикл For применяется счетчик цикла

Читайте также:  Apple watch 4 размер экрана

В строке №6 записываем цикл For..To..Do. Счетчик цикла «N» показывает сколько раз должен быть выполнен цикл. В нашем примере счетчик будет принимать 10 различных значений от 1 до 10. Соответственно, цикл будет выполнен 10 раз. После слова Do записываются операторы, которые должны выполниться 10 раз при разных значениях счетчика. В нашем примере за словом Do идет оператор вывода на экран Writeln, который выводит на экран квадрат переменной «N» (т.е. счетчика цикла).

В строке №7 выводим квадрат переменной «N» на экран. Благодаря циклу For квадрат переменной будет выведен 10 раз. Сначала для числа 1, затем для 2, затем для 3 и т.д. до 10.

В примере переменная «N» является счетчиком цикла. В операторе For указывается начальное значение счетчика «1» и конечное значение «10». Причем не обязательно, чтобы начально значение было равно 1. Можно поставить 2 или 3 или 4 и т.д. Соответственно, квадраты чисел будут выводиться, начиная с 2, 3 или 4. Следует также скажать, что счетчик цикла может увеличиваться только на 1.

Форма записи For N:=1 To 10 Do увеличивает счетчик на еденицу. Если вместо To записать DownTo, то это будет форма записи, которая уменьшает счетчик на еденицу.
Напишем программу, которая будет выводить на экран кубы чисел от 10 до 5

В строке №6 записываем цикл For. Однако, в отличии от предыдущего примера, здесь вместо «To» употребляется «Downto». Поэтому действие, которое стоит после слова Do (строка №7) будет выполнено 5 раз в порядке уменьшения переменной «N». Т.е. сначала выведется 10 в кубе, затем 9 в кубе, затем 8 в кубе и т.д. до 5 в кубе.

Рекомендуем к прочтению

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

Ваш адрес email не будет опубликован.