Й оператор тела цикла;

N-й оператор тела цикла

UNTIL логическое условие;

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

В операторе REPEAT...UNTILпроверка условия производится после очередного выполнения операторов тела цикла, следовательно, в нем операторы тела цикла выполняются как минимум один раз.

Операторы тела цикла выполняются до тех пор, пока значение логического условия есть FALSE («ложь»). Как только оно принимает значение TRUE («истина»), управление передается оператору, следующему в программе за конструкцией REPEAT UNTIL.

Операторы цикла в REPEAT...UNTILне заключаются в операторные скобки, аотделяются друг от друга точкой с запятой.

Применение операторов WHILE...DO и REPEAT...UNTILрегламентируется некоторыми правилами.

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

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

· Изменение значения переменной, влияющей на логическое условие, через некоторое конечное число операций должно привести к удовлетворению условия окончания цикла.

Пример 9.1. Разработать блок-схему и программу вычисления суммы элементов ряда с заданной точностью e = 0,00001. Условием окончания вычислений считать êSn ê<= e. Значение x задать самостоятельно.

Блок-схема и программа задачи.

Рис.11.

Program zikl3;

{вычисление суммы элементов ряда с заданной точностью}

uses crt;

var {раздел описания переменных}

x,e,a,s,s1,delta:real;

n,c:integer;

f:longint;

begin {начало раздела операторов}

clrscr;

write('введите x=');

readln(x);

write('введите точность вычислений e=');

readln(e);

{начальные значения a, f, c, n, s}

a:=x; c:=1;

f:=1*2*3;

n:=0;

s:=0;

repeat {начало суммирования}

s1:=s; {в s1 хранится значение s для сравнения}

n:=n+1; {счетчик слагаемых}

c:=-c; {значение (-1) для n-го слагаемого}

a:=a*sqr(x); {вычисление х в степени (2n+1) n-го слагаемого}

f:=f*(2*n+2)*(2*n+3); { факториала n-го слагаемого}

s:=s+c*a/f * sin(n*x); {добавление n-го слагаемого к общей сумме }

delta:=abs(s-s1); {проверка условия окончения цикла}

until delta<=e;

{вывод результата на дисплей}

writeln('при x=',x:4:2,' сумма', n:2,' элементов=',s:7:5);



readln;

end.

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

Программа выполняет расчет каждого элемента ряда по общим формулам. Для уменьшения количества вычислений при расчете х2n+1 и факториала (2n+3)! используются их значения из предыдущих слагаемых (переменные a, f). Для правильного расчета первого элемента ряда задаются начальные условия. Им нужно уделить особое внимание.

Программа снабжена комментариями и дополнительных объяснений не требует.

Варианты заданий

Вычислить сумму элементов бесконечного ряда с заданной точностью

e = 0,00001. Условием окончания вычислений считать êSn ê<= e.

Значение x задать самостоятельно.

9.
10.
11.
12.
13.
14.
15.
16.

Контрольные вопросы

1. Для чего предназначен оператор цикла?

2. Какие виды циклов есть в Паскале?

3. Какой формат записи имеет оператор WHILEL? Как он работает? B каких случаях применяется?

4. Какой формат записи имеет оператор REPEAT? Как он работает? B каких случаях применяется?

5. Чем отличается оператор WHILE от оператора REPEAT?

6. Какой формат записи имеет оператор FOR? Какие существуют варианты этого цикла?

7. Как работает оператор FOR? B каких случаях применяется?

8. Что является телом цикла?

9. Как в теле цикла выполнить несколько операторов?

10. Почему перед выполнением цикла некоторым переменным нужно задавать начальные значения?

11. Что такое зацикливание? Как его избегать?



3689757156022394.html
3689775885493583.html

3689757156022394.html
3689775885493583.html
    PR.RU™