Similar presentations:
Штриховка. Программирование на алгоритмическом языке
1. Штриховка
Программирование на алгоритмическом языке1
Штриховка
N линий (N=5)
(x1, y1)
x
y1
h
h
x2 x1
N 1
y2
(x2, y2)
прямоугольник (x1, y1, x2, y2)
x:= x1 + h
линия(x, y1, x, y2)
цикл N раз
x:= x + h
линия(x, y1, x, y2)
x:= x + h
...
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
2. Штриховка (программа)
Программирование на алгоритмическом языке2
Штриховка (программа)
(x1, y1)
?
N
использовать Рисователь
алг Штриховка
нач
цел N = 5 | число линий
цел x1 = 100, x2 = 300
цел y1 = 100, y2 = 200
вещ h, x
h (x2, y2)
h:=(x2 - x1)/(N + 1)
прямоугольник(x1, y1, x2, y2)
x:= x1 + h
нц N раз
линия(int(x), y1, int(x), y2)
Почему?
x:= x + h
кц
целая часть
кон
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
3. Штриховка
Программирование на алгоритмическом языке3
Штриховка
(x1, y1)
x1
x2 x1
hx
N 1
hx
hy
(x2, y2)
К. Поляков, 2010-2011
y2 y1
hy
N 1
(x, y)
x:= x1 + hx; y:= y1 + hy
линия(x1, int(y), int(x), int(y))
x:= x + hx; y:= y + hy
линия(x1, int(y), int(x), int(y))
x:= x + hx; y:= y + hy
цикл N раз
...
http://kpolyakov.narod.ru
4. Штриховка
Программирование на алгоритмическом языке4
Штриховка
(x1, y1)
hx
вещ hx, hy, x, y
hx:=(x2 - x1)/(N + 1)
hy:=(y2 - y1)/(N + 1)
в точку(x1, y1)
линия в точку(x1, y2)
hy линия в точку(x2, y2)
линия в точку(x1, y1)
x:= x1 + hx; y:= y1 + hy
нц N раз
линия(x1,int(y),int(x),int(y))
(x2, y2)
x:= x + hx
y:= y + hy
кц
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
5. Задания
Программирование на алгоритмическом языке5
Задания
«3»: Ввести с клавиатуры количество линий,
построить фигуру и выполнить штриховку:
«4»: Ввести с клавиатуры количество линий,
построить фигуру и выполнить штриховку:
или
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
6. Задания
Программирование на алгоритмическом языке6
Задания
«5»: Ввести с клавиатуры количество линий и
построить фигуру:
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
7. Программирование на алгоритмическом языке
7Программирование
на алгоритмическом
языке
Тема 6. Вспомогательные
алгоритмы
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
8. Задача
Программирование на алгоритмическом языке8
Задача
? Можно ли решить известными методами?
Особенность: три похожие фигуры.
общее: размеры, угол поворота
отличия: координаты, цвет
? Сколько координат надо задать?
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
9. С чего начать?
Программирование на алгоритмическом языке9
С чего начать?
• найти похожие действия (три фигуры)
• найти общее (размеры, форма, угол поворота) и
отличия (координаты, цвет)
цепочка символов
• отличия = параметры алгоритма (доп. данные)
(x, y-60)
60
(x, y)
100 (x+100, y)
К. Поляков, 2010-2011
использовать Рисователь
алг Тр (цел x, y, лит цвет)
нач
параметры
в точку(x, y)
линия в точку(x, y-60)
линия в точку(x+100, y)
линия в точку(x, y)
кисть(цвет)
залить(x+20, y-20)
кон
http://kpolyakov.narod.ru
10. Если запустить?
Программирование на алгоритмическом языке10
Если запустить?
(50,100)
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
11. Как использовать?
Программирование на алгоритмическом языке11
Как использовать?
60
(100,100)
100
вызовы
алгоритма
использовать Рисователь
алг Треугольники
нач
перо(1, "черный")
Тр(100, 100, "синий")
Тр(200, 100, "зеленый")
Тр(200, 160, "красный")
кон
основной
алгоритм
алг Тр(цел x, y, лит цвет)
нач
...
кон
вспомогательный
алгоритм
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
12. Вспомогательные алгоритмы
Программирование на алгоритмическом языке12
Вспомогательные алгоритмы
• расположены ниже основного
• в заголовке перечисляются формальные
параметры, они обозначаются именами
алг Тр(цел x, y, лит цвет)
• для каждого параметра указывают тип
• однотипные параметры перечисляются через запятую
• при вызове в скобках указывают фактические
параметры в том же порядке
Тр(200, 100, "зеленый")
x
К. Поляков, 2010-2011
y
цвет
http://kpolyakov.narod.ru
13. Задания
Программирование на алгоритмическом языке13
Задания
«3»: Используя одну процедуру, построить фигуру.
«4»: Используя одну процедуру, построить фигуру.
К. Поляков, 2010-2011
http://kpolyakov.narod.ru
14. Задания
Программирование на алгоритмическом языке14
Задания
«5»: Используя одну процедуру, построить фигуру.
К. Поляков, 2010-2011
http://kpolyakov.narod.ru