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

8.4. Алгоритм определения наибольшего (наименьшего) значения вычисляемой функции

Дана: функция , область изменения аргумента : от (начальное значение), до (конечное значение), с шагом h.

Определить: наибольшее значение вычисляемой функции max на заданном интервале и значение аргумента max, при котором функция принимает максимальное значение.

Алгоритм решения этой задачи (рис.8.4) аналогичен алгоритму, приведенному на рис.8.3. Отличие состоит в том, что в предыдущей задаче значения чисел ряда уже были известны, а в этой их необходимо предварительно вычислять. В заголовке цикла, в отличие от предыдущего алгоритма, в качестве параметра цикла используется не адрес числа , а значение аргумента . Параметр цикла изменяется не от начального значения, а от значения , поскольку значение уже было использовано в операции вычисления начального значения функции ymax= f(xн).

+

Рис. 8.4. Алгоритм определения наибольшего значения функции

П

еременная xmax хранит текущее значение аргумента, при котором функция принимала максимальное значение. После завершения работы цикла значение переменной будет равно максимальному значению функции на заданном интервале при значении аргумента x = xmax.

Определение наименьшего значения вычисляемой функции производится аналогично. Для этого, в приведенной на рис.8.4 блок – схеме, идентификаторы необходимо заменить , xmax на xmin, а операцию сравнения – на операцию .

8.5. Вычисление функции с одновременно изменяющимися несколькими аргументами

Дана: функция F = f(x, y, z), аргументы x, y и z изменяются одновременно: x от хн с шагом hx , y от ун до ук с шагом hy, z от zн с шагом hz.

Вычислить: значения функции.

Из условия задачи видно, что область изменения аргументов дана только для параметра у. Для параметров х и z конечные значения не даны. Это правильно. Если бы для них были бы установлены эти значения, то задачу решить бы было бы невозможно. Такая формулировка была бы неправильной. В самом деле, в каждом из этих параметров могут быть различные начальные значения, различные шаги изменения, различные конечные значения. При этом достичь заданных, в общем – то, различных конечных значений одновременно просто невозможно.

Для решения такого вида задач поступают следующим образом. Используют параметрический цикл и в его заголовок, в качестве параметра цикла, выносят параметр с заданной областью изменения. В приведенном примере – это у. Остальные аргументы (х и z) инициализируют до цикла. В теле цикла предусматривают изменение аргументов, не использованных в качестве параметров цикла (х и z). На рис. 8.5 приведена блок – схема решения этой задачи.

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

изменяющимися несколькими аргументами.

Очевидно, что этим методом можно решать такие задачи с любым ко личеством аргументов.

8.6. Оразование массива из значений вычисляемой функции

Достаточно часто встечается потребность в создании массива из значений какой – либо вычисляемой функции.

Дана: функция , с областью изменения аргумента : от (начальное значение), до (конечное значение), с шагом h.

Образовать: массив a( ) из значений вычисленной функции.

На рис. 8.6 приведен алгоритм решения этой задачи.

Рис. 8.6. Алгоритм образования массива из значений вычисляемой функции

В этом алгоритме используется счетчик i элементов, создаваемого массива a ( ). Его надо вводить всегда, когда создается массив чисел.

8.7. Итерационные циклы

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

Примером, использующим итерационный цикл, может быть следующая задача.

Вычислить: сумму , для любых х > 1. Вычисление производить, пока .

Анализ выражения для вычисления суммы показывает, что знаменатель дроби постоянно возрастает, а значение дроби – уменьшается. Таким образом, каждое очередное слагаемое будет все меньше и меньше. Если его значение станет меньше числа 10-5, то изменение суммы будет ничтожно мало, и процесс вычисления можно прекратить.

_

+

Рис.8.7. Блок – схема итерационного цикла с предусловием

В итерационных циклах основанием для завершения их работы является некое условие. Если оно выполняется, то цикл работает, в противном случае цикл прекращает работу. В представленной задаче цикл работает до тех пор, пока условие выполняется. Итерационные циклы могут быть представлены с предусловием или с послеусловием. Циклы с предусловием предусматривают вначале проверку условия выполнения цикла, а затем, если условие выполняется, осуществляется выполнение тела цикла.

В циклах с послеусловием эта процедура производится в обратном порядке – сначала выполняется тело цикла, а после этого проверяется условие выполнения цикла. В этих циклах возможно выполнение один раз тела цикла даже тогда, когда это не должно происходить. Об этом становится известно уже после выполнения тела цикла. Казалось бы, что циклы с послеусловием бессмысленны, но существуют области задач, где их применение более предпочтительно.

На рис. 8.7 и 8.8 приведены блок – схемы вычислений с использованием циклов соответственно с предусловием и послеусловием.

i = 0

S = 0

a = 1

S = S + a

i = i + 1

+ –

Рис.8.8. Блок – схема итерационного цикла с послеусловием