94.54K
Категория: ПрограммированиеПрограммирование

Цикл со счетчиком

1.

ЦИКЛ СО СЧЕТЧИКОМ
Урок 1
Учитель: Н.В. Фоменко

2.

ПОВТОРЕНИЕ ИЗУЧЕННОГО РАНЕЕ
Повторение некоторой последовательности
действий называется циклом
Сама последовательность повторяющихся
действий называется телом цикла
Виды циклов:
Цикл с заданным числом повторений (для)
Цикл с заданным условием продолжения работы
(пока)
Цикл с заданным условием окончания работы
(при)

3.

ЦИКЛ С ЗАДАННЫМ ЧИСЛОМ
ПОВТОРЕНИЙ
Используется, если число повторений цикла
известно заранее или может быть легко
вычислено
Другие названия этого цикла:
Цикл со счетчиком
Цикл с параметром
На Паскале этот цикл называется цикл for

4.

ЦИКЛ СО СЧЕТЧИКОМ
Существуют две формы этого цикла:
Цикл с последовательным увеличением счетчика
(цикл for-to)
Цикл с последовательным уменьшением счетчика
(цикл for-downto)

5.

ЦИКЛ FOR-TO
for переменная-счетчик:= нач. значение to кон. значение do
оператор;
!
После слова do знак «;» не ставится
for i:=1 to n do
оператор;
Переменная i (счетчик или
параметр цикла) может быть
только порядкового типа (byte,
integer, longint, boolean, char)
i = н.з, к.з.
Тело цикла
Тип real использовать для этой переменой нельзя

6.

РАБОТА ЦИКЛА FOR-TO
for i:=1 to n do
оператор;
Сначала переменной-счетчику присваивается
начальное значение, оно сравнивается с
конечным. Если оно <= конечного, выполняется
тело цикла
Затем переменная i автоматически увеличивается
на 1
Это новое значение опять сравнивается с
конечным, и если оно не превышает конечного,
опять выполняется тело цикла и переменная i
снова увеличивается на 1
Так продолжается до тех пор, пока новое значение
i не превысит конечное. На этом цикл
заканчивается

7.

ЦИКЛ FOR-TO
Считается, что после окончания цикла
переменная цикла (счетчик) не определена. К
ней больше не обращаются
Крайне не рекомендуется внутри цикла
самостоятельно менять счетчик цикла,
особенно в сторону уменьшения. Это может
привести к зацикливанию (бесконечному
повторению тела цикла)
Чтобы узнать, сколько раз выполнится тело
цикла, надо найти разность между крайними
значениями счетчика по модулю и прибавить к
ней 1.

8.

ЦИКЛ FOR-TO
Обычно для счетчика берут переменные i, j, k,l
реже n, m
Напечатать на экране 10 раз слово «Привет»
for i:=1 to 10 do
writeln (‘Привет’);
переменная i как бы «считает», сколько раз
выполняется тело цикла, поэтому она и
называется счетчиком

9.

ВЫВЕСТИ НА ЭКРАН СУММУ ЧИСЕЛ ОТ 1 ДО 20
Переменная i может не только подсчитывать
количество повторений, но и сама участвовать в
вычислениях
s := 0
i = 1, 20
s := s+i
s
program sum;
var i,s: integer;
begin
s:=0;
for i:=1 to 20 do
s:=s+i;
writeln (s)
end.
i
s
0
1
0+1=1
2
1+2=3
3
3+3=6
4
6+4=10
5
10+5=15
6
15+6=21
….
….
20
190+20=210

10.

ЦИКЛ FOR-DOWNTO
for переменная-счетчик:=нач.значение downto кон.значение do
оператор;
for i:=n downto 1 do
оператор;
i = н.з, к.з.
Тело цикла
В этом случае тоже каждый
раз перед выполнением тела цикла текущее значение
счетчика сравнивается с конечным. Если оно оказывается
больше или равно конечному, выполняется тело цикла. После
чего значение счетчика уменьшается на 1
Как только текущее значение окажется меньше конечного,
выполнение цикла прекращается

11.

ВЫВЕСТИ НА ЭКРАН СУММУ ЧИСЕЛ ОТ 1 ДО 20
Решим ту же самую задачу, но с помощью другой
формы цикла
s := 0
i = 20,1
s := s+i
s
program sum;
var i,s: integer;
i
begin
s:=0;
for i:=20 downto 1 do 20
s:=s+i;
19
writeln (s)
18
end.
s
0
0+20=20
20+19=39
39+18=57
17
57+17=74
16
74+16=90
15
90+15=105
….
…..
1
209+1=210

12.

ВЛОЖЕННЫЕ ЦИКЛЫ
Можно организовать выполнение одного цикла
внутри другого
В этом случае различают внешний и
внутренний циклы
При каждом значении счетчика внешнего
цикла нужно выполнить весь внутренний
цикл, то есть счетчик внешнего цикла
меняется медленнее счетчика внутреннего
цикла
Для переменных-счетчиков внешнего и
внутреннего циклов берут разные имена

13.

ВЫВЕСТИ НА ЭКРАН
ПОСЛЕДОВАТЕЛЬНОСТЬ ЧИСЕЛ
1 1
1 2
Очевидно, что здесь должно быть 2 счетчика:
первый изменяется от 1 до 3. второй – от 1 до 4
1 3
1 4
i =1,3
2 1
2 2
2 3
i = 1,4
2 4
3 1
3 2
3 3
3 4
i, j
program test;
var i, j :byte;
begin
for i:=1 to 3 do
for j:=1 to 4 do
writeln (i,' ',j)
end.
English     Русский Правила