Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информат.Лек.фр.doc
Скачиваний:
12
Добавлен:
10.11.2019
Размер:
5.51 Mб
Скачать

8.1. Определение суммы чисел произвольного ряда

Дан: ряд произвольных чисел .

Определить: сумму этих чисел .

Алгоритм решения этой задачи приведен на рис.8.1. Этот алгоритм предусматривает использование циклической операции, в которой параметром цикла является индекс элемента ряда i (его порядковый номер). Тело цикла представлено рекуррентной формулой

Рекуррентной называют такую формулу, с помощью которой последующее значение переменной (сумма ) вычисляется с использованием ее предыдущего значения.

Важной операцией в этом алгоритме является операция , которая предусматривает очистку ячейки оперативной памяти, выделенной для размещения значений переменной . Такая операция обязательна и совершается до начала работы цикла.

Дело в том, что при решении какой-либо задачи всем данным, участвующим в операциях вычислительного процесса (исходным, промежуточным, конечным), выделяются ячейки оперативной памяти. После завершения программы данные в используемых ячейках автоматически не удаляются (не обнуляются). Если после этого на компьютере будет решаться другая задача, то для ее переменных могут быть выделены ячейки памяти, которые использовались в предыдущей задаче, с сохранившимися в них данными. В случае, когда решается задача по представленному алгоритму, переменной может быть выделена ячейка с "остатками" от предыдущей задачи (их еще называют "мусор"), и это может исказить результат решения. Во избежание этого ячейку памяти для переменной вначале очищают от "мусора", устанавливая значение 0. Можно вместо нуля устанавливать значение первого слагаемого (первого числа ряда), но тогда параметр цикла i должен изменяться не от единицы, а от 2. Чистка ячеек памяти предусматривается только для тех переменных, значение которых вычисляется по рекуррентным формулам. При использовании других формул вычисления такая операция не обязательна.

Рис. 8.1 Блок – схема вычисления суммы ряда чисел

Рис. 8.2 Блок – схема вычисления произведения ряда чисел

8.2. Определение произведения чисел произвольного ряда

Дан: ряд произвольных чисел .

Определить: произведение этих чисел

Блок-схема вычислительного процесса приведена на рис.8.2. Этот алгоритм подобен предыдущему. Отличием является только то, что вычисление произведения осуществляется по рекуррентной формуле , а очистка ячейки памяти, выделенной под переменную , осуществляется не нулем, а единицей по понятным причинам.

8.3. Алгоритм определения наибольшего (наименьшего) числа из заданного ряда чисел

Дан: ряд произвольных чисел .

Определить: наибольшее число amax и его место в ряде k.

Типовой алгоритм для решения таких задач приведен на рис.8.3.

Он основан на использовании циклической операции, в которой поочередно производится сравнение всех чисел ряда с числом , играющим

роль эталона для сравнения. В качестве начального значения выбирается первый элемент ряда независимо от его истинного значения (наибольшее, наименьшее среди чисел ряда или какое-либо другое).

Переменная предназначена для хранения текущего адреса максимального числа, на старте этот адрес – единица. Параметр цикла , как и в предыдущих алгоритмах, определяет адрес (порядковый номер) числа ряда и имеет начальное значение 2, так, как первое число уже использовано в роли amax. Далее выполняется сравнение значения текущего числа ряда , имеющего адрес , с числом, выполняющим на данный момент роль максимального amax. Если в результате сравнения текущее число окажется большим максимального , то с этого момента роль максимального будет выполнять текущее число ai, а его адрес будет зафиксирован в качестве значения переменной . Если же результат сравнения будет иным, то никакие изменения не происходят, а сразу выполняется продвижение цикла, то есть устанавливается адрес i следующего числа ряда и производится переход к новому выполнению тела цикла. В результате перебора всех чисел ряда, определяется наибольшее число , его адрес , и их значения выводятся на экран.

Определение наименьшего числа осуществляется аналогично. Для этого в представленном алгоритме (рис.8.3) идентификатор следует заменить (поскольку этот идентификатор будет отвечать назначению алгоритма) и операцию сравнения заменить операцией .

_

+

Рис. 8.3 Блок – схема определения наибольшего числа ряда