Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  1
Language: PASCAL
Code:
program lab11;
uses graph;
const step=0.0017;
var Gd,Gm:integer;
x1,y1,x2,y2,xmin,xmax,ymin,ymax:real;
NextX1, NextY1, NextX2,NextY2:longint;
procedure DrawAxis(xmin,xmax,ymin,ymax:real);
var i,t:integer;
m:real;
s:string;
begin
{Oy}
Line(GetmaxX div 2, GetMaxY,GetMAxx div 2,0);
{Ñòðåëêà}
Line(GetMaxX, GetMaxY div 2, GetMaxX -10, GetMaxY div 2-5);
Line(GetMaxX, GetMaxY div 2, GetMaxX -10,GetMAxY div 2 +5);
{Çàäà¸ì êðàñíûé öâåò äëÿ ïîäïèñè îñè}
SetColor(12);
OutTextXY(GetMaxX div 2 -15,5,'Y');
SetColor(15);
{Ïðîðèñîâêà äåëåíèé}
for i:=1 to 11do
Begin
 t:=round(19+(i-1)*(GetMaxX-39)/10);
 Line(t, GetMaxY div 2+5,t,t GetMaxY div 2-5);
 m:=xmin+(i-1)*(xmax-xmi)/10;
 if(m<>0) then
  Str(m:1:2,s)
  else s:='0';
  OutTextXY(t-15, GetMaxY div 2+10,s);
  t:=round(19+(i-1)*(GetMaxY-39)/10);
  Line(GetMaxX div 2+5,t,GetMaxX div 2-5,t);
  m:=ymax-(i-1)*(ymax-ymin)/10;
  if(m<>0) then Str(m:1:2,s) else
  continue; {continue-ïåðåõîä ê ñëåäóþùåìó øàãó öèêëó}
  OutTextXY(GetMaxX div 2 +10,t-5,s);
  end;
  end;
  function F(x:real):real;
  begin F:=sin(x)/cos(x);
  end;
  begin
  Gd:=Detect; {Àâòîïðåäåëåíèÿ ãðàôè÷åñêîãî äðàéâåðà}
  xmin:=-3,14;
  xmax:=3,14;
  ymin:=-5;
  ymax:=5;
  InitGraph(Gd,Gm,''); {Èíèöèàëèçàöèÿ ãðàôè÷åñêîãî ìîäóëÿ}
  DrawAxis(xmin,xmax,ymin,ymax); {Âûçîâ ïðîöåäóðû äëÿ ïðîðèñîâêè îñåé}
  x1:=xmin;
  SetColor(2); {Çàäàåì çåëåíûé öâåò äëÿ ãðàôèêà}
  while x1<=xmax do
  begin
  y1:=F(x1);
  y2:=F(x1+step);
  x2:=x1+step
  NextX1:=round(GetMaxX/2-(GetMaxX/2-19)*x1/xmin); {Îïðåäåëÿåì êîîðäèíàòû ïèêñåëåé}
  NextX2:=round(GetMaxX/2-(GetMaxX/2-19)*x2/xmin); {òåêóùèõ òî÷åê}
  NextY1:=round(GetMaxY/2-(GetMaxY/2-19)*y1/ymax);
  NextY2:=round(GetMaxY/2-(GetMaxY/2-19)*y2/ymax);
  if (NextX1>GetMaxX) or (NextX2>GetMaxX) or (NextX1<0) or (NextX2<0) then
  begin
  x1:=x1+step;
  continue;  {continue-ïåðåõîä ê ñëåäóþùåìó øàãó öèêëó}
  end;
  if (NextY1>GetMaxY) or (NextY2>GetMaxY) or (NextY1<0) or (NextY2<0) then
  begin
  x1:=x1+step;
  continue;  {continue-ïåðåõîä ê ñëåäóþùåìó øàãó öèêëó}
  end;
  Line(NextX1,NextY1,NextX2,NextY2);
  x1:=x1+step;
  end;
  readln;
  end.
Comments: