Задание: составить программу построения графика функции на отрезке [f, 1.3] f(p)=3^2p+4p выделив шаг, где нет корня вертикальной штриховкой. Вот тут я написал прогу, она катит, но я не думаю, что она работает корректно. Подскажите, что не так и где ошибка?
Код
Program Graphik;
Uses graph, crt;
Function f(p:real):real;
Begin
f:=3*SQR(2*p)+4*p;
end;
const
gm:integer=1;
gd:integer=1;
d:real=1.3;
var ab,sh,mg,mv,c,rn:real;
begin
repeat
writeln(‘sh,c,mg,mv’);
readln(sh,c,mg,mv);
until c<d;
initgraph(gm,gd,’ ’);
line(0,100,320,100);
line(160,0,160,200);
ab:=c;
rn:=f(c);
moveto (160+round(c*mg),100-round(rn*mv);
while ab<=d do
begin
if f(ab)*f(ab+sh)<0 then
sh:=sh/10;
begin
line(160+round(ab+mg),100,160+round(ab+mg),100-round(f(ab)*mv));
end;
ab:=ab+sh;
rn:=f(ab);
lineto((160+round(ab*mg),100-round(rn*mv));
end;
repeat
until keypressed;
closegraph;
end.
Где с – начало отрезка, ав – аргумент, rn – функция, sh – шаг, mg – горизонт, mv – вертикаль, d – конец отрезка.