Раздел: «Циклы. Циклические алгоритмы».
Тема урока: «Вложенные циклы».
Цель урока: обобщение знаний операторов цикла и обучение построению циклического алгоритма сложной структуры.
Задачи урока:
повторить циклический алгоритм и дать понятие о вложенных циклах
закрепить навыки составления программ с циклами
совершенствовать работу в коллективе при решении задач
Опорные знания:
циклическая структура алгоритма
операторы цикла
Программное обеспечение:
язык программирования QBASIC
Ход урока:
Организационный момент. Приветствие.
Проверка готовности класса к уроку. Объяснить порядок и последовательность работы на уроке.
Повторение пройденного материала. (Фронтальный опрос учащихся)
Циклический алгоритм – алгоритм, предусматривающий
многократное повторение одного и того же действия
(одних и тех же операций) над новыми исходными данными.
Дни недели, времена года, смена дня и ночи, смена месяцев в году и т.д.
Структура цикла: НАЧАЛО ЦИКЛА
< ТЕЛО ЦИКЛА >
КОНЕЦ ЦИКЛА
FOR ... TO ... STEP ... < ТЕЛО ЦИКЛА > NEXT
Сообщение новой темы.
- До сих пор мы использовали операторы цикла для составления простых программ, где содержался только один цикл. Сегодня мы используем различные комбинации циклов с параметром и знание операторов цикла для создания сложных циклических программ.
- Итак, тема урока: «Вложенные циклы».
Объяснение нового материала.
- Если в программе содержится две структуры цикла, то эти структуры должны либо следовать одна за другой и не иметь общих частей, либо одна из структур должна быть вложена в другую.
- Обозначим цикл квадратной скобкой: (Запись на доске и в тетрадь)
[pic] FOR ... TO ... STEP ...
< ТЕЛО ЦИКЛА >
NEXT
- Схематически покажем варианты взаимного расположения циклов:
а) Последовательные циклы: б) Вложенные циклы:
[pic] [pic] FOR ... FOR ...
[pic] < ТЕЛО ЦИКЛА > FOR ...
NEXT
[pic] FOR ... < ТЕЛО ЦИКЛА >
< ТЕЛО ЦИКЛА > NEXT
NEXT
NEXT
в [pic] )Запрещённое расположение FOR ...
[pic] циклов в программе: FOR ...
(пересечение)
NEXT
NEXT
-Во вложенных циклах выделяются внешний и внутренний цикл.
Р [pic] ассмотрим рисунок №1: А
А [pic] – внешний цикл. В
Он открывается первым,
а закрывается последним.
В – внутренний цикл. В
Он открывается последним, А
а закрывается первым.
Рис.1
- Цикл, который чаще меняет значение своих параметров - внутренний.
На каждое изменение внешнего цикла полностью выполняется внутренний цикл, начиная с начального значения.
- MAX число вложенных циклов зависит от языка программирования,
в языке QBASIC количество «вложений» должно быть не более семи раз.
- Вложенный цикл – это цикл в цикле.
- Рассмотрим вложенные циклы на примере решения задач.
А) Написать программу заполнения экрана точками с расстояниями между ними по горизонтали и вертикали 10.
SCREEN 9
CLS
FOR x=0 TO 640 STEP 10
FOR Y=0 TO 350 STEP 10
PSET(X,Y),4
NEXT Y
NEXT X
Работает программа таким образом: В первом заголовке цикла переменной Х присваивается значение 0. Потом программа переходит к выполнению следующего оператора, т.е. в нашем случае, второго цикла, который и исполняется, пока Y не превысит значение 350. После этого берется следующее значение Х, и действия с Y повторяются. И так до тех пор, пока Х не станет больше 640. То есть программа строит вертикальные цепочки точек, пока не заполнится весь экран.
В) Получить на экране фигуру по шаблону, приведенному на рисунке:
[pic]
[pic]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[pic]
[pic]
REM Вариант 1 Screen 1
CLS
X0=60
Y0=30
FOR J=0 to 14
FOR I=0 to 14
READ P
IF P=1 THEN PSET (X0+I, Y0+J)
NEXT I
NEXT J
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,0,1,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,0,1,0,0,0,0,0,1
DATA 1,0,0,1,0,0,1,0,1,1,1,1,1,1,1
DATA 1,1,1,0,1,1,1,0,1,0,0,1,0,0,1
DATA 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1
DATA 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1
DATA 1,1,1,1,1,1,1,0,1,1,1,0,1,1,1
DATA 1,0,1,1,1,0,1,0,1,1,1,1,1,1,1
DATA 0,1,0,0,0,1,0,0,1,1,1,1,1,1,1
DATA 0,0,1,1,1,0,0,0,1,1,0,0,0,1,1
DATA 0,0,0,0,0,0,0,0,1,0,0,1,0,0,1
END
REM Вариант 2
Screen 1
CLS
X0=60
Y0=30
FOR J=0 to 140 STEP 10
FOR I=0 to 140 STEP 10
READ P
IF P=1 THEN LINE(X0+I,Y0+J)-(X0+10+I,Y0+10+J),1,B
IF P=1 THEN PAINT(XO+5+I,Y0+5+J),2,1
NEXT I
NEXT J
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,0,0
DATA 1,1,1,1,1,1,1,0,1,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,0,1,0,0,0,0,0,1
DATA 1,0,0,1,0,0,1,0,1,1,1,1,1,1,1
DATA 1,1,1,0,1,1,1,0,1,0,0,1,0,0,1
DATA 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1
DATA 1,1,1,0,1,1,1,0,1,1,1,0,1,1,1
DATA 1,1,1,1,1,1,1,0,1,1,1,0,1,1,1
DATA 1,0,1,1,1,0,1,0,1,1,1,1,1,1,1
DATA 0,1,0,0,0,1,0,0,1,1,1,1,1,1,1
DATA 0,0,1,1,1,0,0,0,1,1,0,0,0,1,1
DATA 0,0,0,0,0,0,0,0,1,0,0,1,0,0,1
END
Вариант 1.
Закрашенный квадрат на рисунке соответствует высвечиваемой точке, пустой квадрат точке, которая не высвечивается.
В строках программы с оператором DATA храниться информация о каждой точке рисунка, шестнадцати строкам рисунка соответствуют шестнадцать операторов DATA , в каждом из которых содержится шестнадцать чисел, характеризующих цвет соответствующей точки (1- точка светится, 0-точка не светится). В цикле происходит считывание информации о каждой точке и вывод светящейся точки на экран.
Вариант 2.
Изображение выводится на экран в виде закрашенных квадратов.
Закрепление нового материала.
Составить программу по нижеследующему шаблону.
[pic] [pic] [pic]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[pic]
Домашнее задание.
Составить программу в соответствии со своим вариантом, используя структуру вложенных циклов и операторы графики.
[pic] [pic] [pic] Вариант 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[pic]
[pic] [pic] [pic] Вариант 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[pic]
7.Подведение итогов.
Итак:
вложенные циклы – это цикл в цикле;
внутренний цикл чаще меняет значение своих параметров;
на каждое изменение параметров внешнего цикла полностью изменяется внутренний цикл, начиная с начального значения.