Скачиваний:
53
Добавлен:
10.12.2013
Размер:
2.91 Кб
Скачать
uses crt,graph;
var m,dr:integer;
err:integer;
x,y:real;
ch:char;
cw,x0,y0,xc,yc,t,k,xp,yp,xx,yy:integer;
a,b,c:real;
procedure help;
begin
Cleardevice; { ЋзЁбвЄ  нЄа ­  }
Setviewport(50,50,600,400,true); { ‡ ¤ ­ЁҐ ⥪г饣® ®Є­  }
Settextstyle(0,0,2); { “бв ­®ўЄ  бвЁ«п ⥪бв  }
Setbkcolor(1); { “бв ­®ўЄ  жўҐв  д®­  }
Setcolor(15); { “бв ­®ўЄ  жўҐв  Ё§®Ўа ¦Ґ­Ёп }
Outtextxy(1,1,'ESC - ‚л室 Ё§ Їа®Ја ¬¬л');
Outtextxy(1,60,'Q - “⮫饭ЁҐ «Ё­Ё© ў 3 а § ');
Outtextxy(1,100,'W - Ћ¤Ё­ а­ п в®«йЁ­  «Ё­Ё©');
Outtextxy(1,120,'‘’ђ…‹Љ€ - „ўЁ¦Ґ­ЁҐ ў');
Outtextxy(40,140,'ᮮ⢥вбвўгойго бв®а®­г');
Outtextxy(1,180,'„«п ўл室  Ё§ ®Є­  Ї®¬®йЁ');
Outtextxy(20,200,'­ ¦¬ЁвҐ «оЎго Є« ўЁиг');
Settextstyle(0,0,1); { “бв ­®ўЄ  бвЁ«п ⥪бв  }
Readkey;
Setviewport(0,0,getmaxx,getmaxy,false); { ‡ ¤ ­ЁҐ ⥪г饣® ®Є­  }
setbkcolor(0);
Cleardevice; { ЋзЁбвЄ  нЄа ­  }
end;
BEGIN
dr:=0;
initgraph(dr,m,'c:\bpaskal\bgi\');
err:=graphresult;
if err<>0 then begin
writeln('®иЁЎЄ  Ја дЁЄЁ:',grapherrormsg(err));
halt
end;
{ Ќ е®¤Ё¬ бҐаҐ¤Ё­г нЄа ­  }
x0:=getmaxx div 2;
y0:=getmaxy div 2;
{ ‡ ¤ Ґ¬ Є®®дЁжЁҐ­в 㢥«ЁзҐ­Ёп Ја дЁЄ  дг­ЄжЁЁ }
k:=25;
xx:=0;
yy:=0;
ch:=' ';
a:=1;
cw:=15;
while ch<>#13 do
begin
cleardevice;
outtextxy(1,40,'H ¦¬Ё ENTER ¤«п ўл室 ');
setcolor(cw);
if a<>0 then begin
{ ђЁб㥬 ®бЁ }
setcolor(15);
line(x0,0,x0,getmaxy);
line(0,y0,getmaxx,y0);
{ ђЁб㥬 а §«Ё­®ўЄг ®бҐ© }
t:=0;
repeat
t:=t+k;
line(x0+t,y0-2,x0+t,y0+2);
line(x0-t,y0-2,x0-t,y0+2);
line(x0-2,y0-t,x0+2,y0-t);
line(x0-2,y0+t,x0+2,y0+t)
until t>x0-k;
{ Џaа Ў®«  y=a*sqr(x)+b*x+c }
xc:=round((-b/(2*a))*k+x0);
yc:=round(y0-(-sqr(b)/(4*a)+c)*k);
moveto(xc+xx,yc+yy);
x:=round(-b/(2*a));
y:=round((-sqr(b)/(4*a)+c));
for t:=1 to x0 do begin
x:=x+1/k;
y:=a*sqr(x)+b*x+c;
setcolor(cw);
xp:=round(x*k+x0);
yp:=round(y0-y*k);
lineto(xp+xx,yp+yy)
end;
moveto(xc+xx,yc+yy); { аЁб㥬 «Ґўго Ї®«®ўЁ­г Їaа Ў®«л }
x:=round(-b/(2*a));
y:=round((-sqr(b)/(4*a)+c));
for t:=1 to x0 do begin
setcolor(cw);
x:=x-1/k;
y:=a*sqr(x)+b*x+c;
xp:=round(x*k+x0);
yp:=round(y0-y*k);
lineto(xp+xx,yp+yy)
end;
end
else a:=-0.00001;
ch:=readkey;
if ch=#0 then ch:=readkey;
case ch of
#72: c:=c+5/k;
#80: c:=c-5/k;
#75: begin {b:=sqrt(sqr(b)+2*a); c:=c+1/2}xx:=xx-1; end;
#77: begin {b:=sqrt(sqr(b)-2*a); c:=c-1/2}xx:=xx+1; end;
#60: a:=a+1/k;
#62: a:=a-1/k;
'1': cw:=1;
'2': cw:=2;
'3': cw:=3;
'4': cw:=4;
'5': cw:=5;
'6': cw:=6;
'7': cw:=7;
'8': cw:=8;
'9': cw:=9;
'0': cw:=10;
'a': cw:=11;
'b': cw:=12;
'c': cw:=13;
'd': cw:=14;
'e': cw:=15;
'q': setlinestyle(0,0,3);
'Q': setlinestyle(0,0,1);
#59: help
end;
outtextxy(1,60,'F1-Ї®¬®йм');
setviewport(0,0,getmaxx,getmaxy,true);
setcolor(cw);

end;
closegraph
END.
Соседние файлы в папке ЭВТ-1-Паскаль