Помогите переписать программу с basic на pascal
Я совсем не знаком с бейсиком, помогите переписать программу построения графика функции y = sin (x) * x.
Rem График функции
CLS
Screen 9
Color 2
h = .1
xnach = -5 : xkon = 5
n = INT((xkon – xnach) / h)
ymin = sin (xnach) * xnach : xmin = xnach
ymax = sin (xnach) * xnach : xmax = xnach
FOR x = xnach TO xkon STEP h
y = sin (x) * x
IF y < ymin THEN ymin = y : xmin = x
IF y > ymax THEN ymax = y : xmax = x
NEXT x
PRINT “ymax = ”; ymax
PRINT “ymin = ”; ymin
Rem Вычисление масштаба по оси x
mx = 600 / (xmax - xmin)
Rem Вычисление масштаба по оси y
my = 300 / (ymax - ymin)
PRINT “mx = ”; mx
PRINT “my = ”; my
Rem Оси координат
LINE (10, 301) – (630, 301), 2
LINE (320, 10) – (320, 301), 2
LOCATE 22, 78 : PRINT “> x”
LOCATE 1, 41 : PRINT “ ^ y”
COLOR 14 : LOCATE 2, 10 : PRINT “График функции”
Rem Нанесение точек графика на координатную плоскость
FOR x = xnach TO xkon STEP h
y = sin (x) * x
PSET (320 + (x*mx) / 10 , 300 – y* my ), 4
IF y > ymax THEN ymax = y : xmax = x
NEXT x
END
Вот что получилось у меня, но код не работает корректно
uses GraphABC;
var h, xnach, xkon, n, xmin, xmax, x, mx, my: integer;
ymin, ymax, y: real;
begin
h := 1;
xnach := -5;
xkon := 5;
n := integer(((xkon - xnach) / h));
ymin := sin (xnach) * xnach;
xmin := xnach;
ymax := sin (xnach) * xnach;
xmax := xnach;
for x:=xnach to xkon step h do
begin
y := sin(x)*x;
if y < ymin then
begin
ymin := y;
xmin := x;
end;
if y > ymax then
begin
ymax := y;
xmax := x;
end;
end;
writeln('ymax= ', ymax);
writeln('ymin= ', ymin);
mx := integer(600/(xmax - xmin));
my := integer(300/(ymax - ymin));
writeln('mx= ', mx);
writeln('my= ', my);
line((10, 301),(630, 301));
line((320, 10),(320, 301));
for x:=xnach to xkon step h do
begin
y := integer(sin(x)*x);
SetPixel(integer(320+(x*mx)/10),integer(300-y*my),rgb(0,0,0));
if y > ymax then
begin
ymax := y;
xmax := x;
end;
end;
end.