Построить график функции - 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.

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

  1. В первой строке кода используется библиотека graph, которая отвечает за отображение графика, и функция initgraph, которая инициализирует график.
  2. Далее определяются переменные a, b, mx, my, x и y, которые будут использоваться для построения графика.
  3. Затем в цикле читаются значения a и b с помощью функции readln до тех пор, пока они удовлетворяют определенным условиям (a и b больше или равны -7 и меньше или равны 3 соответственно).
  4. После этого вызывается функция initgraph с начальными координатами x0, y0, которые определяются как среднее значение a и b.
  5. Далее определяется масштаб по осям X и Y. Ось Y масштабируется так, чтобы максимальное значение было равно 50, а ось X масштабируется так, чтобы она была пропорциональна масштабу оси Y.
  6. Затем начинается цикл, который проходит по всем точкам на графике. Для каждой точки вычисляются координаты x и y с помощью формулы из функции F, которая зависит от значения x.
  7. В цикле также выводятся подписи осей и оси Y, а также строки с номерами засечек.
  8. После завершения цикла выводятся ассимптоты для оси X.
  9. Затем выводится название графика с помощью функции outtextXY.
  10. Наконец, вызывается функция readln для завершения ввода данных.

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


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

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

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