Студопедия

КАТЕГОРИИ:

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

Цикл с предусловием 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.

Решение.

Programprim_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.










Последнее изменение этой страницы: 2018-05-10; просмотров: 216.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...