Краткие теоретические сведения. в языке паскаль имеются три конструкции операторов цикла.

      Комментарии к записи Краткие теоретические сведения. в языке паскаль имеются три конструкции операторов цикла. отключены

В языке ПАСКАЛЬ имеются три конструкции операторов цикла.

Оператор цикла while

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

Общий вид:
while A do S ;

где A – логическое (булевское) выражение (условие продолжения цикла);

S – любой оператор (простой или составной) языка ПАСКАЛЬ (тело цикла).

Выражение A вычисляется перед каждой попыткой выполнения оператора S. Если значение A истинно (A = True), то оператор S выполняется, и снова предпринимается попытка выполнить оператор S, то есть, управление передается на вычисление значения A; если значение A оказывается ложным (A = False), то оператор S не выполняется, цикл заканчивается и выполняется следующий за while оператор.

Если при первой же попытке выполнить оператор S значение A окажется ложным (A = False), то оператор S не будет выполнен ни разу.

Если значение выражения A никогда не принимает значения лож (False), то тело цикла будет выполняться бесконечное число раз (происходит “зацикливание”). Таким образом, если необходимо получить такой бесконечный цикл, то достаточно задать условие типа 0 = 0.Остановить такую программу можно, нажав клавиши Ctrl+Break или Ctrl+C.

Оператор цикла repeat

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

Общий вид:

repeat
S1;
S2;

SN
until A;
где S1, S2, …, SN – группа выполняемых в цикле операторов (тело цикла); A – логическое (булевское) выражение (условие продолжения цикла).

Выполняется оператор repeat в следующем порядке: сначала выполняются операторы S1, S2, …, SN, затем вычисляется выражение A; если значение A оказывается ложным (A = False), то вновь выполняются операторы S1, S2, …, SN, а если значение A истинно (A = True), цикл заканчивается и выполняется следующий за repeat оператор (оператор стоящий после выражения A).

Тело цикла repeatвыполняется как минимум один раз (если значение A оказывается истинно на первом же шаге).

Если значение выражения A никогда не принимает значения истина (True), то тело цикла будет выполняться бесконечное число раз (происходит “зацикливание”). Таким образом, если необходимо получить такой бесконечный цикл, то достаточно задать условие типа 0 = 1.Остановить такую программу можно, нажав клавиши Ctrl+Break или Ctrl+C.

Оператор цикла for

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

Общий вид:

for I := E1 to E2 do S ;
или

for I := E1 downto E2 do S ;

где I –параметр цикла, часто называемый счетчиком цикла или цикловой переменной, это переменная любого скалярного типа, кроме типаreal;

E1 –начальное значение параметра цикла, выражение того же типа, что и переменнаяI;

E2 –конечное значение параметра цикла, выражение того же типа, что и переменнаяI;

S –любой оператор (простой или составной) языка ПАСКАЛЬ (тело цикла).

Оператор цикла выполняется следующим образом:

1)на первом шаге вычисляются значения выраженийE1иE2,переменнойIприсваивается результат вычисления выражения E1

2) выполняется оператор S (тело цикла);

3)затем переменнойIприсваивается следующее значение, вычисляется значение выраженияE2 ирезультат вычислений сравнивают с новым значением переменнойI.Если результат сравнения – истинна(True), то действия повторяются; если результат сравнения оказывается ложным(False), то операторSне выполняется, цикл заканчивается и выполняется следующий заforоператор.

Следующее значение параметра цикла вычисляется в операторе с ключевым словомtoкак
I := SUCC( I ) (приIцелого типаI := I + 1 ),а в операторе с ключевым словомdowntoкакI := PRED( I ) (приIцелого типаI := I — 1 ).

Выражения E1 и E2 вычисляются только один раз, в начале цикла!

Категорически запрещается в теле цикла for (в операторе S) изменять значение параметра цикла (переменной I)!

После завершения цикла значение параметра цикла ( переменной I) не определено, “портится”, и пользоваться им нельзя!

Если нужно обойти указанные ограничения, то операторfor I := E1 to E2 do Sможно заменить на последовательность операторов подобную:

I := E1;

while( IE2 )do

begin

S1;

I := SUCC( I )

end;
а операторforI :=E1downtoE2doSна:

I := E1;

while( IE2 )do

Begin

S;

I := PRED( I )

End;

Задача №1

Написать программу, которая вычисляет сумму первых N членов последовательности an. Число Nпрограмма должна запрашивать у пользователя.

Для какого максимального числа N программа позволяет получить верный результат?

1)Решить задачу с использованием оператор цикла for.

2)Решить задачу с использованием оператор цикла whileилиrepeat.

Задача №2

Написать программу которая вычисляет сумму первых N членов ряда с точностью доe( т.е. пока величина очередного вычисленного члена ряда не станет меньше e,где e0). Число eпрограмма должна запрашивать у пользователя.

Для какого минимального числа eпрограмма позволяет получить верный результат?

Статьи к прочтению:

Паскаль с нуля [ч4]. Условные операторы


Похожие статьи: