1: 400 , , .
29
program sky;
uses crt,graph;
var k,gd,gm:integer;
begin gd:=detect;
initgraph (gd, gm, ' '); randomize;
for k:=l to 400 do
begin putpixel(random(640),random(480),random(15)+1); delay(10);
end;
setfillstyle(l,14); setcolor(14);
circle(550,80,30); floodfill(550,80,14);
repeat until keypressed; closegraph
end.
2. . . , . : kl, k2 - ; h - () .
30
program uzor;
uses crt, graph;
var gd,gm,errCode,i,kl,k2,h; integer;
begin
kl:=8; k2:=3; h:=110; gd:=Detect; InitGraph(gd,gm.'');
errCode:=GraphResult;
if errCode = grOk then begin
setcolor(green); *
for i:=l to (420 div kl) do
begin line(0,i*kl,640,i*k2+h); line(0,i*k2+h,640,i*kl);
end;
repeat until keypressed; CloseGraph;
end else writeln('errCode=',errCode)
end.
, , , .
3: 31 , 6 : , , , , .
31
program colon;
uses crt,graph;
const m:array[l..6] of real=(11500,2300,9700.5100,12400,8200);
name:array[I..6] of
string =('','','','','','');.
var gd,gm,k,n,s:integer; st:string[6];
begin
gd:=detect;
initgraph(gd,gm,' ');
setcolor(15);
setlinestyle(0,0,1);
line(60,400,620,400);
line(60,400,60,100);
settextstyle(0,0,1);
for k:=l to 12 do begin n:=1000*k; str(n.st);
outtextxy(10,400-20*k-4,st);
line(60,400-k*20,65,400-k*20)
end;
setcolor(14); settextstyle(0,0,2);
outtextxy(120,20, ' ()'); settextstyle(0,0,1);
for k:=l to 6 do begin setfillstyle(1,k+2);
bar(100+(k-l)*70,400,100+k*70,round(400-m[k]/1000*20));
outtextxy(100+(k-l)*70+4,450,name[k]);
end;
repeat until keypressed;
closegraph
end.
bar3d(xl,yl,x2,y2,d,top) , d. top - . top=true, , , . , .
. - , , . y=x*x*sin(l/x). [, b]. ( ) ( =0 , ). tl=(xl-x0)/(b-a) t2=(yl-y0)/(2m), Y .
|
|
[, b] [-0.1,0.1]. , (function f).
32
program grafik;
uses crt, graph;
var gd,gm, errCode: integer; a,b: real; n: integer;
function f(x:real):real;
begin if x<>0 then f:=x*x*sin(l/x);
end;
procedure grafun(xO,xl,yO,yl,n:word;a,b;real);
var h,m,x, tl,t2: real; i, u,v,xv,yv: word;
begin
h:=(b-a)/n; ( f(x)} m:=abs(f (a));
for i:=l to n do if m<abs(f(a+i*h)) then m:=abs(f(a+i*h));
tl:=(xl-x0)/(b-a);
t2:=(yl-y0)/(2*m); ( )
setfillstyle(l,15); bar(x0-5,y0-5,xl+5,yl+5);
xv:=round(x0-a*tl); yv:=round((yO+yl)/2);
setcolor(l); line(xv,y0,xv,yl);
line(xO,yv,xl.yv);
Moveto(xO,yv-round(f(a) *t2)); ( }
setcolor(3); ( ) for i:=l to n do begin x:=a+i*h; u:=x0+round((x-a)*tl);
v:=yv-round(f(x)*t2); lineto(u,v);
end;
end; ( } begin
clrscr; write (' a,b n: '); readln(a,b,n); gd^Detect;
InitGraph (gd,gm, ' ');
errCode:=GraphResult;
if errCode = grOk then begin
grafun(100,500,50,300,n,a,b);
grafun(550,620,10,100,200,-0.1,0.1);
repeat until keypressed; CloseGraph;
end else writeln("ezzCode=',errCode)
end.
, z=f(x,y), . z=f(x.y) . .
. . :
;
, cleardevice;
.
billiard, 5 , bar.
blou , , , .
. : .
33
program billiard;
uses crt,graph;
var ,y,dx,dy,gd,gm:integer; xl,yl,dxl,dyl:integer;
procedure blow(a,b:integer; var c,d:integer);
begin if (a<107) or (a>523) then c:=-c;
if (b<107) or (b>363) then d:=-d;
end;
begin
gd:=detect; initgraph(gd,gm,''); setcolor(14);
setlinestyle(0,0,1); rectangle(99,99,531,371);
setfillstyle(l,3); bar(100,100,530,370);
|
|
x:=320; y:=240; dx:=2; dy:2;
xl:=320; yl:=200; dxl:=-2; dyl:=-2;
repeat circle(x,y,5); setcolor(4); circle(xl,yl,5);
blow(x,y,dx,dy); blow(xl,yl,dxl,dyl); delay(10);
if (abs(x-xl)<=10) and (abs(y-yl)<=10) then begin
dx:dx; dy:=-dy; dxl:=-dxl; dyl:=-dyl; delay(300)
end;
setcolor(3); circle(,,5);
x:=x+dx; y:=y+dy;
setcolor(3); circle(xl,yl,5);
xl:=xl+dxl; yl:=yl+dyl; setcolor(14)
until keypressed;
closegraph
end.
, , . Vgamed , Vgalo - . : 0,1,... setvisualpage(ep). , .. . setactivepage(ep). . . , .. , .
helicopter . verti vert2 . , , .
. - (0,0) - , =250 b=130 - . '
u=x0+round(a*cosp), t=y0+round(b*sinp),
- , - .
34
program helicopter;
uses crt,graph;
const step=0.01;
var gd,gm,u,t,z,k,xO,yorc,ac,vi:integer; p,a,b:real;
procedure vertl(x,:integer);
begin
cleardevice; setcolor(14);
setlinestyle (0,0,1); setfillstyle(1,3);
line(x+12,y,x+36,y);line(x+24,y,x+24,y+8);
fillellipse(x+24,y+14,12,7); moveto(x+18,y+20);
lineto(x,y+20); lineto(x,y+14);
line(x+18.y+28,x+30,y+28); line(x+24,y+27,x+24,y+21);
end;
procedure vert2(x,:integer);
begin
cleardevice; setcolor(14);
setlinestyle(0.0,1); setfillstyle(1,3);
line(x+22,y,x+26,y); line(x+24,,x+24,y+8);
fillellipse(x+24,y+14,12,7); moveto(x+18,y+20);
lineto(x,y+20); lineto(x,y+14);
line(x-3,y+14,x+3,y+14); line(x+24,y+27,x+24,y+21);
line(x+18,y+28.x+30,y+28);
end;
begin
gd:=vga; gm:=vgamed; initgraph(gd,gm,' ');
x0:=getmaxx div 2; y0:=getmaxy div 2;
z:=l; p:=pi; a:=250; b:=130; ac:=0; vi:=l;
for k:=l to 800 do
begin u:=x0+round(a*cos()); t:=y0-round(b*sin(p));
setactivepage(ac); setvisualpage(vi);
if z=l then vertl(u,t) else vert2(u,t); z:=-z;
delay(50); p:=p+step; c:=ac; ac:=vi; vi:=c:
end; closegraph
end.
1. ?
2. Graph.
3. ?
4. , .
5. z=Sin(x)+Cos(y), .
6. .