Лекции.Орг


Поиск:




Цикл с известным количеством повторений.

 

Для реализации такого вида цикла в языке Pascal используется составной оператор, состоящий из операторов for, to, downto, do и при необходимости из операторных скобок.

Оператор цикла for имеет одну из двух форм:

 

for переменная:=начальное_значение to конечное_значение do оператор

или

for переменная:=начальное_значение downto конечное значение do оператор.

 

Содержимое текста от слова for до слова do включительно называется

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

Для цикла с ключевым словом to значение параметра цикла последовательно увеличивается на единицу при каждом прохождении цикла. Для цикла с ключевым словом downtoзначение параметра цикла при каждом повторе последовательно уменьшается на единицу.

 

Пример: {к величине S прибавляется 10 чисел от 1 до 10}

For i:=1 To 10 Do

S:=S+i;

 

Если многократно нужно выполнить несколько операторов, то они помещаются в блок операторов - между служебными словами Begin и End.

 

Для циклических конструкций на структурных схемах алгоритмов часто применяют следующее УГО:

 

 

На рисунке I – параметр цикла; I0 – начальное значение параметра цикла; In – конечное значение параметра цикла; h – шаг.

 

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

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

    Схема работы оператора приведена на рис.

 

 

    Для реализации циклов с предусловием используется составной оператор, включающий оператор while, do, операторные скобки. В общем виде цикл реализуется записью:

 

while <условие> do <действие>;

 

Если тело цикла содержит более одного действия, то необходимо использовать операторные скобки:

 

while <условие > do

begin

<оператор 1>;

<оператор 2>;

...

<оператор n>;

end;

Условие представляет собой выражение логического типа и может быть простым, с использованием операций отношения (<, >, <=, >=, =, <>), или составным с использованием логических операций. Оператор после do называется телом цикла.

Перед каждой итерацией цикла условие проверяется, и если оно истинно, то выполняется тело цикла, в противном случае происходит выход из цикла.

Пример: ввести целое число; вывести все цифры введенного числа.

var a,b: integer;

Begin

readln(a);

while a<>0 do

begin

b:=a mod 10;

write(b:3);

a:=a div 10;

end;

End.

 

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

Для цикла с постусловием сначала выполняется тело цикла, затем управление передается на проверку условия. В зависимости от истинности или ложности условия, тело цикла выполняется повторно или же происходит переход к оператору, следующему за телом цикла.

 

Схема работы оператора приведена на рис.

 

Для реализации цикла используется составной оператор, состоящий из операторов repeat и until. В общем виде цикл записывается так:

 

repeat

<действие>;

until <условие>;

 

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

    Пример решения предыдущей задачи с применением цикла repeat.

var a,b: integer;

Begin

readln(a);

repeat

b:=a mod 10;

write(b:3);

a:=a div 10;

until a=0;

End.

 

              Вложенные циклы.

 

Циклы могут быть простыми или вложенными (цикл в цикле).

Например:

 

Program VlC;

var i,j:integer;

begin

for i:=1 to 5 do //внешний цикл

begin

    writeln;

     for j:=10 to 13 do //внутренний цикл

        write(' i=',i,' j=',j);

end;

readln;

end.

 

Для цикла for i:=1 to 5 do телом цикла является:

begin

writeln;

for j:=10 to 13 do

write(' i=',i, ', j = ', j);

end;

 

Этот цикл является внешним, по отношению к нему внутренним будет цикл:

for j:=10 to 13 do с телом write (' i = ', i, j =', j).



<== предыдущая лекция | следующая лекция ==>
Тема 4. Управляющие конструкции языка Паскаль. | Тема 5. Структурированные типы данных.
Поделиться с друзьями:


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


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

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

Победа - это еще не все, все - это постоянное желание побеждать. © Винс Ломбарди
==> читать все изречения...

1237 - | 1183 -


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

Ген: 0.01 с.