Заказ авиабилетов - авиабилеты в черногорию. Заказать тур в Черногорию.
Программирование кратных циклов

Методы программирования кратных циклов в сущности ничем не отличаются от уже знакомых нам методов, используемых при программировании простых циклов. Как правило, в кратном цикле каждый внутренний цикл можно рассматривать как рабочую часть следующего, более обширного цикла. Кроме рабочей части, этот цикл должен содержать команды переадресации, проверки логического условия и формирования.
Рассмотрим примеры.
Пример 1. Составим программу вычисления произведения матрицы на вектор.
Алгоритм вычисления можно записать на Алголе в следующем виде (опуская описания, а также операторы ввода и вывода).
Будем считать, что матрица (аи) расположена в памяти по строкам, так что адрес элемента aif равен а + (i — 1) п + /, составляющая Xj вектора х имеет адрес х + /, / = 1, я, а составляющая yt вектора у должна быть заслана в ячейку с адресом у + i\ i == 1,т.
Программирование начнем с рабочей части внутреннего цикла (в алгоритме ей соответствует оператор присваивания. Обе команды имеют переменные адреса: в команде р адреса зависят от параметров i и /, в команде р + 1 — только от i.
Завершим программирование внутреннего цикла (по параметру /). Для этого нужно добавить команду формирования для / = 0
п команду переадресации перед рабочей частью, соответствующую переходу от / к / + 1. Сравнение на окончание цикла будем проводить по значению команды р.
Получим следующую программу:

В отличие от программ, реализующих простые циклы, значения заготовок zx и г3 зависят от параметра i и поэтому являются переменными во внешнем цикле (по t). Естественно выделить для них две рабочие ячейки. Для поддержания традиции было бы желательно изменить обозначения их адресов (например, на гх и г2). В следующих примерах мы так и будем поступать, здесь же сохраним уже введенные обозначения.
Дальнейшая задача состоит в том, чтобы построить внешний цикл, обеспечивающий выполнение внутреннего цикла т раз для всех целых значений i от 1 до т. В этом внешнем цикле команды р — 2 -5- р + 3 будут являться рабочей частью. Очевидно, к ним нужно присоединить команду, засылающую нуль в ячейку у + i:
р — 3      0  ПЧ 0  0  у+i  yf.=Q