Модуль Graph 20. Вывести в координатных осях график, заданный функцией. - Turbo Pascal

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

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

Следующий график y(t)=1/(5-3cos(t)) График должен выглядеть примерно таким образом: Заранее спасибо.

Решение задачи: «Модуль Graph 20. Вывести в координатных осях график, заданный функцией.»

textual
Листинг программы
uses graph;
function F(t:real):real;
begin
F:=1/(5-3*cos(t));
end;
var xn,xk,max,min,x,y,mx,my,dx:real;
    x0,y0,x1,y1,x2,y2,i,px,py:integer;
    s:string;
begin
x0:=0;
initgraph(x0,y0,'');
x0:=getmaxX div 2;{центр}
y0:=getmaxY div 2;{центр}
setfillstyle(1,15);
bar(x0-200,y0-200,x0+200,y0+200);
x1:=x0-100;y1:=y0-180;
x2:=x0+180;y2:=y0+100;
setcolor(0);
rectangle(x1,y1,x2,y2);
xn:=0;xk:=2*pi;{интервал по Х}
mx:=(x2-x1)/(xk-xn);{масштаб по Х}
{найдем максимум и минимум для масштаба по У}
max:=F(xn);
x:=xn;
while x<=xk do
 begin
  x:=x+0.01;
  if F(x)>max then max:=F(x)
 end;
my:=(y2-y1)/(2*max);{по У}
for i:=1 to round(xk-xn)+1 do{максимальное количество засечек в одну сторону}
  begin
    line(x1,y2-round(i*my/5),x1+5,y2-round(i*my/5));{засечки на оси У}
    line(x2-5,y2-round(i*my/5),x2,y2-round(i*my/5));
    line(x1+round(i*mx),y2,x1+round(i*mx),y2-5); {засечки на оси Х}
    line(x1+round(i*mx),y1,x1+round(i*mx),y1+5);
    str(i/5:0:1,s);
    {подпись оси У}
    outtextXY(x1-25,y2-round(i*my/5),s);{соответственно засечкам}
    {подпись оси Х}
    str(i,s);
    outtextXY(x1+round(i*mx),y2+10,s);
  end;
{центр}
outtextXY(x1+5,y2+10,'0');
{график}
x:=xn;
dx:=0.001;
while x<=xk do
 begin
  x:=x+dx; {наращиваем х}
  px:=x1+round(x*mx); {изменение по оси Х}
  y:=F(x); {график в реальных координатах}
  py:=y2-round(y*my);{в экранных}
  putpixel(px,py,12);
 end;
outtextXY(x1-90,y1,'1');
outtextXY(x1-90,(y1+y2)div 2,'Y(t)');
outtextXY(x1-90,y2,'0');
outtextXY((x1+x2)div 2,y2+60,'t');
outtextXY(x1,y2+60,'0');
outtextXY(x2-20,y2+60,'2pi');
setcolor(12);
line(x1-90,(y1+y2)div 2+10,x1-60,(y1+y2)div 2+10);
readln
end.

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

  1. Объявлены переменные: xn, xk, max, min, x, y, mx, my, dx (с 1 по 9), s (с 10 по 12), x0, y0, x1, y1, x2, y2, i, px, py (с 13 по 20).
  2. Задаются начальные значения для переменных: x0=0, y0=0, x1=x0-100, y1=y0-180, x2=x0+180, y2=y0+100, xn=0, xk=2pi, max=F(xn), min=F(xk), my=(y2-y1)/(2max), mx=(x2-x1)/(xk-xn).
  3. Строятся засечки на оси У и оси Х с помощью функций line и outtextXY.
  4. Строятся подписи оси У и оси Х с помощью функций outtextXY.
  5. Строится график функции Y(t) = 1/(5-3*cos(t)) с помощью цикла while и функции putpixel.
  6. Строятся подписи для графика с помощью функций outtextXY.
  7. Строится ось t с помощью функций line и outtextXY.
  8. Задается цвет для линий и символов графита (12) с помощью функции setcolor.
  9. В цикле while считывается значение от пользователя с помощью функции readln.

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


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

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

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