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

Автор работы: Пользователь скрыл имя, 13 Июня 2013 в 00:55, курсовая работа

Краткое описание

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

Содержание

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

Вложенные файлы: 1 файл

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

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

МИНИСТЕРСТВО ОБРАЗОВАНИЯ  И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ

НОУ ВПО «РЕГИОНАЛЬНЫЙ ОТКРЫТЫЙ СОЦИАЛЬНЫЙ

ИНСТИТУТ»

АНО НССУЗ «ТЕХНИКУМ РЕГИОНАЛЬНОГО  ОТКРЫТОГО СОЦИАЛЬНОГО ИНСТИТУТА»

 

ПРЕДМЕТНАЯ (ЦИКЛОВАЯ) КОМИССИЯ

СПЕЦИАЛЬНЫХ КОМПЬЮТОРНЫХ  ДИСЦИПЛИН

 

 

 

 

 

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

      по учебной дисциплине: «Алгоритмические языки и программирование»

      тема: «Машинная графика в Turbo Pascal 7.0. Построение графика функции                                                                 

                                                       у=4хsin(x)»

 

 

 

 

                                                                                       Выполнила:

                                                                                       студентка группы III курса

                                                                                       специальности 2202

                                                                                       «Автоматизированные системы

                                                                                       обработки информации и         

                                                                                       управления»

                              

                                                                                       Научный руководитель:

                                                                                      

 

 

 

КУРСК – 2005

Содержание

Введение…………………………………………………………………………..3

     Глава I.  Построение графика функции……………………………………...4                                       

     Глава II. Основные сеансы работы с программой…………………………..7

Заключение……………………………………………………………………....10

Список литературы………………………………………………………………11

Приложение………………………………………………………………………12

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Введение 

   

     В данном  курсовом проекте мы должны  рассмотреть и изучить основные  аспекты работы с компьютерной  графикой.

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

     Во время  выполнения курсового проекта  мы ознакомились с:

  • инициализацией графического режима;
  • процедурами и функциями модуля Graph;
  • нахождением минимального и максимального значения функции;
  • расчетом масштабных коэффициентов;
  • переводом аналитических координат в экранные координаты;
  • особенностями построения системы координат;
  • выводом подписей к осям;
  • построением графика функции;
  • выводом текста в графическом режиме.

     Рассмотрим  построение графика функции y=sin(x) на заданном диапазоне значений [a;b] в среде программирования Borland Pascal 7.0.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава I. Построение графика функции                                       

 

     Задание: построить график функции y=4xsin(x) на заданном диапазоне значений [a;b].

Этапы решения задачи показывает следующая блок-схема (рис.1):


 



Вв


 




 



 


 




 



 



 



 



 


 

 

рис 1. Основные этапы решения задачи.

В программе используются следующие глобальные переменные:

  • ox,oy:integer – отступы для осей Oy и Ox соответственно;

  • px,py:integer – отступы слева, справа и сверху, снизу от границ экрана;

  • a,b:real – используются для хранения концов отрезка [a;b];
  • t:real – используется в случае, если a>b, чтобы поменять их местами;
  • ymin,ymax:real – хранят минимальное и максимальное значения функции;
  • mx,my:real – в них содержатся значения масштабных коэффициентов по осям Ox и Oy;

Также для решения  поставленной задачи используются следующие процедуры и функции:

  • MyGraphInit; – процедура, которая инициализирует графический режим. Параметры в нее не передаются. Содержит локальные переменные: gd – содержит значение соответствующего графического драйвера (определяется автоматически), gm – хранит значение графического режима (также определяется автоматически), ErCo – в этой переменной находится код ошибки.
  • Grafik (ox,oy:integer;a,b,mx,my:real); – процедура, рисующая график функции. В нее передаются следующие параметры: ox,oy - отступы для осей Oy и Ox соответственно; a,b - концы отрезка [a;b]; mx,my - масштабные коэффициенты по осям Ox и Oy. Локальные переменные: x1,y1, x2, y2 – эти переменные содержат координаты по оси Оx и по оси Оy двух точек, которые соединяются линией, h – шаг в соответствии с которым определяется следующая точка по оси Ox.
  • osi(ox,oy,px,py); - выводит оси на экран. В эту процедуру передаются: px,py – отступы от левой, правой и верхней, нижней границ экрана; ox,oy – отступы для осей Oy и Ox соответственно. В процедуре не используются локальные переменные.
  • podpisi (ymin,ymax,a,b,mx,my:real; ox,oy,px,py: integer); – эта процедура используется для того, чтобы вывести подписи к осям. В нее передаются следующие параметры: a,b – концы введенного пользователем отрезка [a;b]; ymin,ymax – минимальное и максимальное значения функции; mx,my – масштабные коэффициенты по осям Ox и Oy; px,py – отступы от боковых и верхней, нижней границ экрана; ox,oy – отступы для осей Oy и Ox. Также в данной процедуре используются локальные переменные: ymin1,ymax1 – крайние точки подписей по оси Oy; a1,b1 – границы подписей по оси Ox; y,x – хранят значение текущей точки подписи по осям Oy и Ox соответственно; s – используется для хранения значения подписи в строковом типе, чтобы вывести подпись на экран.
  • min(a,b:real):real; – при помощи данной функции вычисляется минимальное значение функции. Оперирует следующими параметрами: a,b - концы отрезка [a;b]. Локальные переменные: fmin – хранит текущее минимальное значение функции; x – точка по оси Ox, в которой вычисляется значение функции; y – текущее значение функции; h - шаг в соответствии с которым определяется следующая точка по оси Ox.
  • max(a,b:real):real; – функция, вычисляющая максимальное значение функции. В нее передаются следующие параметры: a,b - концы отрезка [a;b]. В функции содержатся локальные переменные: fmax – хранит текущее максимальное значение функции; x – точка по оси Ox, в которой вычисляется значение функции; y – текущее значение функции; h - шаг в соответствии, с которым определяется следующая точка по оси Ox.

 

Глава II. Основные сеансы работы с программой

 

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

     В начале  работы программы пользователю предлагается ввести значения a и b. После чего необходимо ввести эти значения (рис.2):

 

рис.2 Ввод диапазона значений [a;b].

 

Если введён диапазон [-66..-2], то выводится следующее сообщение: (рис.3)

 

 

  рис.3 Сообщение, которое  выдаётся при вводе диапазона [-66..-2]

                    

Программа по заданному диапазону [-50..50] выводит график следующего вида: (рис.4):

                     рис.4 График функции в диапазоне [-50..50]

Для диапазона [0.1..25] программа  выводит следующий график (рис.5):

                          рис.5 График функции в диапазоне [0.1..25]

 

Если пользователь вводит равные значения a и b, то на экран выдается    следующие сообщение (рис.6):

 

 

      рис.6 Сообщение, выдаваемое при вводе равных значений [a;b]

 

 

 

 

 

 

Заключение

     В курсовом  проекте мы построили график  функции y=4xsin(x) на заданном диапазоне значений [a;b].

     Нами было  углубленно изучено программирование  в графическом режиме на языке Borland Pascal 7.0. А в частности, мы ознакомились с возможностями, которые дает нам  машинное графика, реализованными процедурами и функциями модуля Graph, нахождением минимального и максимального значения функции, особенностями масштабирования, построения осей системы координат, вывода подписей к осям.

     В ходе  работы мы пришли к выводам, что среда программирования Borland Pascal 7.0 позволяет весьма эффективно работать с компьютерной графикой.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Список  литературы

 

  1. Марченко А. И. Программирование в среде Borland Pascal 7.0

     Киев: Век,  Киев:  Юниор,2000.480 с.

    1. Немнюгин  С. А. Turbo Pascal: Учебник. СПб.: Питер, 2001, 496 с.
    2. Немнюгин  С. А. Turbo Pascal:Практикум. СПб.: Питер, 2001, 256 с.
  1. Фаронов В. В. . Turbo Pascal 7.0. Практика программирования. 7-е изд. М.: Нолидж, 2001. 416 с.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение

 

 

Program kursovaya;

   uses crt,graph;

   var ox,oy,px,py:integer;

       a,b,t,z,ymin,ymax,mx,my:real;

   Procedure MyGraphInit;    {инициализирует графический режим}

      var gd,gm,ErCo:integer;

   begin

      gd:=detect;

      initGraph(gd,gm,'C:\bp\bgi');

      ErCo:=graphresult;

      if ErCo<>Grok

        then begin

                writeln('Ошибка инициализации графики');

                readln;

                halt(1);

             end;

   end;

   Procedure Grafik(ox,oy:integer;a,b,mx,my:real);{рисует

                                                            график}

      var y1,y2,x1,x2,h:real;                         

   begin

      h:=0.05;

      x1:=a;

      x2:=x1+h;

      setcolor(10);

      while x2<=b do

         begin

                      if x1>0

                        then y1:=4*exp(sin(x1)*ln(x1))

                      else if x1=0

                             then y1:=0

                           else y1:=4/exp(sin(x1)*ln(-x1));

                      if x2>0

                        then y2:=4*exp(sin(x2)*ln(x2))

                      else if x2=0

                             then y2:=0

                           else y2:=4/exp(sin(x2)*ln(-x2));

                      line(round(ox+mx*x1),round(oy-my*y1),round(ox+mx*x2),round(oy-my*y2));

            x1:=x1+h;

            x2:=x1+h;

         end;

   end;

   Procedure osi(ox,oy,px,py:integer);        {выводит оси}

   begin

     line(ox,round(getmaxy-py/2),ox,round(py/2));

     line(ox,round(py/2),ox-3,round(py/2)+7);

     line(ox,round(py/2),ox+3,round(py/2)+7);

     line(round(px/2),oy,round(getmaxx-px/2),oy);

     line(round(getmaxx-px/2),oy,round(getmaxx-px/2)-7,oy+3);

     line(round(getmaxx-px/2),oy,round(getmaxx-px/2)-7,oy-3);

     outtextxy(ox+3,oy+3,'0');

     outtextxy(ox,round(py/2)-13,'y');

     outtextxy(round(getmaxx-px/2)-13,oy+3,'x');

   end;

Procedure podpisi(ymin,ymax,a,b,mx,my:real;

                 ox,oy,px,py:integer);     {выводит подписи}

      var ymin1,ymax1,a1,b1,y,x:real;

          s:string;

   begin

      settextstyle(2,0,4);

      if ymin>0

        then ymin1:=0

      else ymin1:=ymin;

      if ymax<0

        then ymax1:=0

      else ymax1:=ymax;

      y:=ymin1;

      while y<=ymax1+0.01 do

        begin

           if (y<>0)

             then begin

                     setcolor(15);

             line(ox-5,round(oy-my*y),ox+5,round(oy-my*y));

                     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);

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