Машинная графика в Turbo Pascal 7.0. Построение графика функции у=4хsin(x)

Автор работы: Пользователь скрыл имя, 15 Апреля 2012 в 11:23, курсовая работа

Описание работы

В данном курсовом проекте мы должны рассмотреть и изучить основные аспекты работы с компьютерной графикой.
Главной задачей нашей работы является углубленное изучение машинной графики и работы в графическом режиме, в частности построение графика функции y=4хsin(x) на заданном отрезке [a;b].

Содержание работы

Введение…………………………………………………………………………..3
Глава I. Построение графика функции……………………………………...4
Глава II. Основные сеансы работы с программой…………………………..7
Заключение……………………………………………………………………....10
Список литературы………………………………………………………………11
Приложение………………………………………………………………………12

Файлы: 1 файл

Курсовая работа.doc

— 173.50 Кб (Скачать файл)

                     str(y:2:1,s);

                     setcolor(14);

                     outtextxy(ox-38,round(oy-my*y),s);

                  end;

            y:=y+(ymax1-ymin1)/10;

       end;

     if a>0

       then a1:=0

     else a1:=a;

     if b<0

       then b1:=0

     else b1:=b;

     x:=a1;

     while x<=b1+0.01 do

       begin

          if (x<>0)

            then begin

                   setcolor(15);

                   line(round(ox+mx*x),oy+5,round(ox+mx*x),oy-5);

                   str(x:2:1,s);

                   setcolor(14);

                   outtextxy(round(ox+mx*x)-13,oy+20,s);

                 end;

          x:=x+(b1-a1)/10;

       end;

   end;

   Function min(a,b:real):real;    {вычисление min значения у}

      var fmin,h,y,x:real;

   begin

      fmin:=100;

      h:=0.05;

      x:=a;

      while x<=b do

        begin

           if x>0

             then y:=4*exp(sin(x)*ln(x))

           else if x=0

                   then y:=0

                 else y:=4/exp(sin(x)*ln(-x));

           if y<fmin

             then fmin:=y;

           x:=x+h;

        end;

      min:=fmin;

   end;

   Function max(a,b:real):real;    {вычисление max значения y}

      var fmax,h,y,x:real;

   begin

      fmax:=-100;

      h:=0.05;

      x:=a;

      while x<=b do

        begin

             if x>0

               then y:=4*exp(sin(x)*ln(x))

             else if x=0

                    then y:=0

                  else y:=4/exp(sin(x)*ln(-x));

                     if y>fmax

                     then fmax:=y;

           x:=x+h;

        end;

      max:=fmax;

   end;

Begin

   clrscr;

   writeln('Введите a,b');

   readln(a);                             {ввод отрезка a,b}

   readln(b);

   if a>b   {контроль соответствия введенного отрезка a,b условию}      

     then begin

             t:=a;

             a:=b;

             b:=t;

          end;

   if a=b

     then begin

             writeln('Введены равные значения');

             readln;

             exit;

          end;

   if (a<0) and (b<=0)

     then begin

             writeln('nevozmojno');

             readln;

             exit;

          end;

   if (a<0) and (b>0)

     then begin

             z:=a;

             a:=0;

           end;

   ymin:=min(a,b);                 {вычисление min значения y}

   ymax:=max(a,b);                 {вычисление max значения y}

   mygraphinit;             {инициализация графического режима}

   cleardevice;

   setcolor(15);

   setlinestyle(0,0,3);

   px:=round(getmaxx/6);

   py:=round(getmaxy/6);

   if z<0

     then a:=z;

   if a*b<0 {расчет масштабных коэффициентов по горизонтали и

                                                 отступа для оси оу}                               

     then begin

             mx:=(getmaxx-px)/(b-a);

             ox:=round(getmaxx-px/2-b*mx);

          end

   else if (a<0) and (b<=0)

          then  begin

                   mx:=(getmaxx-px)/(-a);

                   ox:=round(getmaxx-px/2);

                end

         else begin

                 mx:=(getmaxx-px)/(b);

                 ox:=round(px/2);

              end;

   if ymin*ymax<0 {расчет масштабных коэффициентов по вертикали и  

                                                 отступа для оси ох}

     then begin

             my:=(getmaxy-py)/(ymax-ymin);

             oy:=round(getmaxy-py/2+ymin*my);

          end

   else if (ymax<=0) and (ymin<0)

          then  begin

                   my:=(getmaxy-py)/(-ymin);

                   oy:=round(py/2);

                end

         else begin

                 my:=(getmaxy-py)/(ymax);

                 oy:=round(getmaxy-py/2);

              end;

   osi(ox,oy,px,py);                         {рисование осей}

   setlinestyle(0,0,1);

   podpisi(ymin,ymax,a,b,mx,my,ox,oy,px,py);{вывод подписей к       

                      осям}

   if z<0

     then a:=0;

   grafik(ox,oy,a,b,mx,my);               {рисование графика}

   setcolor(14);

   settextstyle(2,0,7);

   outtextxy(round(getmaxx/2)-35,2,'y=4*exp(sin(x)*ln(x))');       {вывод подписи к графику}

   readln;

   closegraph;                   {закрытие графического режима}

End.

2

 



Информация о работе Машинная графика в Turbo Pascal 7.0. Построение графика функции у=4хsin(x)