Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


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




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

Оператор цикла 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 (I <> E2) do

begin

S1;

I:= SUCC(I)

end;
а оператор for I:=E1 downto E2 do Sна:

I:= E1;

while (I <> E2) do

Begin

S;

I:= PRED(I)

End;

Задача №1

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

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

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

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

Задача №2

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

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





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


Дата добавления: 2016-11-18; Мы поможем в написании ваших работ!; просмотров: 547 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Свобода ничего не стоит, если она не включает в себя свободу ошибаться. © Махатма Ганди
==> читать все изречения...

2307 - | 2069 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.007 с.