Приклади побудови графічних зображень
Приклад 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 Все права принадлежат авторам размещенных материалов.
|