Отличия операторов repeat и while.

Программа.

Задача 16.

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

Программа.

Задача 15.

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

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

 

Whileусловие do оператор;

(While: читается – "вайл"; переводится – "пока"; do: читается – "ду"; переводится – "делай".)

 

Работает оператор while так:

 

Сначала компьютер проверяет истинность условия, стоящего после слова while. Если условие истинно, то выполняется оператор, стоящий после do. Затем снова проверяется истинность условия и в случае истинности снова выполняется этот оператор и т.д. Если условие ложно, то оператор whileпрекращает свою работу и компьютер переходит к выполнению следующего оператора.

 

Оператор, стоящий после do называется телом цикла. Телом цикла может быть и составной оператор, т.е. группа операторов, заключённая в операторные скобки begin...end .

 

Составить программу с использованием оператора while для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.

 

Var a:Real;

BEGIN

a:=900;

while a>=0 do begin

WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);

a:=a-3;

end;

ReadLn

END.

 

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

 

Repeatоператор, оператор, …, операторUntilусловие;

(RepeatUntilусловие: читается – "ри'пит…ан'тил"; переводится – "повторяй… до тех пор, пока не выполняется условие.)

 

Работает оператор repeatтак:

 

Сначала компьютер по очереди выполняет операторы, стоящие после слова repeat, пока не дойдёт до слова until. Если условие ложно, то компьютер снова по очереди выполняет эти операторы и снова проверяет истинность условия и т.д. Если условие оказывается истинным, то работа оператора repeat прекращается и компьютер переходит к выполнению следующего по порядку оператора.

 

 

Составить программу с использованием оператора repeat для вычисления квадратных корней из чисел 900, 893, 866 и т.д. до тех пор, пока это можно делать.

 

Var a:Real;

BEGIN

a:=900;

repeat

WriteLn('Число=',a:5:0,' Корень=',Sqrt(a):7:2);

a:=a-3;

until a<0;

ReadLn

END.

 

 

v Компьютер выходит из цикла оператора repeat тогда, когда условие истинно, а из цикла оператора while– когда условие ложно;

 

v whileможет ни разу не выполнить оператор, стоящий после do; repeatже хотя бы раз операторы, стоящие между repeat и untilвыполнит.

 

v Если тело цикла содержит несколько операторов, то в цикле while, в отличие от цикла repeat, необходимо использовать операторные скобки begin ...end.


Цикл со счётчиком.

 

Цикл со счётчиком имеет следующий вид:

 

Forимя:=выражение_1 to выражение_2 doоператор;

имя –это имя произвольной переменной порядкового типа, называемой переменной цикла (или его счётчиком);

выражение_1 и выражение_2 – это произвольные выражения порядкового типа.

(For: читается – "фо"; переводится – "для"; to: читается – "ту"; переводится – "до"; do: читается – "ду"; переводится – "делай".)

 

Конструкция For i:=1 to 200 do ...переводится так: дляi,изменяющегося от 1 до 200, делай оператор, стоящий после слова do.

Цикл Forиспользуют тогда, когда точно знают, сколько раз должно быть выполнено тело цикла.

Оператор, стоящий послеdoможет быть и составным.

 

Работает оператор Forтак:

Прежде всего вычисляется выражение_1, и переменной цикла (пусть это будетi) присваивается его значение. Затем вычисляется выражение_2 и сравнивается сi. Если i>выражение_2, то оператор Forзавершает свою работу, так ничего и не сделав. В противном случае выполняется оператор, стоящий после do. После выполнения этого оператора значение iувеличивается на единицу и снова сравнивается с выражение_2. Если i>выражение_2, то оператор Forзавершает свою работу, иначе снова выполняется оператор, стоящий после do, снова значение i

увеличивается на единицу и т.д.

 

 

Оператор For позволяет не только увеличивать, но и уменьшать переменную цикла. Для этого вместо to нужно писать downto.

(читается – "даунту"; переводится – "вниз до".)