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

Лабораторная работа № 3 построение алгоритмов с итерационными циклами

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

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

Пример 1. Требуется найти приближенное значение корня уравнения – Х = 0 методом итераций, поясняемым с помощью рис.3.1.

Е

сли, отправляясь от произвольного значения Х, например, нулевого находить , а затем полученный результат рассматривать как новое значение Х и вновь вычислять и т.д., то такая последовательность повторяющихся действий (она наглядно представлена на рис.3.1 ломаной ОАВСДЕ) рано или поздно приводит к значению Х, отличающемуся от искомого корня, менее чем на заданную величину – допустимую погрешность. Отправное значение Х носит название начального приближения, последующие значения Х называются последовательными приближениями к корню уравнения – Х = 0.

Переход к очередному приближению можно представить инструкцией Х= , где Х справа от знака “=” представляет текущее приближение, а Х слева от этого знака – следующее приближение. Разность искомого корня и последовательного приближения близка по величине к разности текущего и следующего приближения, т.е. – Х. Исходя из этого, в качестве условия окончания цикла можно записать неравенство -Х < Еps, где Еps заданная точность вычисления (см. блок-схему алгоритма рис.3.2). При выполнении этого условия значение Х может рассматриваться как приближенный результат, представляющий корень с заданной точностью. Циклы, процесс которых состоит из шагов последовательного приближения одной или нескольких переменных к некоторым значениям, рассматриваемым как итог процесса, называются итерационными.

Число выполнений тела цикла (число итераций L) зависит не только от начального значения и закона изменения переменной Х, являющегося сложным, но и от требований программиста к точности результата. Обычно величина Еps принимается Для контроля вычислений блок-схему рекомендуется дополнить счётчиком итераций (например, L=L+1) с его контролем на предельное значение Lпр (Lпр=300…500). Оба блока должны располагаться в теле цикла. Тогда алгоритм необходимо дополнить начальным значением L=0 (в блоке 2), а после блока 4 предусмотреть вывод L.

Описанный метод итерации прост, но не всегда приводит к решению задачи. Успех его применения зависит от вида и свойств решаемого уравнения. Если решение уравнения не достигается за предельное число итераций (в этом случае говорят,что вычислительный процесс не сходится), то используют другие методы численного решения (например, метод Ньютона, метод половинного деления и др.). Их описание и примеры решения приведены в литературе [4,5,6].

Контрольное задание по лабораторной работе

По аналогии с примером 1 составить блок-схему алгоритма приближенного определения корня уравнения Х = COS(Х), если задана допустимая погрешность. Значение COS обеспечивается записью COS(Х) подобно тому, как записью ABS(Х) обеспечивается абсолютная величина Х. Перед построением блок-схемы изобразить процесс решения графически (как на рис.3.1) и, проанализировав график, самостоятельно определить в виде неравенства условие окончания цикла.

Пример алгоритма, имитирующего физический процесс.

Пример 2. Шар катится к краю горизонтальной полки со скоростью V, затем падает с высоты H на пол с твердым покрытием и, многократно ударяясь о пол, отскакивает и изменяет свое положение в горизонтальном направлении (рис.3.3).

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

Рис.3.3

менее 10% первоначальной, и общее число ударов шара к этому моменту.

Если известна высота Н подъема шара, то может быть получено и время свободного падения с этой высоты, равное , где g – ускорение свободного падения. Время подъема шара после удара равно

Рис. 3.4

времени последующего падения. Следовательно, расстояние по горизонтали, которое шар проходит между ударами, равно 2V .

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

Составим перечень необходимых переменных:

Н – изменяющаяся высота подъема шара (амплитудное значение);

Q - знаменатель убывающей геометрической прогрессии высоты подъёма шара;

Н1 – высота, равная 10% от первоначальной высоты;

V – заданная горизонтальная составляющая скорости шара;

S – нарастающее расстояние по горизонтали от точки начала падения;

N – нарастающее число ударов шара.

Значение g = 9,81.

Блок-схема алгоритма показана на рис.3.4. В рассматриваемом алгоритме используется итерационный цикл для накопления значений N и S. В нем многократно используется вычислительная процедура H=QH, в результате чего последовательные значения Н образуют

убывающую геометрическую прогрессию. Первое падение шара учитывается до цикла (действием S=V ), ибо оно не входит в полный набор событий.

Ниже приводится текст программы для данного алгоритма.

Вместо символа " " в первом и втором операторе необходимо подставить номер своего варианта. Например, для варианта №14 файлы данных запишутся ISX14.DAT и REZ14.DAT. Это нужно для того, чтобы у каждого обучающегося были свои файлы данных, которые не должны совпадать с именами файлов других обучающихся. Файл с исходными данными ISX.DAT должен быть открыт и заполнен тремя числами в последовательности, соответствующей значениям H,V,Q до запуска основной программы. После решения задачи результаты рaсчёта прочитать в файле REZ.DAT.

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