- •1. Структура программы.
- •2. Раздел объявлений.
- •3. Раздел исполняемых операторов.
- •4. Решение вычислительных задач.
- •5. Структура графической программы.
- •6. Графические операторы.
- •7. Решение графических задач.
- •8. Блок операторов.
- •9. Оператор ветвления.
- •10. Решение задач на ветвления.
- •11. Оператор цикла с параметром.
- •12. Решение задач на цикл с параметром.
- •13. Двойные и тройные циклы.
- •14. Решение задач на двойные циклы.
- •15. Решение задач на циклы по окружности.
- •16. Использование генератора случайных чисел.
- •17. Операции над строками.
- •18. Решение задач на обработку строк.
- •19. Функции пользователя.
- •20. Построение графиков функций.
- •21. Решение задач на построение графиков функций.
- •22. Подпрограммы.
- •23. Решение задач на подпрограммы.
- •1. Написать программу для построения изображения:
- •2. Добавьте в вашу программу следующие элементы:
- •3. Дополнительно добавьте следующие элементы.
- •24. Задача «Звездный коврик».
- •25. Понятие массива.
- •26. Объявление массивов в программе.
- •27. Заполнение одномерных массивов данными.
- •28. Решение простых задач на массивы.
- •29. Решение задач средней сложности.
- •30. Сортировка элементов массива.
- •31. Решение задач на сортировку.
- •32. Заполнение двухмерных массивов данными
- •33. Решение задач на двухмерные массивы.
23. Решение задач на подпрограммы.
1. Написать программу для построения изображения:
Использовать подпрограммы для построения следующих элементов:
Треугольник.
Формальные параметры: x1,y1,x2,y2,x3,y3 –координаты вершин Cl – цвет линий Сf – цвет заливки Примечание: Центр треугольника находится так: XC=(x1+x2+x3)/3 YC=(y1+y2+y3)/3 |
Procedure Tr(x1,y1,x2,y2,x3,y3,cl,cf:Integer); Var xc,yc:Integer; Begin SetColor(cl); Line(x1,y1,x2,y2); Line(x2,y2,x3,y3); Line(x3,y3,x1,y1); xc:=Round((x1+x2+x3)/3); yc:=Round((y1+y2+y3)/3); SetfillStyle(1,cf); FloodFill(xc,yc,cl); End; |
Ёлка.
y4
y3
y2 h
y1
y
x1 x x2
w
Формальные параметры: x,y – координаты основания h – высота, w – ширина ck – цвет кроны cs – цвет ствола |
Procedure El(x,y,h,w,ck,cs:Integer); Var x1,x2,y1,y2,y3,y4:Integer; Begin x1:=x-Round(w/2); x2:=x+Round(w/2); y1:=y-Round(h/4); y2:=y-Round(h/2); y3:=y-Round(3*h/4); y4:=y-h; Tr(x1,y3,x,y4,x2,y3,ck,ck); Tr(x1,y2,x,y3,x2,y2,ck,ck); Tr(x1,y1,x,y2,x2,y1,ck,ck); SetFillStyle(1,cs); Bar(x-Round(w/10),y1,x+Round(w/10),y); End;
|
2. Добавьте в вашу программу следующие элементы:
Подпрограмма «Береза»
|
Procedure Ber(x,y,h,ck,cn:Integer); Var y1,y2,y3,y4,r2,r3,r4 : Integer; Begin y1:=Round(y-6*h/24); y2:=Round(y-10*h/24); r2:=Round(h/6); y3:=Round(y-17*h/24); r3:=Round(h/8); y4:=Round(y-22*h/24); r4:=Round(h/12); SetFillStyle(1,cn); Bar(x-Round(h/20),y,x+Round(h/20),y1); Setcolor(ck);SetFillStyle(1,ck); Circle(x,y2,r2);FloodFill(x,y2,ck); Circle(x,y3,r3);FloodFill(x,y3,ck); Circle(x,y4,r4);FloodFill(x,y4,ck); End;
|
|
Подпрограмма «Мухомор».
x-w/2 x-w/4 x x+w/4 x+w/2
y-h
y-7h/8
y-5h/8
h y-h/2
x,y y
w
Радиус белой точки = h/30
|
Эту процедуру вам нужно разработать самим
Procedure much(x,y,w,h,cs,cn:Integer); Var …….. Begin …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. …………………….. End;
|