Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Pascal] Ошибка в программе. Не выводится график


Автор: Amaya 8.12.2006, 22:55
Вот листинг проги, вроде все правильно, но когда запускаешь прогу, не выводится грфик, выводятся только оси, а сам график нет... Нужно во вторник сдать.. сломала уже голову... Помогите  

Функция exp (-a•x)•sin(b•x)


Код

program k;
Uses crt,graph;
const vvoda='Введите a=';
      vvodb='Введите b=';
      vvodXn='Введите Хн=';
      vvodXk='Введите Хк=';
Var
    Ymax,Ymin,Xmax,Xmin,
    Y0,X0,Ya,Xa,h:integer;
    b,a,Xk,x:real;
    s:string;

Procedure OpenGraph;
Var
     gr,gm:integer;
Begin
     gr:=9;gm:=2;
     InitGraph(gr,gm,'e:\tp\bgi');
      if GraphResult<>GrOk then
         begin
          writeln('Ошибка инициализации графики');
          halt(1);
         end;
End;

Begin
     ClrScr;
     gotoxy(25,12);
     Writeln('Программа для построения графика функции ');
     gotoxy(28,14);
     Writeln('Y= exp(-a*x)*sin(b*x)');readkey;
     ClrScr;
     write('Введите шаг приращения по оси Х :');readln(h);


     repeat write('Введите значение a:');readln(a);until a>0;
     repeat write('Введите значение b:');readln(b);until 0<b>1;
     write('Введите значение Xk :');readln(Xk);

     OpenGraph;
     Ymax:=GetMaxY;Xmax:=GetMaxX;
     X0:=40;Y0:=Ymax-40;
     line(40,40,40,Y0);line(40,y0,xmax-40,y0);
     line(37,49,40,40);line(40,40,43,49);
     line(xmax-40-9,y0-3,xmax-40,y0);
     line(xmax-40,y0,xmax-40-9,y0+3);
     outtextxy(x0-20,40,'Y');
     outtextxy(xmax-30,y0,'X');

     setcolor(3);
     settextstyle(0,0,2);
     settextjustify(CenterText,CenterText);
     outtextxy(x0+(xmax-80) div 2,50,'График функции Y= exp(-a*x)*sin(b*x)') ;
     setcolor(14);
     settextstyle(0,0,0);
     xa:=0;
     setlinestyle(2,0,0);
     outtextxy(x0+15,y0+15,'X=0');
     outtextxy(x0-20,y0-5,'Y=0');

     moveto(x0,y0);
     repeat
      inc(xa,h);
      ya:=round(exp(-a*x)*sin(b*x));
      lineto(x0+xa,y0-ya);
     until (Xa>=Xk) or (xa>=xmax-80);
     str(xa,s);s:='X='+s;
     outtextxy(x0+xa,y0+15,s);
     str(ya,s);s:='Y='+s;
     outtextxy(x0-20,y0-ya,s);
     readkey;
     CloseGraph;
End.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)