Оператор цикла с параметром for ... Do (для…)
Оператор цикла с параметром используется именно в таких случаях, когда необходимо организовать цикл с заданным числом повторений
for <параметр_цикла>:=<начальное_знач> to <конечное_знач> do <оператор>;
for <параметр_цикла>:=<конечное_знач> downto <начальное_зна.> do <оператор>;
Оператор, представляющий собой тело цикла, может быть простым или составным.
Параметр цикла, а также диапазон его изменения могут быть только целочисленного или перечислимого типа.
Параметр описывается совместно с другими переменными.
Шаг цикла for всегда постоянный и равен '1' или '-1'.
Выполнение цикла начинается с присвоения параметру стартового значения.
Затем следует проверка, превосходит ли параметр конечное значение.
Если результат проверки утвердительный, то цикл считается завершенным, и управление передается следующему за телом цикла оператору.
В противном случае выполняется тело цикла, и параметр меняет свое значение на следующее согласно заголовку цикла.
Далее снова производится проверка значения параметра цикла, и алгоритм повторяется.
Вывести на экран первые десять положительных целых чисел
var i: integer; //вводится счетчик
begin
fori:=1to10do//пока значение счетчика от 1 до 10 выполнять следующее
writeln(i); //вывод значения счетчика
end.
Посчитать сумму двузначных положительных чисел, кратных 3.
vari,sum:integer;
begin
sum:=0; //обнуление значения переменной
fori:=10to99do//перебор двузначных положительных чисел
if i mod 3=0 then //кратность 3
sum:=sum+i; //сумма предыдущего значения переменной и числа, соответствующего условию
writeln(sum);
end.
Вывести на экран произведение десяти первых четных положительных чисел
vari,pr:integer;
begin
pr:=1; //при нахождении произведения начальное значение переменной не 0, а 1
for i:=1 to 10 do
if i mod 2=0 then //определение четности
pr:=pr*i;
writeln(pr);
end.
Даны два целых числа A и B (A < B). Вывести в порядке возрастания все целые числа, расположенные между A и B (в том числе A и B), a также количество N этих чисел.
var i,pr: integer;
readln(a,b);
k:=0; //обнуляем значение переменной, означающей количество
fori:=AtoBdo//перебор чисел из заданного диапазона
begin
writeln(i); //вывод в чисел порядке возрастания
k:=k+1; //подсчет количества чисел
end;
writeln(k); //вывод количества происходит вне цикла т.к. выводится один раз
readln;
end.
Ввести N различных чисел. Найти среднее арифметическое всех чисел.
Var n,i,a:integer;
s:real;
Begin
Readln(n);
For i:=1 to N do
Begin
Readln(a);
s:=s+a;
end;
Writeln('среднее арифметическое= ',s/n:4:2);
End.
Оператор цикла с предусловием while ... Do (пока…)
Оператор while ... do предназначен для реализации циклов с предусловием.
Условие выполнения тела цикла while проверяется до начала каждого шага. Поэтому если условие сразу не выполняется, то тело цикла игнорируется, и управление передается оператору, стоящему сразу за телом цикла.
Обращение к оператору while ... do переводится как «пока ... делать» и выглядит так:
while <условие> do <оператор>
В цикле while подразумевается такой алгоритм: пока условие истинно, выполняются операторы тела цикла.
Само условие может быть логической константой, переменной или логическим выражением.
При написании циклов с предусловием следует помнить следующее.
чтобы цикл имел шанс когда-нибудь закончиться, содержимое его тела должно обязательно влиять на условие цикла.
условие должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла.
Если условие цикла ложно цикл не выполнится ни разу!