Циклы с заранее неизвестным числом повторений
Целью работы является освоение программирования алгоритмов с циклической структурой и выхода из цикла по условию, не зависящему от количества циклов. Примером такой задачи является вычисление суммы с бесконечным верхним пределом. Проверка цикла осуществляется следующим образом. Так как выражение под знаком суммы постепенно убывает с ростом слагаемых в сумме, то наступает момент, когда очередное слагаемое станет меньше наперед заданного числа (грубо говоря, точности вычисления сумм), и остальные слагаемые будут мало влиять на конечный результат. Поэтому, когда выражение под знаком суммы будет меньше , то вычисления прекращаются и предполагается, что сумма найдена с заданной точностью. Так как количество слагаемых заранее неизвестно, то циклом FOR пользоваться нельзя. Для этих целей предназначаются циклические операторы WHILE и REPEAT. Необходимо помнить, что у них параметр цикла автоматически не изменяется и его надо менять принудительно. Поэтому при составлении блок-схемы алгоритма блок "Модификация" не используется. При вычислении суммы должен вычисляться факториал по формуле: Где П знак произведения (аналогично знаку суммы), то есть 5! = 12345 = 120. Факториал можно вычислить отдельным циклом, а можно и в цикле вычисления суммы. Для этого вводится дополнительная переменная, например f = j !, и затем в цикле умножается на текущее значение j. Кроме значения суммы на печать полезно вывести значение счетчика циклов, то есть узнать, из скольких слагаемых состоит сумма. Примечание. В языке Турбо Паскаль под переменные типа INTEGER выделяется два байта, и допустимые для них значения находятся в диапазоне только от -32768 до 32767. Поэтому число 10!, реально равное 3628800, в этом случае будет представлено как 24320.Таким образом выражение под знаком суммы может никогда и не стать меньше заданной точности. Для работы с большими целыми числами рекомендуется использовать вещественный тип REAL с диапазоном представления от до , или целый тип LongInt с диапазоном от -2.147.483.648 до 2.147.483.647. Варианты заданий
©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.
|