График функции

  • Автор темы meskalin1974
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

meskalin1974

Гость
#1
Есть следующий код (На Pascal)
Код:
{$n+}
uses graph;

type
 tcurve = procedure(t: double;
          var x, y: double);

procedure my_curve(t: double;
         var x, y: double);far;
const
 b = 3;
begin
 x := b*cos(t)*cos(t)*cos(t);
 y := b*sin(t)*sin(t)*sin(t);
end;

const
 scale = 20;
procedure set_point(t: double; f: tcurve);
var
 x, y: double;
begin
 f(t, x, y);
 SetColor(white);
 Lineto( (getmaxx div 2) + trunc(scale * x),
         (getmaxy div 2) - trunc(scale * y));
end;

procedure draw_curve(start, finish, step: double;
         f: tcurve);
var t: double;
begin
 setcolor(green);
 line(0, getmaxy div 2, getmaxx, getmaxy div 2);
 line(getmaxx div 2, 0, getmaxx div 2, getmaxy);

 t := start;

 while t <= finish do begin
   set_point(t, f);
   t := t + step;
 end;
end;

var grDriver, grMode: integer;
begin
 initgraph(grDriver, grMode, 'D:\BP\BGI');

 draw_curve(0, 2*pi - pi/120, pi/120, my_curve);

 readln;

 closegraph;
end.
Надо сюда дописать функцию, с помощью которой будет строиться график функции y=1/x*x+2*x+1 в духе уже написанного.
Помогите пожалуйста, заранее благодарен.
 
R

Razoomnick

Гость
#2
...
procedure my_curve(t: double;
var x, y: double);far;
const
b = 3;
begin
x := t;
y := 1/(t*t)+2*t+1;
end;
...

...
while t <= finish do begin
if t<>0 then do begin
set_point(t, f);
end;
t := t + step;
end;
....

Дальше соображайте, меняйте пределы, шаг, пока не получите то, что нужно. Паскаля просто под руками нету.
 
Статус
Закрыто для дальнейших ответов.