Содержание
-
Вспомогательный алгоритм
-
Задача. Изобразить на экране еловый лес.
Как решить эту задачу? Вариант решения: Сделать описание одной «ёлки» в параметрической форме, и повторить это описание три раза для различных значений параметров. Для облегчения работы по написанию больших и сложных по объему программ существует прием называемый «Вспомогательный алгоритм»
-
План изображения 1 елки:
Верхняя часть Средняя часть Нижняя часть Комель
-
Схема основного («лес») и вспомогательного алгоритмов («ёлка»):
Алг елка(x,y,h) нач Верхняя часть Средняя часть Нижняя часть Комель кон Алг лес Нач Графический режим Елка(x1,y1,h1) Елка(x2,y2,h2) Елка(x3,y3,h3) Кон
-
Вспомогательный алгоритм -
Алгоритм, снабженный заголовком, который позволяет вызывать его из других программ. Основной алгоритм - Алгоритм, из тела которого вызывается вспомогательный алгоритм
-
Общий вид описания процедуры:
Procedure [(список формальных параметров: тип)]; Var : тип; Begin End; Заголовок процедуры
-
Общий вид программы:
Program ; Uses crt, graph; Var : тип; Procedure … Begin …….. End; Begin (список фактических параметров); (список фактических параметров); (список фактических параметров); End. Команды вызова процедуры
-
Формальные параметры – записываются в заголовке процедуры; Это переменные, которые получают значения при вызове процедуры. Фактические параметры – записываются в команде вызова процедуры; Это переменные или константы; передают значения в процедуру при исполнении команды вызова процедуры.
-
Глобальные переменные – переменные, описанные в главной программе и доступные всем процедурам. Локальные переменные – переменные, описанные в описательной части процедуры и доступные только этой процедуре.
-
Технология разработки графической программы
План изображения (схема). Погружение в графическую систему координат. Определение размеров изображения. Уточнение значений всех параметров для отрисовки элементов изображения. Запись графических команд с соответствующими параметрами.
-
h x y h/3 h/3 h 2*h/3 h/3
-
x y h h/3 h/3 h 2*h/3 h/3 1 2 3 4 5 6 7 8 9 10 11 12 x1=x; y1=y x2=x-h div 6; y2=y+h div 3; x3=x+h div 6; y3=y+h div 3; x4=x; y4= y+h div 3; x5= x- h div 3; y5=y+2*h div 3; x6=x+h div 3; y6=y+2*h div 3; x7= x-h div 6; y7=y+2*h div 3; x8=x+h div 6; y8=y+2*h div 3; x9=x-h div 2; y9=y+h; x10=x+h div 2; y10= y+h; X11= x-h div 14; y11=y+h; x12=x+h div 14; y12=y+h*15 div 14;
-
Программа:
program forest; uses crt,graph; {--------Описательная часть программы----------} var gd,gm:integer; procedure tree(x,y,h: integer); begin {=======верхняя часть} line(x,y,x-h div 6,y+h div 3); line(x,y,x+h div 6, y+h div 3); line(x-h div 6,y+h div 3,x+h div 6, y+h div 3); {======средняя часть} line(x,y+h div 3, x-h div 3, y+2*h div 3); line(x, y+h div 3,x+h div 3,y+2*h div 3); line( x-h div 3, y+2*h div 3,x+h div 3,y+2*h div 3);
-
{======нижняя часть} line(x-h div 6, y+2*h div 3,x-h div 2, y+h); line(x+h div 6, y+2*h div 3,x+h div 2, y+h); line(x-h div 2, y+h, x+h div 2, y+h); {======комель} setfillstyle(1,6); bar(x-h div 14,y+h+1,x+h div 14,y+h*15 div 14); {======закраска елок} setfillstyle(1,2); floodfill(x,y+3,15); floodfill(x,y+h div 3 +3,15); floodfill(x,y+2*h div 3 +3,15); end;
-
{--------основная часть программы-----------} begin gd:=detect; initgraph(gd,gm,''); setbkcolor(7); tree(150,170,80); tree(100,10,200); tree(300,250,200); tree(500,200,150); tree(400,100,80); readkey; closegraph; end.
-
Вопросы для повторения:
Что такое вспомогательный алгоритм? Как в Паскале называется вспомогательный алгоритм? Что называется основной программой? Какие параметры называются формальными и где они указываются? Какие параметры называются фактическими и где они указываются? Какие переменные называются локальными? Где они описываются? Какие переменные называются глобальными? Где они описываются?
-
Задание на практику:
Проверить программу на компьютере (ввести, отладить). Провести эксперимент по изменению значений фактических параметров и добавлением команд вызова процедур. Написать программу рисования на экране компьютера цветочной клумбы (улицы из нескольких домов и пр.)
Нет комментариев для данной презентации
Помогите другим пользователям — будьте первым, кто поделится своим мнением об этой презентации.