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