|
|||||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Изучение организации итерационных алгоритмов на примерахЛабораторная работа № 6 Итерационные алгоритмы Цель: изучить процесс построения алгоритмов с неизвестным числом повторений. Научиться составлять программы, использующие рекуррентные формулы. Изучить оператор безусловного перехода Goto. Результат обучения: после успешного завершения занятия пользователь должен: o уметь составлять схемы итерационных алгоритмов; o знать, что такое рекуррентная формула и как она может быть использована в алгоритмах; o уметь программировать итерационные алгоритмы на языке VBA;
Изучение организации итерационных алгоритмов на примерах
Циклические вычисления могут иметь либо заранее известное количество шагов, либо они выполняются до достижения некоторого условия. Циклические вычисления с неизвестным числом повторений, в которых число повторений определяется требуемой точностью вычислений, называются итерационными вычислениями. Повторение последовательности операторов с проверкой условия в начале каждого прохода цикла называется итерацией. Пример 1. Условие задачи: Рассчитать экспоненту с точностью e путем разложения ее в ряд: + … Будем вычислять частичную сумму ряда правой части до тех пор, пока очередное слагаемое не станет меньше погрешности e. Для вычисления каждого слагаемого ряда требуется возведение в степень и вычисление факториала (это дополнительный цикл). Часто в задачах для вычисления очередного слагаемого удобно рекуррентно использовать предыдущее слагаемое, а не организовывать дополнительный (внутренний) цикл. В данной задаче каждое очередное слагаемое можно рекуррентно вычислить через предыдущее: , что требует всего двух операций. Такая форма записи, в которой каждый следующий элемент расчета может быть получен из предыдущего, называется рекуррентной формой. При построении таких алгоритмов полезно подстраховаться от зацикливания («вечного цикла»). Зацикливания могут возникнуть из–за ошибок в программе или вследствие накопления погрешностей. Чтобы избежать зацикливания, достаточно поставить лимит числа повторений цикла. При построении алгоритма примем следующие обозначения: S — искомая сумма, U — текущее слагаемое получаемое рекуррентно, n — определяет число шагов и используется для расчета факториала в знаменателе слагаемого. Схема алгоритма:
Если для организации цикла в этой задаче использовать оператор цикла For, то в этом случае необходимо организовать принудительный выход из цикла. Предельное значение параметра цикла будет определяться лимитом числа повторений тела цикла. Как только выполнится условие |U| £ e, следует выход из цикла.
Принудительный выход из цикла в программе на VBA можно организовать, используя оператор перехода Goto. Синтаксис оператора: Goto <Метка>; После выполнения такого оператора, управление программой передается оператору, помеченному меткой. Меткой может быть идентификатор или целое число без знака. Программа решения задачи:
В программе используются два оператора перехода. Первый оператор перехода Goto M1 организует принудительный выход из цикла. Следующим выполняемым оператором будет оператор, помеченный меткой М1. После идентификатора метки ставится двоеточие. Второй оператор перехода Goto M2 организует обход вывода, ненужного в данном случае. Считается, что использование оператора Goto затрудняет чтение программы.
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |