Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




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

Для организации цикла необходимо перед циклом задать начальное значение переменной цикла. Затем в теле цикла многократно повторить следующие действия:

· изменять переменную цикла перед каждым новым повторением цикла;

· проверять условие окончания или повторения цикла;

· управлять циклом, т.е. переходить к началу тела цикла или выходить из цикла.

Базовая структура «цикл» существует в следующих основных вариантах:

1. Цикл «для» (тело цикла выполняется для значений параметра цикла заданное число раз, которое известно до начала выполнения цикла и реализуется с помощью счетчика, значение которого изменяются в заданном диапазоне с шагом 1.);

2. Цикл «с предусловием» ‑ тело цикла расположено после проверки условия; действия в теле цикла повторяются, пока условие выполняется (условие повторения цикла); цикл завершается, когда условие не выполняется;

3. Цикл «с постусловием» ‑ тело цикла расположено перед проверкой условия; действия в теле цикла следует повторять, до тех пока условие не выполняется (условие выхода из цикла); цикл завершается, когда условие выполняется;

Алгоритм на языке Турбо Паскаль Блок-схема алгоритма
Цикл «для»
FOR <параметр цикла> = <начальное значение> TO <конечное значение> DO <тело цикла>, где параметр цикла может принимать только целочисленные значения; шаг изменения параметра цикла равен 1; начальное и конечное значения параметра цикла могут быть записаны константами или выражениями, которые принимают целые значения; тело цикла – произвольный оператор.
Цикл «с предусловием»
WHILE <условие продолжения цикла> DO <тело цикла>, где условие продолжения цикла представляет собой логическое выражение, которое принимает значения ИСТИННО или ЛОЖНО; значение переменных, входящих в условие, должны изменяться в теле цикла, иначе цикл не будет завершен; тело цикла – произвольный оператор.  
Цикл «с постусловием»
REPEAT <тело цикла> UNTIL <условие выхода из цикла>, где условие выхода из цикла представляет собой логическое выражение, которое принимает значения ИСТИННО или ЛОЖНО; тело цикла выполняется хотя бы один раз; тело цикла – произвольный оператор.    

Пример 3.8. Составить алгоритм вычисления ряда значений наиболее вероятной скорости молекул газа от температуры VB=f(T) при изменении температуры воздуха в интервале от TН до ТК с шагом hТ по формуле

.

Данные для вычислений: заданы в системе физических единиц Си.


Вариант 1. «Цикл с предусловием»

Блок-схема алгоритма Алгоритм на языке Турбо Паскаль
Начало

Вывод ' NB= ', NB,
Ввод данных

  Begin ReadLn(M,TH,TK,HT,R,EPS); T:=TH While T<=TK+EPS DO Begin VB:=SQRT(2*R*T/M); WriteLn (`T=`T,`VB=`VB); T:=T+HT End End.

Параметром цикла является переменная Т, которая принимает значения от ТН до ТК с шагом HT. Условие повторения цикла имеет следующий вид:

T<=TK+EPS, где значение константы EPS ‑ зависит от точности вычислений (см. пример 3.7). Тело цикла представляет собой составной оператор, заключенный в операторные скобки Begin – End. Тело цикла включает в себя вычисление значения VB для текущего значения параметра цикла Т, вывод значений Т и VB на экран и вычисление следующего значения параметра цикла Т. Если значения ТН и ТК будут заданы ошибочно (например, ТН>ТК), то оператор цикла не выполнится ни разу.


Вариант 2. Цикл «с постусловием»

Алгоритм на языке Турбо Паскаль с оператором цикла REPEAT для фрагмента, аналогичного алгоритму с оператором WHILE (пример 3.8) имеет следующий вид.

Begin

ReadLn(M,TH,TK,HT,R,EPS);

T:=TН;

Repeat

Begin

VB:=SQRT(2*R*T/M);

WriteLn (`T=`T,`VB=`VB);

T:=T+HT

Until T>TK

End

End.

Тело цикла в операторах цикла REPEAT и WHILE совпадает. В отличие от оператора цикла WHILE в операторе цикла REPEAT проверка условия выхода из цикла выполняется в конце оператора, поэтому тело цикла будет выполнено хотя бы один раз, даже при ошибочном значении параметра цикла (см. вариант 1).

Вариант 3. Цикл «для» (со счетчиком цикла)

Операторы цикла REPEAT и WHILE применяют для организации цикла с неизвестным числом повторений. Если в алгоритме заранее определить число повторений цикла, то можно использовать оператор цикла «для».

Алгоритм на языке Турбо Паскаль с оператором цикла FOR для фрагмента, аналогичного алгоритму с оператором WHILE (пример 3.8) имеет следующий вид.


Блок-схема алгоритма Алгоритм на языке Турбо Паскаль
Начало

Вывод (' T= ',T, ' VB= ',VB) ))) ',VB), NB,
Ввод данных

begin ReadLn(M,TH,TK,HT,R,EPS); N:=TRUNC((TK-TH)/HT)+1; T:=TH; For I:=1 TO N Do Begin VB:=SQRT(2*R*T/M); WriteLn (`T=`T,`VB=`VB); T:=T+HT End End.

Параметром цикла является целая переменная I, которая принимает значения от 1 до N с шагом 1. Количество повторений цикла N вычислено до начала цикла с использованием функции выделения целой части числа TRUNC. Переменная T изменяет свое значение в теле цикла. До начала цикла переменной T присваивается начальное значение с помощью оператора присваивания T:=TN. Тело цикла в операторах цикла REPEAT, WHILE и FOR совпадает. В каждом цикле проверяется условие продолжения цикла I<=N.




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


Дата добавления: 2014-01-04; Просмотров: 401; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.014 сек.