Программирование. Циклы.

Программирование. Циклы.
Программирование. Циклы.

Программирование.
Школьный курс рассчитанный на 9-11 класс.
Первый урок по теме циклы.

На страницу урока →

Цели и задачи урока:
1) Рассмотрение блок-схем циклических конструкций.
2) Изучение циклов в программировании.
3) Разбор примеров задач.

В языке программирования Паскаль существует три вида циклических конструкций.
_original (1)


Цикл for

 
Часто цикл for называют циклом со счетчиком. Этот цикл используется, когда число повторений не связано с тем, что происходит в теле цикла. Т.е. количество повторений может быть вычислено заранее (хотя оно не вычисляется).
Цикл for существует в двух формах:
-for счетчик:=значение to конечное_значение do
тело_цикла;
-for счетчик:=значение downto конечное_значение do
тело_цикла;

Количество итераций цикла for известно именно до его выполнения, но не до выполнения всей программы. Так в примере ниже, количество выполнений цикла определяется пользователем. Значение присваивается переменной, а затем используется в заголовке цикла. Но когда оно используется, циклу уже точно известно, сколько раз надо выполниться.


var
i, n: integer;

begin
write (‘Количество знаков: ‘);
readln (n);
for i := 1 to n do
write (‘(*) ‘);
readln
end.


Задача.

Напишите программу для нахождения суммы вводимых целых чисел.
Код:
var s: real;
begin
write(‘Введите число слагаемых: ‘);
var n := ReadInteger;
s := 0;
for var i:=1 to n do
begin
write(‘Введите слагаемое: ‘);
var x := ReadReal;
s:=s+x;
end;
writeln(‘Сумма слагаемых равна ‘,s);
end.


Цикл while

Цикл while является циклом с предусловием. В заголовке цикла находится логическое выражение. Если оно возвращает true, то тело цикла выполняется, если false – то нет.

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


var
i, n: integer;
begin
write (‘Количество знаков: ‘);
readln (n);
i := 1;
while i <= n do begin
write (‘(*) ‘);
i := i + 1
end;


Задача.

Напишите программу для проверки условия «Есть ли среди введенных чисел число к?»
Код:
var n,k: integer;
begin
write(‘Введите целые числа n (n>0) и k: ‘);
readln(n,k);
assert(n>0);

var Exists := false;
var i := 1;
while (i <= n) and not Exists do
begin
write('Введите ', i, ' целое число: ');
var x := ReadInteger;
i += 1;
if x = k then
Exists := true;
end;

if Exists then
writeln('Число ', k, ' было введено')
else writeln('Число ', k, ' не было введено');
end.


Цикл repeat

Цикл while может не выполниться ни разу, если логическое выражение в заголовке сразу вернуло false. Однако такая ситуация не всегда может быть приемлемой. Бывает, что тело цикла должно выполниться хотя бы один раз, не зависимо оттого, что вернет логическое выражение. В таком случае используется цикл repeat – цикл с постусловием.

В цикле repeat логическое выражение стоит после тела цикла. Причем, в отличие от цикла while, здесь всё наоборот: в случае true происходит выход из цикла, в случае false – его повторение.

var
i, n: integer;
begin
write (‘Количество знаков: ‘);
readln (n);
i := 1;
repeat
write (‘(*) ‘);
i := i + 1
until i > n;
readln
end.
end;


Задача.

Напишите программу для проверки условия «Является ли введенное число простым?»
Примечание. Напомним, что простым называется число, которое не имеет делителей кроме 1 и самого себя.
Цикл не может продолжаться бесконечно, так как любое число всегда делится само на себя.

Код:
Var
i, {возможный делитель}
Number : integer; {исследуемое число}
Begin
ClrScr;
writeln (‘Какое число должно быть проверено? ‘);
read (Number);
i := 1;
repeat
i := i+1;
until Number mod i = 0;
if Number=i
then
writeln (Number,’ является простым’)
else
writeln (Number,’ делится на ‘,i);
readln;
End.

http://pas1.ru/cycles

Опубликовано: 09.07.2014 г.