Описание процедуры risosei.
· В данной процедуре указываются переменные, с которыми придётся в ней работать. · Задаются параметры линий и цвет, количество линий сетки и расстояние между ними. · Используя цикл, рисуем координатную сетку. · Задав начальное значение икса и координату начала координатной сетки, рисуем в цикле координатную ось (Ох). Затем выравниваем значения всех указанных иксов около координатной оси. · Задав начальное значение игрека и координату начала координатной сетки, рисуем в цикле координатную ось (Oу). Затем выравниваем значения всех указанных игреков около координатной оси.
ОПИСАНИЕ ПРОГРАММЫ
Программа предназначена для построения графика интерполяционного полинома по формулам кусочно-линейчатой интерполяции. Работа начинается с задавания переменных используемых в данной программе. В качестве переменных выступают: значения иксов и игреков, которым в процессе программы присваиваются значения. Далее идет описание глобальных переменных, необходимых для построения графика, оцифровки осей. За описанием переменных идет процедура init. В процедуре init подключается и проверяется графический модуль. Gr_driver:=detect; error_code:=graphresult; if error_code<>0 then;
Если в графическом модуле присутствует ошибка, то с помощью оператора halt выполняется выход из программы, если же всё в порядке, то программа продолжает выполнение последующих процедур. Далее следует процедура linii. Она служит для построения таблицы значений. C помощью функции линий:line(40+n,100,40+n,160); line(40,100,565,100); line(40,130,565,130); line(40,160,565,160);
После процедуры linii следует процедура zapol_st. В этой процедуре присваиваются значения иксам и игрекам, данные по заданию: x0:=110;x1:=120;x2:=130;x3:=140;x4:=150;x5:=160; y0:=0.23;y1:=0.56;y2:=0.15;y3:=0.1;y4:=0.27;y5:=0.2; И по координатам заполняет этими значениями таблицу, построенную в процедуре linii посредством функции outtextxy. Затем следует процедура gr, в которой, пользуясь формулой кусочно-линейчатой интерполяции, строятся линии. При этом так же устанавливается цвет этих линий, построение ведётся по точкам (пикселям). Так строится 1вая линия графика интерполяции. x:=110; until x>160; b:=90; Repeat y:=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1 PutPixel (191+round(x), round(a+(y*(-b))),1); Delay (30); x:=x+1; a:=380;
За процедурой gr следует процедура risosei. В этой процедуре строится координатная сетка, производится оцифровка осей. Так строятся лини по горизонтали и вертикали в этой координатной сетке: dx:=Round((600-250)/7); dy:=Round((450-200)/7); Рисование координатной оси производится так: line(250,200,250,450); line(250,450,600,450); Заметим, что нужно задать изменение шага у иксов и игреков (x:=x+10; y:=y+0.1) и выровнять эти значения у координатной оси (hx:=hx+50; hy:=hy-dy), для этого используем локальные переменные (которые задали в данной процедуре). После окончания последний процедуры мы вызываем все процедуры, используемые в программе: Begin init; linii; zapol_st; risosei; gr; readln; End. И при запуске программы мы наблюдаем на мониторе график интерполяционного полинома и таблицу значений (Приложение С). Затем следует конец программы.
ЗАКЛЮЧЕНИЕ
В результате проведения курсовой работы была разработана на языке Turbo Pascal программа по расчёту и построению графика интерполяционного полинома. При выполнении задания, я уяснил постановку задачи, построил математическую модель задачи, составил алгоритм и перевел его на язык программирования Turbo Pascal. Знакомство и практические навыки выполнения курсовой работы позволили мне лучше освоить и понять весь материал курса.
СПИСОК ЛИТЕРАТУРЫ
1. ГОСТ 19.701-90. Единая система программной документации. Схемы алгоритмов, программ, данных и систем. 2. ГОСТ 19.002-80. Единая система программной документации. Схемы алгоритмов и программ. Правила выполнения. 3. ГОСТ 19.003-80. Единая система программной документации. Схемы алгоритмов и программ. Обозначения условные графические. 4. ГОСТ 19.402-78. Единая система программной документации. Описание программы. 5. Фараонов, В. В. Турбо Паскаль. Наиболее полный курс: учеб. пособие для опытных программистов / В. В. Фараонов. – М.: Нолидж, 2001. – 1033 с. 6. Волков Е. А. Численные методы, М.: Наука, 1982г. 7. Самарский А. А. Введение в численные методы, М.: 1982 г. 8. Д. Каханер, К. Моулер, С. Нэш Численные методы и программное обеспечение (перевод с английского), М.: 1998 г. 9. Буслов В. А., Яковлев С. Л. Численные методы I и II, Санкт-Петербург: 2001 г.
Приложение А uses crt, graph; var i,a,b,n:integer; x,x1,x2,x3,x4,x5,x0: real; y,y1,y2,y3,y4,y5,y0: real; t1:string;
procedure init; {процедура подключение графического модуля} var gr_driver, gr_mode, error_code:integer; begin Gr_driver:=detect; {Автоматически определяем графический драйвер} initgraph(gr_driver,gr_mode,''); {Инициализация графического режима - файл с дравером должен располагаться в текущем каталоге} error_code:=graphresult; {Проверяем ошибки} if error_code<>0 then {установление правильности графика} begin writeln('сообщение об ошибке',grapherrormsg(error_code)); halt; { Выход из программы} end; end;
procedure linii; {процедура постройки линий для таблицы} begin n:=0; for i:=1 to 8 do
begin line(40+n,100,40+n,160); {рисует параллельные линии по вертикали} n:=n+75; {расстояние между линиями} end; line(40,100,565,100); {рисует линию по горизонтали} line(40,130,565,130); {рисует линию по горизонтали} line(40,160,565,160); {рисует линию по горизонтали} end;
procedure zapol_st; {процедура заполнения таблицы, данными по заданию значениями} begin setcolor(3); {задаём цвет (Cyan- бирюзовый)} x0:=110;x1:=120;x2:=130;x3:=140;x4:=150;x5:=160; y0:=0.23;y1:=0.56;y2:=0.15;y3:=0.1;y4:=0.27;y5:=0.2; outtextxy(125,150,'0.23'); {заполнение таблицы значениями Y} outtextxy(200,150,'0.56'); {заполнение таблицы значениями Y} outtextxy(275,150,'0.15'); {заполнение таблицы значениями Y} outtextxy(350,150,'0.1'); {заполнение таблицы значениями Y} outtextxy(425,150,'0.27'); {заполнение таблицы значениями Y} outtextxy(500,150,'0.2'); {заполнение таблицы значениями Y} outtextxy(125,120,'110'); {заполнение таблицы значениями Х} outtextxy(200,120,'120'); {заполнение таблицы значениями Х} outtextxy(275,120,'130'); {заполнение таблицы значениями Х} outtextxy(350,120,'140'); {заполнение таблицы значениями Х} outtextxy(425,120,'150'); {заполнение таблицы значениями Х} outtextxy(500,120,'160'); {заполнение таблицы значениями Х} outtextxy(70,120,'x'); {заполнение таблицы значениями Х} outtextxy(70,150,'y'); {заполнение таблицы значениями Y} end;
procedure gr; {процедура построения графика интерполяционного полинома} begin x:=110; {координата начала для 1вой линии} a:=380; {выравнивание по координатам на оси ОY} b:=90; {выравнивание по координатам на оси ОY} repeat y:=(x-x1)/(x0-x1)*y0+(x-x0)/(x1-x0)*y1; {формула линейной интерполяции } PutPixel (191+round(x), round(a+(y*(-b))),1); {строим прямую по точкам синим (Blue) цветом} Delay (30); {приостанавливает программу на 30 миллисекунд} x:=x+1; {скорость рисования одной точки} until x>160; x:=160; {координата начала для 2вой линии} a:=120; {выравнивание по координатам на оси ОY} b:=85; {выравнивание по координатам на оси ОY} repeat y:=(x-x2)/(x1-x2)*y1+(x-x1)/(x2-x1)*y2; {формула линейной интерполяции } PutPixel (191+round(x), round(a+(y*(-b))),2); {строим прямую по точкам зелёным (Green) цветом} Delay (30); {приостанавливает программу на 30 миллисекунд} x:=x+1; {скорость рисования одной точки} until x>210; x:=210; {координата начала для 3ий линии} a:=363; {выравнивание по координатам на оси ОY} b:=90; {выравнивание по координатам на оси ОY} repeat y:=(x-x3)/(x2-x3)*y2+(x-x2)/(x3-x2)*y3; { формула линейной интерполяции } PutPixel (191+round(x),round(a+(y*(-b))),4); {строим прямую по точкам красным (Red) цветом} delay(30); {приостанавливает программу на 30 миллисекунд} x:=x+1; {скорость рисования одной точки} until x>260; x:=260; {координата начала для 4ой линии} a:=590; {выравнивание по координатам на оси ОY} b:=85; {выравнивание по координатам на оси ОY} repeat y:=(x-x4)/(x3-x4)*y3+(x-x3)/(x4-x3)*y4; {формула линейной интерполяции } PutPixel (191+round(x),round(a+1+(y*(-b))),5); {строим прямую по точкам фиолетовым (Magenta) цветом} delay(30); {приостанавливает программу на 30 миллисекунд} x:=x+1; {скорость рисования одной точки} until x>308; x:=308; {координата начала для 5ой линии} a:=280; {выравнивание по координатам на оси ОY} b:=70; {выравнивание по координатам на оси ОY} repeat y:=(x-x5)/(x4-x5)*y4+(x-x4)/(x5-x4)*y5; {формула линейной интерполяции } PutPixel (191+round(x),round(a+(y*(-b))),6); {строим прямую по точкам коричневым (Brown) цветом} delay(30); {приостанавливает программу на 30 миллисекунд} x:=x+1; {скорость рисования одной точки} until x>358; end;
procedure risosei; {продцедура построения координатной сетки, и координатных осей} var dx,dy,lx,ly,hx,hy:integer; begin SetLineStyle(1,0,0); {задаём текущие параметры линий} SetColor(3); {задаём цвет линий (Cyan- бирюзовый)} dx:=Round((600-250)/7); {количество линий по горизонтали} dy:=Round((450-200)/7); {количество линий по вертикали} line(250,200,250,450); {рисовании оси ОY по координатам} line(250,450,600,450); {рисовании оси ОХ по координатам} lx:=250; {расстановка линий координатной сетки по вертикали с данной координаты} ly:=200; {расстановка линий координатной сетки по горизонтали с данной координаты} for i:=1 to 7 do begin {построение координатной сетки} lx:=lx+dx; {соединяет линии построенные по горизонтали и вертикали} line(lx,200,lx,450); {ограничивает линии в данных диапазонах (по вертикали)} line(250,ly,600,ly); {ограничивает линии в данных диапазонах (по горизонтали)} ly:=ly+dy; {расстояние между линиями координатной сетки} end; setcolor (7); {задаём цвет значений на осях координатной сетки (LightGray - светло-серый)} hx:=225; {координата начала координатной сетки по Ox} x:=100; {начальное значение Х-ов} for i:=1 to 8 do begin { построение оси Ох} Str(x:5:0,t1); {записывает результат в строку t1 с установленным типом Х-ов} OutTextXY(hx,460,t1); {выравнивание по вертикали все значения Х-ов } x:=x+10; {увеличивает значение Х-ов на 10} hx:=hx+50; {расстояние между иксами на координатной сетке} end; hy:=447; {координата начала координатной сетки по Oy} y:=0; {начальное значение Y-ов} for i:=1 to 8 do begin { построение оси Оy} Str(y:5:2,t1); {записывает результат в строку t1 с установленным типом Y-ов} OutTextXY(210,hy,t1); {выравнивание по горизонтали все значения Y-ов } y:=y+0.1; {увеличивает значение Y-ов на 0.1} hy:=hy-dy; {расстояние между игреками на координатной сетке} end; end;
begin {вызов процедур используемых в программе} init; linii; zapol_st; risosei; gr; readln; end.
Приложение Б
Блок схема основной программы:
Процедура init
Процедура linii
Процедура zapol_st
Процедура gr
Процедура risosei
Приложение С
Популярное: Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (329)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |