Организация циклических вычислений — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Организация циклических вычислений

2017-11-17 491
Организация циклических вычислений 0.00 из 5.00 0 оценок
Заказать работу

Большинство вычислительных процессов имеют следующую особенность: отдельные этапы вычислений повторяются многократно, при этом всякий раз используются новые значения при вычислении. Повторяющийся этап вычислений называют телом цикла, а вычислительный процесс – циклическим.

Виды задач, программируемых с помощью циклических конструкций:

· табулирование функции (построение таблиц значений функции при различных значениях аргумента);

· вычисление суммы ряда;

· нахождение предела последовательности;

· отделение и уточнение корней уравнения;

· вычисление значения интеграла и некоторые другие задачи.

Различают циклы с известным и неизвестным числом повторений.

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

Циклы с неизвестным числом повторений (итерационные циклы)

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

Цикл с предусловием while..do

Цикл с предусловием реализуется на языке Pascal с помощью оператора while..do. Количество повторений такого цикла заранее не определено и зависит от входных данных задачи. В данной циклической конструкции перед выполнением следующего повторения цикла проверяется значение логического выражения.

Формат оператора while..do:

while < условие > do < тело_цикла >;

где while, do – служебные слова (пока, выполнять);

<условие> – выражение логического типа (например, b <= 5);

<тело_цикла> – тело цикла, состоящее из оператора языка Pascal, который может быть простым, составным или структурированным.

Принцип действия оператора while..do.

1 Вычисляется значение логического выражения (проверяется условие).

2 Если результатом вычисления значения логического выражения (результатом проверки условия) является значение true (истина), то выполняется оператор, составляющий тело цикла и стоящий после служебного слова do. После этого происходит возврат к п. 1.

3 Если результатом вычисления значения логического выражения является значение false (ложь), то оператор while..do заканчивает свою работу и управление передается следующему в коде программы оператору.

Согласно описанному алгоритму повторение п. 1 и 2 продолжается до тех пор, пока результатом вычисления значения логического выражения (результатом проверки условия) не станет значение false (ложь). Заметим, что если значением логического выражения сразу является false, то тело цикла оператора while..do не выполняется ни разу.

Примечание − Тело цикла обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежна ситуация «зацикливания», проявляющаяся как бесконечное повторение выполнения тела цикла.

Пример 5. Составить, используя оператор цикла с предусловием, программу для вычисления и вывода на экран значений функции

(5)

при значениях переменной х, изменяющихся в диапазоне от –3 до 6 с шагом 0,3.

Решение.

Program prim_w;

Var x, y: real;

Begin

x:=-3; {левая граница диапазона изменения переменной}

while x<=6 do {условием выхода из цикла ставится

достижение переменной x правой границы диапазона}

Begin

y:=cos(exp(x*ln(5))/abs(x+2));

writeln('x=',x:5:2,' y=',y:7:3);

x:=x+0.3 {увеличение значения переменной x на величину шага}

end;

End.

Цикл с постусловием repeat..until

Цикл с постусловием, в котором сначала выполняется оператор или группа операторов, а затем проверяется условие, реализуется на языке Pascal с помощью структурированного оператора repeat..until.

Формат оператора:

Repeat

< операторы >

until < условие >;

где repeat, until – служебные слова (повторять, до тех пор, пока);

< операторы > – последовательность операторов (тело цикла). Использовать в качестве тела цикла операторные скобки begin и end нецелесообразно, т. к. роль скобок в данном случае играют зарезервированные слова repeat и until;

< условие > – выражение логического типа.

Принцип действия оператора repeat..until.

1 Выполняются операторы, расположенные между операторами repeat..until, составляющие тело цикла.

2 Вычисляется значение логического выражения – проверяется условие. Если результатом вычисления значения логического выражения является значение false (ложь), то операторы, составляющие тело цикла, выполняются вновь.

3 Если результатом вычисления значения логического выражения (результатом проверки условия) является значение true (истина), то оператор repeat..until заканчивает свою работу, и управление передается следующему в коде программы оператору.

Как следует из описанного алгоритма, повторение действий 1 и 2 продолжается до тех пор, пока результатом вычисления логического выражения не станет значение true (истина), т. е. пока не выполнится условие.

Примечания

1 Тело цикла repeat..until обязательно должно содержать оператор, действие которого влияет на значение логического выражения (изменяет значения входящих в него операндов). Иначе неизбежна ситуация «зацикливания», при которой происходит бесконечное повторение выполнения тела цикла.

2 Тело цикла оператора repeat..until выполняется хотя бы один раз независимо от начального значения логического выражения.

Пример 6. Составить, используя оператор цикла с постусловием, программу для вычисления и вывода на экран значений функции

(6)

при значениях х, изменяющихся в диапазоне от –3 до 6 с шагом 0,3.

Решение.

Program prim_r;

Var x, y: real;

Begin

x:=-3; {левая граница диапазона изменения переменной}

Repeat

y:=cos(exp(x*ln(5))/abs(x+2));

writeln('x=',x:5:2,' y=',y:7:3);

x:=x+0.3 {увеличение значения переменной x на шаг}

until x>6 {условием выхода из цикла является превышение

переменной x значения правой границы диапазона}

End.


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

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

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

Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.017 с.