Цикл for downto паскаль

Цикл for 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;

Читайте также:  Межстрочный интервал в ворде гост

— Ада
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 "*";

При решении задач может возникнуть необходимость повторить одни и те же действия несколько или множество раз. В программировании блоки кода, которые требуется повторять не единожды, оборачиваются в специальные конструкции – циклы. У циклов выделяют заголовок и тело. Заголовок определяет, до каких пор или сколько раз тело цикла будет выполняться. Тело содержит выражения, которые выполняются, если в заголовке цикла выражение вернуло логическую истину (True, не ноль). После того как достигнута последняя инструкция тела, поток выполнения снова возвращается к заголовку цикла. Снова проверяется условие выполнения цикла. В зависимости от результата тело цикла либо повторяется, либо поток выполнения переходит к следующему выражению после всего цикла.

В языке программирования Паскаль существует три вида циклических конструкций.

Читайте также:  Intel core i5 4440 отзывы

Цикл for

Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).

В заголовке цикла указываются два значения. Первое значение присваивается так называемой переменной-счетчику, от этого значения начинается отсчет количества итераций (повторений). Отсчет идет всегда с шагом равным единице. Второе значение указывает, при каком значении счетчика цикл должен остановиться. Другими словами, количество итераций цикла определяется разностью между вторым и первым значением плюс единица. В Pascal тело цикла не должно содержать выражений, изменяющих счетчик.

Цикл for существует в двух формах:

Счетчик – это переменная любого из перечисляемых типов (целого, булевого, символьного, диапазонного, перечисления). Начальные и конечные значения могут быть представлены не только значениями, но и выражениями, возвращающими совместимые с типом счетчика типы данных. Если между начальным и конечным выражением указано служебное слово to, то на каждом шаге цикла значение параметра будет увеличиваться на единицу. Если же указано downto, то значение параметра будет уменьшаться на единицу.

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.

Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

Когда тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие выполнения тела снова проверяется (находится значение логического выражения). Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. Иначе произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

Читайте также:  Выгрузка из 1с в csv файл

Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

В примере, даже если n будет равно 0, одна звездочка все равно будет напечатана.

3.5. Цикл с downto

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

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

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

Ссылка на основную публикацию
Функции в вольфрам математика
Функции пользователя Хотя в систему входят многие сотни встроенных функций (начиная от элементарных и кончая специальными математическими функциями и системными...
Учимся рисовать в paint
Серия видео уроков «Создание компьютерного рисунка в программе Paint» МОУ «Межборская средняя общеобразовательная школа» (Уроки предназначены для детей 9-12 лет,...
Учиться без троек сканворд
Музыкант, играющий на барабанах, тарелках Передовой работник производства (ударник) Часть затвора стрелкового оружия (ударник) "Барабанщик" коммунистического труда (устар.) (ударник) "Барабанщик"...
Функция abs в паскале
Возвращает абсолютную величину параметра. Объявление Function Abs(X) : (тип параметра); Режим Windows, Real, Protected Замечания Параметр X — выражение вещественного...
Adblock detector