Автор работы: Пользователь скрыл имя, 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. Закрепил свои знания в работе с процедурами 
и функциями. В применение основных свойств 
языка программирования. Я узнал о определённых 
преимуществах программирования.             
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Информация о работе Разработать программу нахождения корня уравнения методом Симпсона