Здавалка
Главная | Обратная связь

Приклади побудови графічних зображень



Приклад 1.Вивести в центрі екрану коло з радіусом 100, зафарбоване в жовтий колір.

Блок-схема програми:

Текст програми:

Program PR1;

Uses Graph,Crt;

Var grDriver: integer;

grMode: integer;

grPath: string;

Begin

grDriver:=Detect;

grPath:='C:/bp/bgi';

InitGraph(grDriver,grMode,grPath);{ініціалізація графічного режиму}

SetFillStyle(SolidFill,Yellow);{суцільне заповнення області жовтим кольором}

SetColor(Yellow);{колір ліній - жовтий}

PieSlice(GetMaxX div 2+1,GetMaxY div 2+1,0,360,100);{коло}

readln;

CloseGraph;{вихід з графічного режиму}

Readln

End.

Приклад 2.Вивести на екран графік та таблицю значень функції .

Текст програми:

Program PR2

Uses Graph,Crt;

Const xp=-10;{початкове значення аргумента x}

xk=10;{кінцеве значення аргумента x}

dx=1;{крок}

Var grDriver:integer;

grMode:integer;

grPath,k,l,s,st:string;

centrX,CY,centrY,mx,my,px,py,p,z,j:integer;

y,x:real;

Begin

grDriver:=Detect;

grPath:='C:/bp/bgi';

InitGraph(grDriver,grMode,grPath);

centrX:=GetMaxX div 2+1;{центр екрану по осі абсцис}

centrY:=GetMaxY div 2 +1;{центр екрану по осі ординат}

Line (centrX,50,centrX,450);

Line(50,centrY,GetMaxX-50,centrY);

OutTextXY(20,1,'x');

OutTextXY(80,1,'y');

Line(0,10,120,10);

Line(50,0,50,225);

Line(0,0,0,225);

Line(0,0,120,0);

Line(120,0,120,225);

Line(0,225,120,225);

Line(centrX,50,centrX+6,60);

Line(centrX,50,centrX-6,60);

Line(590,CentrY,580,CentrY+7);

Line(590,CentrY,580,CentrY-7);

OutTextXY(CentrX+10,50,'y');

OutTextXY(580,CentrY-15,'x');

mx:=20;{множник координат точок графіка по осі абсцис}

my:=10;{множник координат точок графіка по осі ординат}

x:=xp;

z:=-10;{число по осі абсцис, яке далі будемо виводити на екран}

j:=-1;{число по осі ординат, яке далі будемо виводити на екран}

CY:=centrY;

While x<=xk do

Begin

y:=-sqr(x)/5;{задана функція}

px:=centrX+round(x*mx);{координати точки графіку по осі абсцис}

py:=centrY-round(y*my);{координати точки графіку по осі ординат}

if x+1<=xk then

Line(px,py,centrX+round((x+dx)*mx),centrY-round(- sqr(x+dx)/5*my));

PutPixel(px,240,red);{вимальовує червоні точки графіку по осі абсцис}

PutPixel(px,py,red);{вимальовує червоні точки графіку по осі ординат}

Str(z,l);{перетворення числа z у символ l }

TextXY(px-7,230,l);{виведення на екран числа z}

Str(y:3:1,s);

OutTextXY(70,15+p,s);

OutTextXY(15,15+p,l);

z:=z+dx;

p:=p+10;

x:=x+dx;

If j>=-20 then

Begin

CY:=CY+my;

Str(j,st);

OutTextXY(centrX,CY-3,st);

PutPixel(centrX,CY,red);

j:=j-1;

end;

end;

Readln

End.

readln;

CloseGraph;

End.

Результати виконання програми:

 

 

Приклад 3.Вивести на екран задану фігуру та визначити площу її бічної поверхні.

Текст програми:

Program PR3

Uses Graph,Crt;

Var grDriver:integer;

grMode: integer;

k,s: integer;{додаткові доданки}

a,b:integer;{довжина ребра паралелепіпеда та висота піраміди}

grPath:string;

z:real;{площа бічної поверхні фігури}

bik,zad:array[1..8] of integer;{масив координат точок правої бічної та задньої граней}

Begin

clrscr;

write(' а=');

readln(a);

write('b=');

readln(b);

z:=4*(sqr(a)+sqr(b)*sqrt(3));

writeln('Площа бічної поверхні фігури =',z:5:2,' (кв. од.)');

readln;

grDriver:=Detect;

grPath:='C:/bp/bgi';

k:=a*20;

s:=b*20;

InitGraph(grDriver,grMode,grPath);

Rectangle(200,200,200+k,200+k);

bik[1]:=200+k;

bik[2]:=200;

bik[3]:=200+k+k div 2;

bik[4]:=200-k div 2;

bik[5]:=200+k+k div 2;

bik[6]:=200+k-k div 2;

bik[7]:=200+k;

bik[8]:=200+k;

DrawPoly(4,bik);{права бічна грань паралелепіпеда}

SetLineStyle(DashedLn,1,NormWidth);

zad[1]:=200+k+k div 2;

zad[2]:=200-k div 2;

zad[3]:=200+k div 2;

zad[4]:=200-k div 2;

zad[5]:=200+k div 2;

zad[6]:=200+k-k div 2;

zad[7]:=200+k+k div 2;

zad[8]:=200+k-k div 2;

DrawPoly(4,zad);{задня грань паралелепіпеда}

Line(200+k div 2,200+k-k div 2,200,200+k);

Line(200,200,200+k+k div 2,200-k div 2);

Line(200+k div 2,200-k div 2,200+k,200);

Line(200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k div 2,200-k div 2,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

SetLineStyle(SolidLn,1,NormWidth);

Line(200,200,200+k div 2,200-k div 2);

Line(200,200,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k,200,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

Line(200+k+k div 2,200-k div 2,200+k div 2+(k div 2)div 2,200-(k div 2)div 2+1-s);

SetColor(green);

OutTextXY(200,10,'Вигляд фігури');

OutTextXY(200+k div 2,200+k-10,'a');

OutTextXY(200+k div 2+(k div 2)div 2-5,200-s+(k div 2)div 2,'b');

readln;

CloseGraph;{вихід з графічного режиму}

readln;

End.

Результати виконання програми:

a=5

b=4

Площа бічної поверхні фігури =210.85 (кв. од.)

Вигляд фігури

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.