Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа(редакт).doc
Скачиваний:
5
Добавлен:
21.12.2018
Размер:
338.94 Кб
Скачать

8 Заключение

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

При выполнении задания, я уяснил постановку задачи, построил математическую модель задачи, составил алгоритм и перевел его на язык программирования Turbo Pascal.

Знакомство и практические навыки выполнения курсовой работы позволили мне лучше освоить и понять весь материал курса.

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

  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 г.

Приложение А

program Kursovaja;

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.

Приложение Б