Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Графика

Автор: TP7.0 26.12.2007 23:37

Здраствуйте! Подскажите пожалуйсто, правильно ли строиться график, вычисляется таблица.
ЗАДАНИЕ: Вычислить таблицу значений и построить график функций y(x) на интервале 0<=x<=Пи с шагом h.
y:=exp(-x/2)*sin(3*x): h=0,15; 0<=x<=Пи

Задание я сделал, но есть сомнение над правильностью построения, подскажите пожалуйсто правильно ли. smile.gif

Код

Program LAB2;
Uses Crt, Graph;
Var Gd, Gm, i, k,a,b,t     : Integer;
    x,y,xn, xk, h   : real;
    p,m,d,r,z : string;
Begin
Clrscr;
Write('Введите xn,xk,h:');
Read(xn,xk,h);
Gd:=detect;Gm:=detect;
InitGraph(gd,gm,'c:\tp7\bgi');
SetBkcolor(1);
Setcolor(14);
x:=0; i:=20;
{Tablica znachenii na grafike}
While x<=pi do
Begin
  str(x:5:2,p);
  y:=exp(-x/2)*sin(3*x);
  str(y:6:3,m);
  outtextxy(6,i,p);
  outtextxy(80,i,m);
  x:=x+h;
  inc(i,10);
End;
readkey;
{Osy X,Y}
line(0,240,640,240);
line(320,0,320,480);
line(315,8,320,0);
line(325,8,320,0);
line(632,235,640,240);
line(632,245,640,240);
{Podpis osei i stolbikov}
p:='y'; r:='x'; d:='0';
m:='y=exp(-x/2)*sin(3*x)';
outtextxy(2,0,m);
outtextxy(310,250,d);
outtextxy(305,10,p);
outtextxy(620,250,r);
outtextxy(23,10,r);
outtextxy(90,10,p);
x:=0.6; i:=30;r:='-';
{Podpis delenii na OY}
While x<=pi-1.2 do
Begin
  x:=x+0.4;
  str(x:2:1,p);
  outtextxy(290,217-i,p);
  outtextxy(290,257+i,p);
  outtextxy(280,257+i,r);
  inc(i,20);
End;
a:=8; b:=6; x:=0.4;d:='pi'; i:=1; r:='4';z:='-';
{Podpis delenii na OX}
  While x<=pi-0.5 do
  Begin
   str(i,p); str(b,m);
   outtextxy(349+a,248,d);  outtextxy(71+a,248,d);
   outtextxy(64+a,248,m);   outtextxy(339+a,248,p);
   outtextxy(349+a,260,r);  outtextxy(71+a,260,r);
   line(347+a,258,357+a,258);
   line(60+a,258,63+a,258);
   line(69+a,258,80+a,258);
   x:=x+0.4;inc(a,40); inc(i); b:=b-1;
  End;
{Shtrihi}
for i:=-100 to 100 do line(318,round(240+i*10),322,round(240+i*10));
for i:=-100 to 100 do line(round(240+i*10),238,round(240+i*10),242);
x:=xn;
While x<=xk do
Begin
  y:=exp(-x/2)*sin(3*x);
  if  round(y*50)=0 then
  Begin
   SetColor(14);
   circle (320+round(x*50),240-round(y*50),2);
  End
  else
  putpixel(320+round(x*50),240-round(y*50),5);
  x:=x+0.001;
  delay(20);
End;
Readkey;
End.

Автор: TP7.0 27.12.2007 3:04

Вот фотографии получившегося графика... Подскажите пожалуйсто правильно ли он строиться?


Эскизы прикрепленных изображений
Прикрепленное изображение Прикрепленное изображение

Автор: Tan 27.12.2007 3:41

Я проверял в среде Mathematica 5. Я думаю рисунок говорит сам за себя good.gif


Эскизы прикрепленных изображений
Прикрепленное изображение