Автор работы: Пользователь скрыл имя, 14 Мая 2012 в 09:18, курсовая работа
Pascal — это императивный язык программирования, разработанный Никлаусом Виртом в 1970 в качестве языка обучения структурному программированию. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в байт-код, подобно языку Java. Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.
Введение………………………………………………………………3
1 Постановку задачи…………………………………………………4
2 Математическую модель для решения задачи………….………5
3 Блок-схему решения задачи, выполненную с учетом требований ГОСТ…………………………………………………………………………..9
4 Исходный текст программы на Pascal 7.0 с обязательными комментариями………………………………………………………………20
5 Руководство пользователя………………………………………23
6 Результаты работы программы для различных вариантов…………………………………………………………………….24
7 Тестовые примеры для всех ветвей работы программы Выводы по курсовой работе………………………………………………………..
Выводы по курсовой работе…………………………..………..28
Список использованной литературы………………..…………….29
3) Функция simpson - вычисляет интеграл методом Симпсона;
4) Процедура norm - вычисляет порядок числа, необходимый для
построения графика функции с учётом масштаба;
5) Процедура out_gr - строит график функции на экране а
графическом режиме с учётом масштаба.
Основная (главная) программа должна осуществлять
ввод значения границ отрезков, вызов
функций и процедур вычисления и вывод
результатов на экран.
3 Блок-Схема Алгоритма
Рисунок 1 - Основная программа.
Рисунок 2 - Function f.
Рисунок 3 - Function simpson
Рисунок 4 - Procedure
norm.
Рисунок 5 - Procedure out_grp.
Исходный Текст Программы На Pascal 7.0 С Комментариями.
program kursov;
uses crt,graph;
var a,b:real; { Границы отрезка }
r,r2:real; { Предыдущее и текущее приближенные значения интеграла}
n:integer; { Счетчик }
function f(x:real):real; { Интегрируемая функция }
begin
f:=(1/x)*ln(x+1);
end;
function
simpson(a,b:real;n:integer):
var s:real; { Полученная сумма }
h:real; { Шаг }
m:integer; { Счетчик }
mn:integer; { Очередной множитель }
begin
h:=(b-a)/(n-1); { Рассчитывается шаг }
s:=f(a)+f(b)/4; { Начальное значение шага }
mn:=4; { Первый мнодитель - 4 }
for m:=1 to n-2 do begin
s:=s+mn*f(a+h*m);
if (mn=4) then mn:=2 else mn:=4; { Именение мноителя 2<>4 }
end;
simpson:=s*h/3; end; { Возвращается вычисленное значение }
{ Процедура вычисления порядка числа }
procedure norm(a:real);
var n:real;
begin
{ Если число слишком мало - возвращается ноль }
if (a<0.00001) then n:=0
else begin
if (a<1) then begin
n:=1;
repeat
a:=a*10;
n:=n/10;
until (trunc(a)<>0);
end else begin
{ Если число больше единицы }
n:=1;
repeat
a:=a/10;
n:=n*10;
until (trunc(a)=0); end; end;
a:=n;
end;
{ Построение графика функции }
procedure
out_grp(xmin,xmax,ymin,ymax:
var
drv,mode:integer;
mx,my:real; { Масштабы по осям }
xx,yy:real; { Текущие координаты }
sx:real; { Шаг по оси X }
dltx,dlty:integer; { Приращение на графике при смещении графика }
s:string; { Строка }
begin
{ Инициализация графики }
drv:=VGA;
mode:=VGAHi;
initgraph(drv,mode,'');
{ Выяснение порядков минимумов и максимумов }
norm(xmax);
norm(ymax);
norm(ymin);ymin:=ymin/10;
norm(xmin);ymin:=ymin/10;
if (xmin/xmax)>0.01 then dltx:=20 else dltx:=0;
if (ymin/ymax)>0.01 then dlty:=20 else dlty:=0;
{ Расчет масштабов }
mx:=500/(xmax-xmin);
my:=400/(ymax-ymin);
{ Расчет приращения по X }
sx:=(xmax-xmin)/550;
{ Вывод системы координат }
settextjustify(1,1);
xx:=xmin;
repeat
setcolor(1);
line(trunc(40+mx*(xx-xmin)+
str(xx:4:2,s);
setcolor(11);
outtextxy(trunc(40+mx*(xx-
xx:=xx+50*sx;
until (xx>(xmax+50*sx));
yy:=ymin+(ymax-ymin)/20;
repeat
setcolor(1);
line(41,trunc(470-my*(yy-ymin)
str(yy:4:2,s);
setcolor(11);
outtextxy(20,trunc(470-my*(yy-
yy:=yy+(ymax-ymin)/10;
until (yy>(ymax+(ymax-ymin)/10));
line(40,0,40,480);
line(0,470,640,470);
line(40,0,38,10);
line(40,0,42,10);
line(640,470,630,472);
line(640,470,630,468);
{ Вывод графика }
xx:=xmin;
repeat
yy:=f(xx);
putpixel(trunc(40+mx*(xx-
xx:=xx+sx;
until (xx>xmax);
outtextxy(300,10,' Press ESC to continue ');
outtextxy(220,50,'f=(1/x)/ln(
outtextxy(30,10,'y');
outtextxy(630,475,'x');
settextstyle(0,0,2); setcolor(12); outtextxy(300,70,'График функции);
repeat until (readkey=#27);
closegraph;
end;
{ Основная программа }
begin
clrscr;
a:=1;
b:=25;
{ Выводится график функции }
out_grp(a,b,f(b),f(a));
{
Вычисляется интеграл по
n:=3;
r:=simpson(a,b,n); { Начальное значение }
repeat
r2:=r; { Запоминается предыдущее значение }
n:=n+2; { Увеличивается количество шагов }
r:=simpson(a,b,n); { Рассчитывается новое значение
}
until (abs(r-r2)<0.00001); );{ Повторяется до достижения необходимой
{ Вывод результатов }
writeln;
writeln(' Резльтат по методу Симпсона равен: ',r:6:3);
writeln(' dla для получения необходимой точности интервал был разбит на ');
writeln(n, 'отрезков');
readln; end.
Руководство
пользователя.
После
запуска программы выводиться график функции. После
нажатия клавиши ESC отображается значение
интеграла, полученное заданным методом
Симпсона.
Результаты
работы программы для различных
вариантов
Результат по методу Симпсона равен: -0,546
Для получения необходимой точности интервал был разбит на 23 отрезка.
Анализ полученных в ходе
Выводы.
В процессе выполнения данной курсовой работы получил навыки работы с языком программирования Турбо-Паскаль. Данная работа выполнена в соответствии с заданием и в полном объёме.
Освоил
работу в графическом режиме Pascal
7.0. Закрепил свои знания в работе с процедурами
и функциями. В применение основных свойств
языка программирования. Я узнал о определённых
преимуществах программирования.
Информация о работе Разработать программу нахождения корня уравнения методом Симпсона