Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Циклические алгоритмы






 

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

Существуют два основных видов циклических алгоритмов: циклические алгоритмы с предусловием, циклические алгоритмы с постусловием. Они отличаются друг от друга местоположением условия выхода их цикла.

Цикл с предусловием начинается с проверки условия выхода из цикла. Это логическое выражение, например I< =6. Если оно истинно, то выполняются те действия, которые должны повторяться. В противном случае, если логическое выражение I< =6 ложно, то этот цикл прекращает свои действия.

Цикл с постусловием функционирует иначе. Сначала выполняется один раз те действия, которые подлежат повторению, затем проверяется логическое выражение, определяющее условие выхода из цикла, например, I> 6.Проверка его осуществляется тоже по-другому. Если условие выхода истинно, то цикл с постусловием прекращает свою работу, в противном случае - происходит повторение действий, указанных в цикле. Повторяющиеся действия в цикле

 
 

называются " телом цикла". Разновидности циклов приведены на рис. 10а), б).

 
 

    а) Цикл с постусловием б) Цикл с предусловием   Рис. 10. Виды циклических алгоритмов     Классическим примером циклического алгоритма служит алгоритм для вычисления степени числа Y=Xⁿ. Этот алгоритм может быть реализован на основе операции умножения. Табличное представление такого алгоритма, отражающего зависимость У от Х при изменении показателя степени n от 1 до 3, представлено в табл.3. В этой таблице показанны также реккурентные соотношения между У и Х, определяющие как на каждом шаге зависит значение У от значения Х и от значения У, вычисленного на предыдущем шаге. Таблица 3.Реккурентные соотношения при вычислении Y=Xⁿ  
n Y Реккурентные соотношения
   
  Y[1]=X   Y=X  
  Y[2]=X*X или Y[2]=Y[1]*X Y=X*X или Y=Y*X
  Y[3]=X*X*X или Y[3]=Y[2]*X   Y=X*X*X или Y=Y*X
 
 
 

 

Рис.12. Алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n

 

 

Пример 5. Пусть требуется составить алгоритм вычисления суммы ряда S=x+x^2+x^3+…+x^n.

Решение. Исходные данные для алгоритма это переменные x и n. На каждом шаге будем вычислять очередной член суммы Y и прибавлять его к предыдущему значению суммы S.Для этого используем реккурентную формулу вычисления степени Х (см. таблицу 3) Y=Y*Х, тогда сумма ряда на каждом шаге итерации будет вычисляться по формуле S=S+Y. Количество итераций K изменяется от 1 до n и равно количеству членов ряда. Начальное значение суммы ряда S равно 0. На рис. 12 представлен циклический алгоритм с предусловием для вычисления заданной суммы ряда.

 

Пример 6. Требуется составить алгоритм получения на отрезке

[-15, 15] множества значений функции Y= SIN(X) в виде таблицы значений (X, Y) при изменении аргумента Х по формуле X[k]=X[k-1]+h, где h=1, 5.

Решение. Такие задачи относят к задачам табулирования функций. Из

 
 

условия задачи определяем, что начальное значение отрезка табулирования X= -15, конечное значение - X=15. Процесс получения множества пар Х, Y) является итерационным, значит проектируемый алгоритм будет циклическим. Условие выхода из цикла Х> 15. На рис. 13 представлен циклический алгоритм с предусловием вычисления табличного значения функции Y= SIN(X) на отрезке -15< X< 15 при изменении Х на каждом шаге итерации на величину 1, 5. Результатом выполнения алгоритма является циклический вывод множеств пар (Y, X).

 

   

Рис. 13. Циклический алгоритм табулирования функции Y =sin (X)

 

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал