Построить график функции - Turbo Pascal (29417)
Формулировка задачи:
Построить график функции y=x^3*tg(x) на отрезке [a,b] a,b ввести с клавиатуры
Решение задачи: «Построить график функции»
textual
Листинг программы
uses graph,crt; function F(x:real):real; begin F:=x*x*x*sin(x)/cos(x); end; var a,b,mx,my,x:real; x0,y0,n,i:integer; s:string; begin clrscr; {введем a,b так чтобы получить более-менее приличный график} repeat write('-7<=a<=-3 a='); readln(a); until(a>=-7)and(a<=-3); repeat write('3<=b<=7 b='); readln(b); until(b>=3)and(b<=7); initgraph(x0,y0,''); x0:=round(-a*(getmaxX-30)/(b-a)); mx:=(x0-30)/-a;{масштаб по Х} y0:=getmaxY div 2; my:=(y0-30)/50;{примем макс по оси Y=50, он бесконечен} line(0,y0,getmaxX,y0);{оси} line(x0,0,x0,getmaxY); n:=5; if trunc(-a)+1>n then n:=trunc(-a)+1; if trunc(b)+1>n then n:=trunc(b)+1; for i:=1 to n 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)); {подпись оси У} str(i*10,s); outtextXY(x0-30,y0-round(i*my*10),s);{соответственно засечкам} outtextXY(x0-35,y0+round(i*my*10),'-'+s); line(x0-round(i*mx),y0-3,x0-round(i*mx),y0+3); {засечки на оси Х} line(x0+round(i*mx),y0-3,x0+round(i*mx),y0+3); {подпись оси X} str(i,s); outtextXY(x0-round(i*mx),y0+10,s);{соответственно засечкам} outtextXY(x0+round(i*mx),y0+10,+s); end; {центр} outtextXY(x0+5,y0+10,'0'); {подписи концов осей} outtextXY(getmaxX-10,y0-10,'X'); outtextXY(x0+5,10, 'Y'); {график} x:=a; while x<=b do begin if abs(cos(x))>0.01 then putpixel(x0+round(x*mx),y0-round(F(x)*my),12); x:=x+0.0001; end; {ассимтоты} setcolor(10); setlinestyle(3,0,1); for i:=1 to 2 do begin line(x0+round((2*i-1)*pi/2*mx),0,x0+round((2*i-1)*pi/2*mx),2*y0); line(x0-round((2*i-1)*pi/2*mx),0,x0-round((2*i-1)*pi/2*mx),2*y0); end; {название} setcolor(12); outtextXY(60,10,'y=x^3*tg(x)'); readln end.
Объяснение кода листинга программы
- В первой строке кода используется библиотека graph, которая отвечает за отображение графика, и функция initgraph, которая инициализирует график.
- Далее определяются переменные a, b, mx, my, x и y, которые будут использоваться для построения графика.
- Затем в цикле читаются значения a и b с помощью функции readln до тех пор, пока они удовлетворяют определенным условиям (a и b больше или равны -7 и меньше или равны 3 соответственно).
- После этого вызывается функция initgraph с начальными координатами x0, y0, которые определяются как среднее значение a и b.
- Далее определяется масштаб по осям X и Y. Ось Y масштабируется так, чтобы максимальное значение было равно 50, а ось X масштабируется так, чтобы она была пропорциональна масштабу оси Y.
- Затем начинается цикл, который проходит по всем точкам на графике. Для каждой точки вычисляются координаты x и y с помощью формулы из функции F, которая зависит от значения x.
- В цикле также выводятся подписи осей и оси Y, а также строки с номерами засечек.
- После завершения цикла выводятся ассимптоты для оси X.
- Затем выводится название графика с помощью функции outtextXY.
- Наконец, вызывается функция readln для завершения ввода данных.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д