Построение графиков функций (перевести в PascalABC) - Pascal ABC
Формулировка задачи:
программа была набрана в турбо паскале, помогите перевести его в PascalABC
Решение задачи: «Построение графиков функций (перевести в PascalABC)»
textual
Листинг программы
program chukreev;
uses graphABC,crt;
var y:array[1..101] of real;
nom:integer;
i,k,l,n,mx,dr,mo:integer;
a,b,x,h,ymax,ymin,my: real;
xs,Yx:string;
begin
hidecursor;
writeln(' Виды функций');
writeln('1: y:=sqr(x)-x+1');writeln('2: y:=sin(x)/cos(x)');
writeln('3: y:=cos(x)');writeln('4: y:=sqrt(x)');
writeln('5: y:=3*x+1');writeln('6: y:=-x/2'); writeln('7: y:=exp(3*ln(x))');
writeln('8: y:=1/x'); writeln('9: y:=sqr(x)');
write('введите номер:');readln(nom);
write('введите начальное значение x='); readln(a);
write('введите конечное значение x='); readln(b);
write('введите число точек ='); readln(n);
ymax:=-maxint;
ymin:=maxint;
h:=(b-a)/n;
readln;
clearwindow;
x:=a;
for i:=1 to n do
begin
Case nom of
{1: y[i]:=sqr(x)-x+1;
{2: y[i]:=sin(x)/cos(x);}
{3: y[i]:=cos(x);
{4: y[i]:=sqrt(x);}
{5: y[i]:=3*x+1;
{6: y[i]:=-x/2;
{7: y[i]:=exp(3*ln(x));}
8: y[i]:=1/x;
9: y[i]:=sqr(x);
end;
if y[i]>ymax then ymax:=y[i];
if y[i]<ymin then ymin:=y[i];
x:=x+h;
end;
mx:=round((windowwidth-50)/n);
my:=(ymax-ymin)/(windowheight-20);
k:=round(abs(ymin)/my);
line(20,20,20,windowheight-20);
textout(18,20,'^');
textout(10,10,'y');
line(20,windowheight-20-k,windowwidth-20,windowheight-20-k);
textout(windowwidth-20,windowheight-22-k,'>');
textout(windowwidth-20,windowheight-15-k,'x');
Case nom of
1: Yx:='sqr(x)-x+1';
2: Yx:='sin(x)/cos(x)';
3: Yx:='cos(x)';
4: Yx:='sqrt(x)';
5: Yx:='3*x+1';
6: Yx:='-x/2';
7: Yx:='exp(3*ln(x))';
8: Yx:='1/x';
9: Yx:='sqr(x)';
end;
textout(windowwidth-100,windowheight-10,Yx);
X:=A;
for i:=1 to n do
begin
str(x,xs); l:=round((y[i]-ymin)/my);
if(i-1) mod 5=0 then textout((i-1)*mx+20,windowheight-15-k,xs);
textout((i-1)*mx+20,windowheight-20-l,'*');
x:=x+h
end;
end.
Объяснение кода листинга программы
Этот код написан на языке Pascal ABC и используется для построения графиков функций. Он использует библиотеку graphABC и функцию crt для отображения графиков. Переменные:
- y: массив из 101 элемента, представляющий значения функции на интервале от x=0 до x=100.
- nom: номер функции, которую нужно отобразить.
- i, k, l, n, mx, dr, mo: счетчики для итерации по точкам функции.
- a, b: начальные и конечные значения переменной x.
- ymax, ymin: минимальное и максимальное значения функции.
- my: шаг оси y.
- mx: шаг оси x.
- dr: размер окна графика.
- mo: цвет линии.
- a, b: координаты верхнего и нижнего края окна графика.
- X, Yx: координаты правой и левой границы окна графика.
Код начинается с объявления всех переменных и начальных значений. Затем он запрашивает у пользователя номер функции и начальное значение x. После этого он вычисляет шаг оси x и y, а также определяет размеры окна графика.
Затем идет цикл, который проходит по всем точкам функции. Внутри цикла происходит проверка условия, при котором отображается символ
*. Это условие выполняется каждые 5 итераций. После завершения цикла происходит вывод координат верхней и нижней границ окна графика, а также значения функции для выбранной точки. Наконец, код выводит координаты левой границы окна графика и значение функции для выбранной точки.