Отличия операторов 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условие;
(Repeat …Untilусловие: читается – "ри'пит…ан'тил"; переводится – "повторяй… до тех пор, пока не выполняется условие.)
Работает оператор 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.
(читается – "даунту"; переводится – "вниз до".)