Построить координатную сетку и график функции - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

1. Очистить экран монитора и при необходимости установить требуемый цвет фона. 2. Выбрать размещение системы координат в соответствии с левым и правым интервалом и в соответствии с минимальным и максимальным значением функции, которые могут быть достигнуты на этом интервале. 3. Построить горизонтальную и вертикальную координатные оси. 4. Подписать названия координатных осей. 5. Построить на координатных осях масштабные метки. 6. Подписать численные значения масштабных меток. 7. Построить координатную сетку. 8. Построить непосредственно сам график функции.

Задание

Решение задачи: «Построить координатную сетку и график функции»

textual
Листинг программы
uses graph;
const
x1=0;{начало и конец графика в реальных значениях}
x2=50;
function F(x:real):real;
begin
F:=ln((x+5)/sqrt(3*x*x-2*x+1))/ln(10);
end;
var mx,my,max,min,x,dx:real;
    x0,y0,i:integer;
    s,s1:string;
begin
initgraph(x0,y0,'');
 
max:=F(x1); {майдем макс и мин для масштаба по оси У}
min:=F(x1);
dx:=0.001;
x:=x1;
while x<x2 do
 begin
  if F(x)>max then max:=F(x)
  else if F(x)<min then min:=F(x);
  x:=x+dx;
 end;
{масштабы по осям }
x0:=50;{начало координат слева}
mx:=(getmaxX-x0-30)/x2;
y0:=round(getmaxY*max/(max-min));
my:=(y0-30)/max;{(trunc(max)+1);}
line(0,y0,getmaxX,y0); {ось Х}
line(x0,getmaxy,x0,0); {ось У}
for i:=1 to 50 do   {максимальное количество засечек в одну сторону}
   begin
    line(x0-3,y0-round(i*my/10),x0+3,y0-round(i*my/10));{засечки на оси У}
    line(x0-3,y0+round(i*my/10),x0+3,y0+round(i*my/10));
    line(x0+round(i*mx),y0+3,x0+round(i*mx),Y0-3); {засечки на оси Х}
    str(i/10:0:1,s);
    {подпись оси У}
    outtextXY(x0-30,y0-round(i*my/10),s);{соответственно засечкам}
    outtextXY(x0-35,y0+round(i*my/10),'-'+s);
    {подпись оси Х}
    str(i,s);
    if i mod 5=0 then outtextXY(x0+round(i*mx),y0+10,s);
  end;
{центр}
outtextXY(x0+5,y0+10,'0');
{подписи концов осей}
outtextXY(getmaxX-10,y0-10,'X');
outtextXY(x0+10,10, 'Y');
{график}
x:=x1;
while x<=x2 do
 begin
  putpixel(x0+round(x*mx),y0-round(F(x)*my),12);
  x:=x+dx; {наращиваем х}
 end;
setcolor(12);
outtextXY(105,20,'Grafik functii Y=lg(x+5)/sqrt(3*x*x-2*x+1)');
outtextXY(175,40,'na intervale [0; 50]');
readln
end.

Объяснение кода листинга программы

  1. Используется библиотека graph для создания графика.
  2. Определяется функция F, которая вычисляет значение функции y = ln((x+5)/sqrt(3xx-2*x+1))/ln(10).
  3. Создаются переменные mx, my, max, min, x, dx, x0, y0, i, s, s1.
  4. Инициализируется график с координатами x0, y0.
  5. Вычисляются максимальное и минимальное значения функции F на интервале [x1, x2].
  6. Вычисляются масштабные коэффициенты для осей X и Y.
  7. Создаются линии для засечек на оси Y.
  8. Выводятся подписи осей X и Y.
  9. Выводится центр графика.
  10. Выводятся подписи концов осей X и Y.
  11. Выводится график функции F.
  12. Выводится подпись графика.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

9   голосов , оценка 4.111 из 5