Похожие презентации:
Алгоритмы и программирование
1. Алгоритмы и программирование
1Алгоритмы и
программирование
§ 40. Компьютерная графика
§ 41. Графические примитивы
§ 42. Вспомогательные алгоритмы
§ 43. Применение циклов
§ 44. Анимация
§ 45. Управление с помощью
клавиатуры
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
2. Алгоритмы и программирование
2Алгоритмы и
программирование
§ 40. Компьютерная графика
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
3. Графический режим монитора
Алгоритмы и программирование, 7 класс3
Графический режим монитора
Холст – это прямоугольная область экрана,
доступная для рисования.
O
(0,0)
X
y
x
A(x,y)
! Холст – это растровый
рисунок!
Y
? Почему сверху вниз?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
4. Исполнитель Рисователь
Алгоритмы и программирование, 7 класс4
Исполнитель Рисователь
Задача – нарисовать что-то на холсте не с
помощью мыши, а управляя исполнителем.
? Как управлять?
Какие команды умеет
выполнять Рисователь?
Первая программа:
программа
(алгоритм)
начало
использовать Рисователь
алг Холст
аргументы
нач
лист
новый лист(500,
400, белый)
кон
конец
К.Ю. Поляков, Е.А. Ерёмин, 2022
команда
Рисователя
http://kpolyakov.spb.ru
5. Команда «новый лист»
Алгоритмы и программирование, 7 класс5
Команда «новый лист»
использовать Рисователь
алг Холст
нач
новый лист(500, 400, белый)
кон
ширина
высота
цвет
белый, чёрный,
серый, фиолетовый,
синий, голубой,
зелёный, жёлтый,
оранжевый, красный
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
6. Управление пикселями
Алгоритмы и программирование, 7 класс6
Управление пикселями
? Что значит «управлять пикселем»?
аргументы (данные
для работы)
пиксель(10, 20, синий)
x
y
цвет
(x,y)
? Как рисовать отрезок?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
7. Отрезок
Алгоритмы и программирование, 7 класс7
Отрезок
O
10
X
(10,20)
Y
15
(15,20)
20
пиксель(10, 20, синий)
пиксель(11, 20, синий)
пиксель(12, 20, синий)
Как сократить?
?
пиксель(13, 20, синий)
пиксель(14, 20, синий)
пиксель(15, 20, синий)
пиксель(X, 20, синий)
для X от 10 до 15
X – переменная (изменяемая величина)
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
8. Отрезок
Алгоритмы и программирование, 7 класс8
Отрезок
Цикл – это многократное выполнение
одинаковых действий.
X – целая
величина
начало
цикла
конец
цикла
присвоить X
цел X
значение 10
тело
X:=10
цикла
нц пока X <= 15
пиксель(X, 20, синий)
X:= X + 1
присвоить X
кц
значение X+1
10 → 11 → 12 → 13 → …
? При каком X остановится цикл?
К.Ю. Поляков, Е.А. Ерёмин, 2022
16
http://kpolyakov.spb.ru
9. Когда остановится цикл?
Алгоритмы и программирование, 7 класс9
Когда остановится цикл?
выполняется до тех пор,
пока условие не станет
ложным
цел X
X:=10
нц пока X <= 15
пиксель(X, 20, синий)
X:= X + 1
кц
это цикл с
условием
? При каком X остановится цикл?
К.Ю. Поляков, Е.А. Ерёмин, 2022
16
http://kpolyakov.spb.ru
10. Ещё один цикл
Алгоритмы и программирование, 7 класс10
Ещё один цикл
цикл по
цел X
переменной
нц для X от 10 до 15
пиксель(X, 20, синий)
блок-схема
кц
! X автоматически
увеличится на 1
после каждого
повторения!
начало
X:=10,15
тело цикла
конец
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
11. Что дальше?
Алгоритмы и программирование, 7 класс11
Что дальше?
? Как нарисовать вертикальный отрезок?
? … наклонный? в чём сложность?
? … окружность?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
12. Задачи
Алгоритмы и программирование, 7 класс12
Задачи
«A»: С помощью команды пиксель и циклов постройте
две параллельных стороны прямоугольника синего
цвета:
«B»: Достройте прямоугольник.
«С»: Закрасьте прямоугольник любым цветом.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
13. Алгоритмы и программирование
13Алгоритмы и
программирование
§ 41. Графические примитивы
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
14. Что такое графический примитив?
Алгоритмы и программирование, 7 класс14
Что такое графический примитив?
Графический примитив — это элемент рисунка,
который добавляется с помощью одной
команды.
• пиксель
• линия
• прямоугольник
• окружность
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
15. Линия (=отрезок)
Алгоритмы и программирование, 7 класс15
Линия (=отрезок)
линия(10, 20, 15, 20)
(x,y) первой
точки
(x,y) второй
точки
одна команда
заменяет цикл
цел X
нц X от 10 до 15
пиксель(X, 20, синий)
кц
? Какие вопросы возникли?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
16. Линия
Алгоритмы и программирование, 7 класс16
Линия
толщина
линии (px)
цвет
цвет сохраняется,
пока не сменят
перо(1, синий)
линия(10, 20, 15, 20)
линия(15, 20, 15, 30)
линия(15, 30, 10, 30)
линия(10, 30, 10, 20)
? Какого цвета остальные
? Что это?
(10,20)
10
линии?
5
(10,30)
К.Ю. Поляков, Е.А. Ерёмин, 2022
(15,20)
(15,30)
http://kpolyakov.spb.ru
17. Прямоугольник
Алгоритмы и программирование, 7 класс17
Прямоугольник
кисть(прозрачный)
только рамка
перо(1, синий)
цвет заливки
кисть(красный)
прямоугольник(20, 10, 40, 30)
(20,10)
(x,y) левого
верхнего угла
(40,10)
20
(20,30)
20
К.Ю. Поляков, Е.А. Ерёмин, 2022
(40,30)
(x,y) правого
нижнего угла
? Координаты
остальных углов?
размеры?
http://kpolyakov.spb.ru
18. Окружность
Алгоритмы и программирование, 7 класс18
Окружность
? Какие данные нужны?
перо(1, синий)
кисть(красный)
окружность(50, 30, 20)
(x,y) центра
К.Ю. Поляков, Е.А. Ерёмин, 2022
20
(50,30)
радиус
http://kpolyakov.spb.ru
19. Ломаная
Алгоритмы и программирование, 7 класс19
Ломаная
? Из каких примитивов состоит?
линия(20, 30, 30, 10)
линия(30, 10, 40, 30)
линия(40, 30, 20, 30)
или так
в точку(20, 30)
линия в точку(30, 10)
линия в точку(40, 30)
линия в точку(20, 30)
К.Ю. Поляков, Е.А. Ерёмин, 2022
(30,10)
(20,30)
(40,30)
? Что лучше?
http://kpolyakov.spb.ru
20. Заливка области
Алгоритмы и программирование, 7 класс20
Заливка области
кисть(оранжевый)
залить(50, 60)
(50,60)
• можно начать с любой точки
внутри области
• заливаются все соседние
пиксели одного цвета
• заливка прекращается на
границе другого цвета
? Если линия не замкнута?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
21. Пример
Алгоритмы и программирование, 7 класс21
Пример
O
20 30 40
70
30
100 110 120
X
? Из каких фигур?
? В каком порядке
рисовать?
80
? Координаты углов
прямоугольников?
130
Y
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
22. Пример
Алгоритмы и программирование, 7 класс22
Пример
алг Беседка
нач
новый лист(200, 200, белый)
| 1
перо(1, черный)
| 2
кисть(серый)
| 3
прямоугольник(30, 80, 40, 130)
| 4
прямоугольник(100, 80, 110, 130) | 5
в точку(20, 80)
| 6
линия в точку(70, 30)
| 7
линия в точку(120, 80)
| 8
линия в точку(20, 80)
| 9
кисть(синий)
| 10
Можно переставить?
залить(70, 70)
| 11
кисть(красный)
| 12
окружность(70, 30, 10)
| 13
кон
?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
23. Задачи
Алгоритмы и программирование, 7 класс23
Задачи
«A»: Постройте изображение домика:
«B»: Постройте любой из рисунков:
«С»: Постройте рисунок:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
24. Задачи
Алгоритмы и программирование, 7 класс24
Задачи
«D»: Постройте любую из фигур:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
25. Алгоритмы и программирование
25Алгоритмы и
программирование
§ 42. Вспомогательные
алгоритмы
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
26. Зачем это нужно?
Алгоритмы и программирование, 7 класс26
Зачем это нужно?
Задача:
? Можно ли решить
известными методами?
? Что особенного?
Особенность: три похожие фигуры
! Идея: научить Рисователя рисовать такие
треугольники!
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
27. Что такое вспомогательный алгоритм?
Алгоритмы и программирование, 7 класс27
Что такое вспомогательный алгоритм?
Вспомогательный алгоритм (процедура) —
это новая команда, которую мы «учим»
выполнять исполнителя.
? Координаты углов?
O
? Что общего?
Y
Что отличается?
общее: размеры, угол поворота
отличия: координаты, цвет
К.Ю. Поляков, Е.А. Ерёмин, 2022
X (x, y-60)
60
(x, y)
(x+100, y)
100
базовая точка
http://kpolyakov.spb.ru
28. Составляем вспомогательный алгоритм
Алгоритмы и программирование, 7 класс28
Составляем вспомогательный алгоритм
Параметры — это данные
необходимые для работы
процедуры.
(x, y-60)
60
(x, y)
100 (x+100, y)
алг треугольник (цел x, y, цвет ц)
нач
(x, y-60)
в точку(x, y)
(x+20, y-20)
линия в точку(x, y-60)
60
линия в точку(x+100, y)
линия в точку(x, y)
(x, y) 100 (x+100, y)
кисть(ц)
залить(x+20, y-20)
кон
Какую строку можно изменить?
?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
29. Основная программа
Алгоритмы и программирование, 7 класс29
Основная программа
(120,100)
60
(20,100) 100
? Какие данные нужны для
вызова процедуры?
(120,160)
? Что если запустить?
алг Трио
нач
треугольник(20, 100, синий)
треугольник(120, 100, зеленый)
треугольник(120, 160, красный)
кон
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
30. Полная программа
Алгоритмы и программирование, 7 класс30
Полная программа
использовать Рисователь
алг Трио
нач
треугольник(20, 100, синий)
треугольник(120, 100, зеленый)
треугольник(120, 160, красный)
кон
основная
программа
алг треугольник (цел x, y, цвет ц)
нач
вспомогательный
в точку(x, y)
алгоритм
линия в точку(x, y-60)
(процедура)
линия в точку(x+100, y)
линия в точку(x, y)
кисть(ц)
залить(x+20, y-20)
кон
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
31. Задачи
Алгоритмы и программирование, 7 класс31
Задачи
«A»: Постройте рисунок, используя процедуру:
«B»: Постройте рисунок, используя процедуру:
«С»: Постройте любой из рисунков, используя одну
процедуру:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
32. Задачи
Алгоритмы и программирование, 7 класс32
Задачи
«D»: Постройте любой из рисунков, используя одну
процедуру:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
33. Алгоритмы и программирование
33Алгоритмы и
программирование
§ 43. Применение циклов
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
34. Рисование с помощью циклов
Алгоритмы и программирование, 7 класс34
Рисование с помощью циклов
Задача:
O
20
40
100
X
20
Y
x
окружность( x , 20, 5)
окружность( 20
20, 20, 10)
окружность( 40
40, 20, 10)
окружность( 60
60, 20, 10)
шаг изменения
окружность( 80
80, 20, 10)
переменной цикла
100 20, 10)
окружность(100,
цел x
нц для x от 20 до 100 шаг 20
окружность(x, 20, 5)
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
35. Рисование с помощью циклов
Алгоритмы и программирование, 7 класс35
Рисование с помощью циклов
Задача: O
y
20
20
40
X
? Чем отличаются
40
ряды?
60
Y
Ряд(20)
Ряд(40)
Ряд(60)
цел y
нц для y от 20 до 60 шаг 20
Ряд(y)
кц
! Нужно добавить процедуру Ряд!
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
36. Рисование с помощью циклов
Алгоритмы и программирование, 7 класс36
Рисование с помощью циклов
использовать Рисователь
алг Круги
нач
цел y
нц для y от 20 до 60 шаг 20
Ряд(y)
кц
кон
алг Ряд( цел y )
нач
цел x
нц для x от 20 до 100 шаг 20
окружность( x, y, 5 )
кц
кон
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
37. Использование процедур
Алгоритмы и программирование, 7 класс37
Использование процедур
Задача:
O
20 30 40
10
30
X
? Из каких фигур
состоит?
(x+10,? y-20)
(x, y)
?
(x+20,
y)
базовая точка
(x+10,
y+20)
?
50
Y
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
38. Процедура Ромб
Алгоритмы и программирование, 7 класс38
Процедура Ромб
(x+10, y-20)
(x, y)
(x+20, y)
(x+10, y+20)
алг Ромб(цел x, y)
нач
в точку(x, y)
линия в точку(x+10, y-20)
линия в точку(x+20, y)
линия в точку(x+10, y+20)
линия в точку(x, y)
кон
? Зачем 2 параметра (y не изменяется)?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
39. Вызов процедуры в цикле
Алгоритмы и программирование, 7 класс39
Вызов процедуры в цикле
O
20 30 40
X
10
30
50
Y
Ромб(20, 30)
Ромб(30, 30)
Ромб(40, 30)
Ромб(50, 30)
Ромб(60, 30)
К.Ю. Поляков, Е.А. Ерёмин, 2022
цел x
нц для x от 20 до 60 шаг 10
Ромб(x, 30)
кц
http://kpolyakov.spb.ru
40. Задачи
Алгоритмы и программирование, 7 класс40
Задачи
«A»: Постройте узор, используя процедуру и цикл:
«B»: Постройте узор, используя процедуру и цикл:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
41. Задачи
Алгоритмы и программирование, 7 класс41
Задачи
«C»: Постройте любой узор, используя процедуру и цикл:
«D»: Постройте любой узор, используя процедуру и цикл:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
42. Штриховка
Алгоритмы и программирование, 7 класс42
Штриховка
Задача:
O
x1
x2 X
N полос
y1
y2
Y
? Как найти h?
x2 x1
h
N
h
цел h
h:= div(x2-x1, N)
цел x1=100, x2=300
деление нацело
цел y1=100, y2=200
кисть(серый)
прямоугольник(x1, y1, x2, y2)
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
43. Штриховка
Алгоритмы и программирование, 7 класс43
Штриховка
Задача:
O
x1 x1+h
x2-h x2 X
N полос
цел x
нц для x от x1+h до x2-h шаг h
линия(x, y1, x, y2)
кц
y1
y2
Y
h
x
x
x1+h,
линия(x1+h,
y1, x1+h,
y2)
x1+2*h, y1, x1+2*h, y2)
линия(x1+2*h,
...
...
...
x2-h,
линия(x2-h,
y1, x2-h,
y2)
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
44. Задачи
Алгоритмы и программирование, 7 класс44
Задачи
«A»: Постройте рисунок, число линий храните в
переменной N:
«B»: Постройте любой рисунок, число линий храните в
переменной N:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
45. Задачи
Алгоритмы и программирование, 7 класс45
Задачи
«C»: Постройте любой рисунок, число линий храните в
переменной N:
«D»: Постройте любой рисунок, число линий храните в
переменной N:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
46. Алгоритмы и программирование
46Алгоритмы и
программирование
§ 44. Анимация
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
47. Как сделать анимацию?
Алгоритмы и программирование, 7 класс47
Как сделать анимацию?
Анимация — это быстрая смена изображений
(«кадров») на экране.
а)
б)
? Насколько быстрая?
К.Ю. Поляков, Е.А. Ерёмин, 2022
в)
г)
≥ 16 кадров/c
http://kpolyakov.spb.ru
48. Перемещение шарика на фоне
Алгоритмы и программирование, 7 класс48
Перемещение шарика на фоне
Где-то сохранить:
выводим тут
• запомнить фон под
шариком
• нарисовать шарик
Переместить:
• восстановить фон под шариком (стереть)
• изменить координаты
• запомнить фон под новым местом
• нарисовать шарик
не нужно
запоминать!
? Если фон одноцветный?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
49. Начало программы
Алгоритмы и программирование, 7 класс49
Начало программы
200
200
использовать Рисователь
алг Движение
нач
новый лист(200, 200, синий)
перо(1, прозрачный)
шарик без
...
контура!
кон
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
50. Новая команда
Алгоритмы и программирование, 7 класс50
Новая команда
параметры
алг Шарик(цел x, y, цвет ц)
нач
цел R=10
Что такое 10?
кисть(ц)
окружность(x, y, R)
кон
показываем!
?
Шарик(20, 100, желтый)
Шарик(20, 100, синий)
? В чём отличие?
стираем!
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
51. Основной цикл
Алгоритмы и программирование, 7 класс51
Основной цикл
?
O 10
(10, 100)
? X
190
(190, 100)
100
Y
200
Начальное положение:
цел x=10, y=100
Цикл:
нц пока x < 190
... | двигаем шарик
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
? Когда закончится?
http://kpolyakov.spb.ru
52. Как двигать шарик?
Алгоритмы и программирование, 7 класс52
Как двигать шарик?
нц пока x < 190
Шарик(x, y, жёлтый)
Шарик(x, y, синий)
x:= x + 2
кц
| рисуем шарик
| стираем
| перемещаем
? Что плохо?
нц пока x < 190
Шарик(x, y, жёлтый)
ждать(20)
Шарик(x, y, синий)
x:= x + 2
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
| рисуем шарик
| смотрим 20 мс
| стираем
| перемещаем
http://kpolyakov.spb.ru
53. В чём проблема?
Алгоритмы и программирование, 7 класс53
В чём проблема?
нц пока x < 190
Шарик(x, y, жёлтый)
Шарик(x, y, синий)
ждать(20)
x:= x + 2
кц
нц пока x < 190
Шарик(x, y, жёлтый)
ждать(20)
x:= x + 2
Шарик(x, y, синий)
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
почти не
видно!
стирает в другом
месте!
http://kpolyakov.spb.ru
54. Задачи
Алгоритмы и программирование, 7 класс54
Задачи
«A»: Постройте анимацию, при которой шарик движется
справа налево:
«B»: Постройте анимацию, при которой два шарика
движутся в противоположные стороны:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
55. Задачи
Алгоритмы и программирование, 7 класс55
Задачи
«C»: Постройте анимацию, при которой по холсту
движутся два шарика разного размера с разными
скоростями, один – справа налево, второй – снизу
вверх:
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
56. Задачи
Алгоритмы и программирование, 7 класс56
Задачи
«D»: Постройте анимацию, при которой по холсту
движутся два шарика разного размера с разными
скоростями, один – справа налево, второй – снизу
вверх, причём при столкновении с краем холста
шарики должны отскакивать от него и двигаться
далее в противоположном направлении.
Используйте одну процедуру.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
57. Алгоритмы и программирование
57Алгоритмы и
программирование
§ 45. Управление с помощью
клавиатуры
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
58. Команды для работы с клавиатурой
Алгоритмы и программирование, 7 класс58
Команды для работы с клавиатурой
Определить, нажата ли клавиша:
да/нет
! Это условный
оператор!
если сигнал клав то
| клавиша нажата, что-то сделать
все
Определить, какая клавиша нажата:
цел с
ждать, если не нажата
с:= код клав
если с = КЛ_ВВЕРХ то
константы:
| передвинуть объект вверх
КЛ_ВВЕРХ
все
КЛ_ВНИЗ
символьное имя
КЛ_ВПРАВО
КЛ_ВЛЕВО
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
59. Основной цикл
Алгоритмы и программирование, 7 класс59
Основной цикл
всегда верно!
нц пока да
Шарик(x, y, жёлтый)
с:= код клав
Шарик(x,
y, синий)
Шарик(x,
y, синий)
с:=
код клав
| переместить шарик
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
бесконечный
цикл
? Что плохо?
http://kpolyakov.spb.ru
60. Вся программа
Алгоритмы и программирование, 7 класс60
Вся программа
использовать Рисователь
алг Управление клавишами
нач
новый лист(200, 200, синий)
перо(1, прозрачный)
цел x=100, y=100, с
Чего не хватает?
нц пока да
Шарик(x, y, жёлтый)
с:= код клав
Шарик(x, y, синий)
если с=КЛ_ВЛЕВО то x:=x–5 все
если с=КЛ_ВПРАВО то x:=x+5 все
если с=КЛ_ВВЕРХ то y:=y-5 все
если с=КЛ_ВНИЗ
то y:=y+5 все
кц
кон
?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
61. Задачи
Алгоритмы и программирование, 7 класс61
Задачи
«A»: Постройте программу, в которой шарик управляется
клавишами-стрелками. В начале шарик находится в
правом нижнем углу холста. Он может двигаться
только вверх и влево.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
62. Задачи
Алгоритмы и программирование, 7 класс62
Задачи
«B»: Постройте программу, в которой шарик управляется
клавишами-стрелками. В начале шарик находится в
центре холста. Он может двигаться в любом
направлении, но не может выйти за пределы
холста.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
63. Задачи
Алгоритмы и программирование, 7 класс63
Задачи
«C»: Постройте программу, в которой два шарика
управляются клавишами-стрелками. Они могут
двигаться в любом направлении, но не может выйти
за пределы холста. Клавиши управления для
второго шарика выберите самостоятельно.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
64. Управление по требованию
Алгоритмы и программирование, 7 класс64
Управление по требованию
События на экране развиваются и без действий
игрока, но он может вмешаться.
нц пока да
| если нажата клавиша, то
|
изменить направление движения
| нарисовать шарик
работает и
| ждать 20 мс
без игрока!
| стереть шарик
| переместить шарик
кц
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
65. Перемещение шарика
Алгоритмы и программирование, 7 класс65
Перемещение шарика
?
нц пока да
Как изменить направление?
...
| переместить шарик
кц
сдвиг по x
x:= x + dx
сдвиг по y
y:= y + dy
dx
0
5
0
-5
0
5
К.Ю. Поляков, Е.А. Ерёмин, 2022
dy
0
0
5
0
-5
-5
направление
на месте
http://kpolyakov.spb.ru
66. Обработка нажатия клавиши
Алгоритмы и программирование, 7 класс66
Обработка нажатия клавиши
нц пока да
| если нажата клавиша, то
|
изменить
|
изменить направление
направление движения
движения
...
если нажата какаякц
нибудь клавиша
если сигнал клав то
с:= код клав
|
изменить
направление
движения
если
с=КЛ_ВЛЕВО
то dx:=-5;
dy:=0 все
все
если с=КЛ_ВПРАВО то dx:=5; dy:=0 все
...
если с=КЛ_ПРОБЕЛ
то dx:=0;
dy:=0 все
Как изменить
направление?
все
?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
67. Обработка нажатия клавиши
Алгоритмы и программирование, 7 класс67
Обработка нажатия клавиши
нц пока да
| если нажата клавиша, то
|
изменить
|
изменить направление
направление движения
движения
...
если нажата какаякц
нибудь клавиша
если сигнал клав то
с:= код клав
|
изменить
направление
движения
если
с=КЛ_ВЛЕВО
то dx:=-5;
dy:=0 все
все
если с=КЛ_ВПРАВО то dx:=5; dy:=0 все
...
если с=КЛ_ПРОБЕЛ
то dx:=0;
dy:=0 все
Как изменить
направление?
все
?
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
68. Задачи
Алгоритмы и программирование, 7 класс68
Задачи
«A»: Постройте программу, в которой шарик постоянно
движется, его направление движения изменяется с
помощью клавиш-стрелок. Нажатие на клавишу
«пробел» останавливает шарик. Размер холста 500
на 500 пикселей.
«B»: Дополните предыдущую программу так, чтобы
шарик отскакивал от стенок холста при столкновении
с ними.
«C»: Дополните предыдущую программу так, чтобы
можно было менять скорость движения шарика.
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
69. Конец фильма
Алгоритмы и программирование, 7 класс69
Конец фильма
ПОЛЯКОВ Константин Юрьевич
д.т.н., учитель информатики
ГБОУ СОШ № 163, г. Санкт-Петербург
[email protected]
ЕРЕМИН Евгений Александрович
к.ф.-м.н., доцент кафедры мультимедийной
дидактики и ИТО ПГГПУ, г. Пермь
[email protected]
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru
70. Источники иллюстраций
Алгоритмы и программирование, 7 класс70
Источники иллюстраций
1.
авторские материалы
К.Ю. Поляков, Е.А. Ерёмин, 2022
http://kpolyakov.spb.ru