Изобразить график функции в координатных осях - Pascal ABC

Формулировка задачи:

Помогите, пожалуйста, изобразить это в паскале. Заранее спасибо!

Код к задаче: «Изобразить график функции в координатных осях - Pascal ABC»

textual
uses GraphABC;
var x0,y0,h,i,x,y:integer;
begin
h:=40;
setwindowsize(24*h,8*h);
centerwindow;
x0:=h+9*(windowwidth-2*h)div 21;
y0:=4*h;
line(h,y0,windowwidth-h,y0);
line(x0,h div 2,x0,windowheight-h);
line(x0,0,x0-h div 4,h div 2);
line(x0,0,x0+h div 4,h div 2);
line(x0-h div 4,h div 2,x0+h div 4,h div 2);
floodfill(x0,h div 2-2,clBlack);
setfontsize(12);
setfontstyle(fsBold);
textout(x0+25,0,'Y');
line(windowwidth-h div 2,y0,windowwidth-h,y0+h div 4);
line(windowwidth-h div 2,y0,windowwidth-h,y0-h div 4);
line(windowwidth-h,y0+h div 4,windowwidth-h,y0-h div 4);
floodfill(windowwidth-h+2,y0,clBlack);
textout(windowwidth-h,y0-30,'X');
textout(x0+5,y0+10,'0');
for i:=1 to 12 do
 begin
  line(x0+h*i,y0-3,x0+h*i,y0+3);
  if i mod 3=0 then textout(x0+h*i,y0+10,inttostr(i));
  if i<10 then
   begin
    line(x0-h*i,y0-3,x0-h*i,y0+3);
    if i mod 3=0 then textout(x0-h*i,y0+10,inttostr(-i));
   end;
  if i<4 then 
   begin
    line(x0-3,y0-i*h,x0+3,y0-i*h);
    line(x0-3,y0+i*h,x0+3,y0+i*h);
    if i=3 then
     begin
      textout(x0-20,y0-i*h-10,inttostr(i));
      textout(x0-25,y0+i*h-10,inttostr(-i))
     end; 
   end;  
 end; 
setpenwidth(2);
line(x0+11*h,y0-2*h,x0+6*h,y0+3*h);
line(x0+6*h,y0+3*h,x0+3*h,y0-3*h);
arc(x0,y0-3*h,3*h,180,360);
line(x0-3*h,y0-3*h,x0-7*h,y0-3*h);
x:=x0+round(3*h*cos(-pi/4));
y:=y0-3*h-round(3*h*sin(-pi/4));
line(x0,y0-3*h,x-15,y-15);
line(x,y,x-10,y-20);
line(x,y,x-20,y-10);
line(x-10,y-20,x-20,y-10);
floodfill(x-5,y-5,clBlack);
textout(x0+2*h,y0-2*h,'R');
setpenstyle(psDash);
line(x0-3*h,y0-3*h,x0+3*h,y0-3*h);
line(x0-3*h,y0-3*h,x0-3*h,y0);
line(x0+3*h,y0-3*h,x0+3*h,y0);
line(x0+6*h,y0+3*h,x0+6*h,y0);
line(x0,y0+3*h,x0+6*h,y0+3*h);
end.

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

14   голосов, оценка 3.857 из 5


СОХРАНИТЬ ССЫЛКУ