Построение графиков в модуле ABCPascal
Программа
Используемая литература
605.00K
Категория: ПрограммированиеПрограммирование

Построение графиков в модуле ABCPascal

1. Построение графиков в модуле ABCPascal

учитель информатики и ИКТ
Пунгер Ирина Евгеньевна
ГБОУ школа 297 Пушкинского района
г. Санкт-Петербург

2. Программа

uses graphABC;
var
m,ww,wh,x0,y0,keox,keoy:integer;
procedure osi;
var
i: integer
s: string;
begin
setpencolor(rgb(100,100,100));
for i:=1 to keox do begin
line(x0+m*i,0,x0+m*i,wh);
line(x0-m*i,0,x0-m*i,wh);
end;
for i:=1 to keoy do begin
line(0,y0+m*i,ww,y0+m*i);
line(0,y0-m*i,ww,y0-m*i);
end;
m – цена деления; ww-ширина
плоскости; wh- высота плоскости;
x0,y0-начало координат; keox, keoy
кол-во делений ОХ и ОУ
кол-во повторений тела цикла
подписи делений
задаем цвет линии
рисуем вертикальные линии
(промежуточные линии сетки)
рисуем горизонтальные линии
(промежуточные линии сетки)

3.

setPencolor(rgb(0,0,0));
setpenwidth(3);
line(x0,0,x0,wh);
line(x0+3,15,x0,0);
line(x0-3,15,x0,0);
line(0,y0,ww,y0);
line(ww-15,y0+3,ww,y0);
line(ww-15,y0-3,ww,y0);
for i:=1 to keox do begin
s:=intToStr(i);
textOut(x0+m*i,y0+2,s);
textOut(x0-m*i,y0+2,'-'+s);
end;
for i:=1 to keoy do begin
s:=intToStr(i);
textOut(x0-14,y0-i*m,s);
textOut(x0-14,y0+i*m,'-'+s);
end;
end;
задаем цвет линии (черный)
задаем толщину осей координат
рисуем ось ОУ
рисуем стрелочки на оси ОУ
рисуем ось ОХ
рисуем стрелочки на оси ОХ
создаем подписи делений
преобразует целое число к строке
подписи коор-т полож. ось ОХ
подписи коор-т отриц. ось ОХ
преобразует целое число к строке
подписи коор-т полож. ось ОУ
подписи коор-т отриц. ось ОУ

4.

procedure sinus(a,b,c: integer);
var
x,y: real;
xscreen,yscreen: integer;
begin
x:=-keox;
while x<keox do begin
y:=a*sin(b*x)+c;
xscreen:=round(x0+x*m);
yscreen:=round(y0-y*m);
процедура для синуса
переменные х и у
коор-ты точки приближенной к
ближайшему целому
точка, с кот. начинаем стоить график
пока не дойдем до посл. правой точки
вычисление по формуле
возвращает результат округления до
ближайшего целого
putpixel(xscreen,yscreen,clred); строим точки (цвет красный)
x:=x+0.001;
изменяем х на 0.001
end;
end;

5.

procedure parabola(a,b,c: real);
var
x,y: real;
xscreen,yscreen: integer;
begin
x:=-keox;
while x<keox do begin
y:=a*x*x+b*x+c;
xscreen:=round(x0+x*m);
yscreen:=round(y0-y*m);
процедура для параболы
переменные х и у
коор-ты точки приближенной к
ближайшему целому
точка, с кот. начинаем стоить график
пока не дойдем до посл. правой точки
вычисление по формуле
возвращает результат округления до
ближайшего целого
putpixel(xscreen,yscreen,clblue); строим точки (цвет синий)
x:=x+0.001;
изменяем х на 0.001
end;
end;

6.

begin
m:=50;
ww:=800;
wh:=700;
x0:= ww div 2;
y0:= wh div 2;
keox:= ww div 2 div m;
keoy:=wh div 2 div m;
инициализация
задаем размер деления
ширина плоскости
высота плоскости
находим начало координат
находим количество точек, в которых
вычисляется значение функции
setwindowSIze(ww,wh);
osi;
задаем размер экрана
вызов процедуры (рисуем оси)
sinus(1,1,0);
(строим синус)
parabola(1/2,-1,-1);
end.
(строим параболу)

7. Используемая литература

Справка языка программирования ABCPascal
English     Русский Правила