Построение графиков функций (перевести в 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 итераций. После завершения цикла происходит вывод координат верхней и нижней границ окна графика, а также значения функции для выбранной точки. Наконец, код выводит координаты левой границы окна графика и значение функции для выбранной точки.

Оцени полезность:

13   голосов , оценка 4 из 5
Похожие ответы