Используя только развилки, нельзя записать инструкции, в которых один и тот же набор действий надо выполнять много раз подряд и заранее неизвестно количество повторений. Для этого нужна новая форма организации действий - цикл.
Циклом (повтором) называется такая форма организации действий, при которой одна и та же последовательность действий совершается несколько раз (или ни разу) до тех пор, пока выполняется некоторое условие.
Если действия Р1, Р2, ..., Рn надо повторять, пока выполняется некоторое условие Q, то мы будем использовать следующую запись:
Пока Q, повторять:
P1
Р2
...
Рn
Конец цикла.
Эта запись означает, что исполнитель сначала проверяет, выполняется ли условие Q. Если да, то совершаются действия Р1, Р2, ..., Рn (последовательность этих действий называют телом цикла), после чего условие Q проверяется снова, и так алее. Если же Q не выполняется, то исполнитель переходит к действию, записанному после строки "Конец цикла". В частности, ели условие Q не выполнено с самого начала, то действия, составющие тело цикла, не совершатся ни разу. Указатель "Конец цикла" позволяет избежать двусмысленности в записи цикла.
Приведем пример циклического алгоритма для ЧЕРТЕЖИКА:
Пока впереди не край, повторять:
Повернуть налево.
Конец цикла.
Повернуть налево.
Повернуть налево.
Прыгнуть.
Выполнив его, ЧЕРТЕЖНИК отойдет на один шаг от края (исходное положение ЧЕРТЕЖНИКА - у края, но не в углу).
При использовании циклической формы организации действий возможности ЭВМ проявляются очень наглядно: написав короткий Циклический алгоритм, можно заставить ЭВМ автоматически выполнить сколь угодно большой объем работы. Одна из задач, решение которых фактически стало возможным только после появления ЭВМ,- нахождение площадей фигур методом Монте-Карло. Он состоит в следующем. Пусть требуется найти площадь фигуры F сложной формы. Поместим эту фигуру в прямоугольник с известными сторонами (тогда и площадь его известна). Будем случайным образом бросать точки в этот прямоугольник. Метод Монте-Карло основан на допущении, что при большом числе бросаний доля точек, попавших в F, приближенно равна отношению площади фигуры F к площади прямоугольника.
Для решения задач методом Монте-Карло необходимо пополнить запас допустимых действий ВЫЧИСЛИТЕЛЯ командой
Присвоить z значение RND (а).
По этой команде ВЫЧИСЛИТЕЛЬ присваивает переменной г случайное значение, заключенное между - а и а.
Вот алгоритм для ВЫЧИСЛИТЕЛЯ, с помощью которого можно найти площадь полукруга радиуса 1 методом Монте-Карло. Этот полукруг помещен в прямоугольник со сторонами 2 и 1.
Запросить количество точек N.
Присвоить номеру I выбранной точки значение 0.
Присвоить числу точек М, попавших в полукруг, значение 0.
Пока I≤N, повторять:
Присвоить абсциссе X значение RND (1).
Присвоить ординате У значение (RND (1) + 1)/2.
Если Х2 + У2 ≤ 1, то:
Присвоить М значение М + 1.
Конец ветвления.
Присвоить I значение I + 1.
Присвоить S значение 2M/I.
Сообщить "Число выбранных точек; площадь:".
Сообщить I, S.
Конец цикла.
Математические модели, основанные на использовании случайных чисел, называются вероятностными. Они отличаются тем, что при одних и тех же исходных данных могут получаться различные результаты. И значит, вероятностные модели всегда являются приближенными. Это не является недостатком вероятностных моделей. Фактически точность результатов зависит от многих причин, в частности от точности исходных данных и от точности вычислений. Поэтому неточные результаты могут получаться и при вычислениях по тем моделям, в которых случайность вроде бы и ни при чем. Например, при вычислении площади стола (см. § 2) результат зависит от точности измерений, а на ошибки измерений влияет такое большое число разных факторов, что их можно считать случайными.