Идентификаторы программы, Блок-схема алгоритма, Текст исходной программы - Разработка программы вычисления определенных интегралов численными методами

Для указания соответствия обозначений переменных в формулах математической формулировки и их идентификаторов в программе сведем их в таблицу 1:

Таблица 1 - Идентификаторы программы

Обозначение параметров

Смысл параметра

В формулах

В программе

A

A

Левая граница отрезка интегрирования (нижний предел интегрирования)

B

B

Правая граница отрезка интегрирования (верхний предел интегрирования)

M

M

Число интервалов разбиения отрезка интегрирования

X

X

Аргумент подынтегральной функции

Блок-схема алгоритма

Блок-схема алгоритма процедуры Frame;

Блок-схема алгоритма процедуры Cursize;

Блок-схема алгоритма процедуры Hidcur;

Блок-схема алгоритма процедуры Nc;

Блок-схема алгоритма процедуры Wnd;

Блок-схема алгоритма процедуры Main;

Блок-схема алгоритма процедуры Help;

Блок-схема алгоритма процедуры pryam;

Блок-схема алгоритма процедуры cebys;

Блок-схема алгоритма процедуры Menu1;

Блок-схема алгоритма головной программы;

Текст исходной программы

Program kurs;

Uses crt, dos;

Label 2,3;

Type

Mas=array[1..4] of string;

Const

Menu:mas=('Справка','Метод прямоугольников','Метод Чебышева','Выход');

Var

Pk:boolean;

Pos:integer;

K:char;

-----------------Ramka--------------------

Procedure frame(x1,y1,x2,y2:byte);

Var

I:integer;

Const

A=#201;

B=#205;

C=#187;

D=#186;

E=#188;

F=#200;

Begin

Textcolor(15);textbackground(0);

Clrscr;

Gotoxy(x1,y1);

Write(a);

For i:=x1+1 to x2-1 do

Begin

Gotoxy(i, y1);write(b);

Gotoxy(i, y2);write(b);

End;

Gotoxy(x2,y1);write(c);

For i:=y1+1 to y2-1 do

Begin

Gotoxy(x1,i);write(d);

Gotoxy(x2,i);write(d);

End;

Gotoxy(x1,y2);write(f);

Gotoxy(x2,y2);write(e);

End;

--------------------Cursor----------------

Procedure cursize(s:word);

Var

Regs:registers;

Begin

With regs do

Begin

AH:=$01;

CH:=Hi(s);

Cl:=Lo(s);

Intr($10,regs);

End;

End;

-------------------Skryt cursor--------------

Procedure hidcur;

Begin

Cursize($2000);

End;

-------------Wernut cursor---------------

Procedure nc;

Begin

Cursize($0607);

End;

----------------Okno-------------------

Procedure wnd(x1,y1,x2,y2:byte);

Begin

Clrscr;

Textmode(3);

Frame(x1,y1,x2,y2);

Window(x1+1,y1+1,x2-1,y2-1);

Textbackground(0);

Textcolor(15);

Clrscr;

Gotoxy(1,1);

End;

------------------------Glavnoye menu---------------

Procedure main;

Var

Ch:char;

Begin

Clrscr;

Wnd(1,1,79,24);

Gotoxy(16,2);

Writeln('Министерство Образованя Республики Беларусь');

Gotoxy(13,3);

Writeln('Белорусский Национальный Технический Университет');

Gotoxy(17,6);

Writeln('Факультет горного дела и инженерной экологии');

Gotoxy(30,8);

Writeln('Курсовая работа');

Gotoxy(25,9);

Writeln('по дисциплине "Информатика"');

Gotoxy(20,10);

Writeln('тема:Программа численного интегрирования');

Gotoxy(17,14);

Writeln('Выполнил Шпиганович Д. С. ст. гр. 102822');

Gotoxy(17,17);

Writeln('Руководитель Ринкевич В. П');

Gotoxy(33,21);

Writeln('Минск 2014');

Gotoxy(18,22);

Writeln('Для продолжения нажмите любую клавишу...');

Hidcur;

Ch:=readkey;

End;

----------------------spravka--------------------

Procedure help;

Var

Ch:char;

Begin

Clrscr;

Wnd(1,1,79,24);

Gotoxy(33,2);

Writeln('СПРАВКА');

Gotoxy(1,6);

Writeln(' Данная программа позволяет вычислять');

Writeln(' интеграл вида I=cos(x)(2x^2-x+4)dx');

Writeln(' методом прямоугольников или методом');

Writeln(' Чебышева. Выберете в меню один из методов');

Writeln(' В каждом из методов введите данные по запросу');

Writeln(' программы. Если хотите вычислит интеграл');

Writeln(' другого вида с другими данными то зайдите в');

Writeln(' программу, найдите процедуру методов и поменяйте');

Writeln(' данный интеграл на свой.');

Gotoxy(15,22);

Writeln('Для продолжения нажмите любую клавишу...');

Hidcur;

Ch:=readkey;

End;

------------------sozdaniye menu---------------

Procedure menu1;

Var

I:integer;

Begin

Clrscr;

Wnd(15,9,55,16);

For i:=1 to 4 do

Begin

Gotoxy(5,i+1);

If i=pos then textbackground(1) else textbackground(0);

Write(menu[i]);

End;

Hidcur;

End;

--------------------samo resheniye zadaci--------------

Procedure pryam;

Label pr;

Var

Y, p, x, a, b, h:real;

I, m:integer;

Ch:char;

Begin

Pr:

Clrscr;

Wnd(1,1,79,24);

P:=0;x:=0;

Writeln('Метод прямоугольников');

Writeln('Интеграл I=cos(x)*(2*x^2-x+4)dx');

Write('Нижний предел интегрирования a=');readln(a);

Write('Верхний предел интегрирования b=');readln(b);

Write('Введите число интервалов m=');readln(m);

H:=(b-a)/m;

X:=a;

For i:=0 to m-1 do

Begin

Y:=h*(cos(x+0.5*h)*(2*sqr(x+0.5*h)-(x+0.5*h)+4));

P:=p+y;

X:=x+h;

End;

Writeln('Ответ I=',p:6:4);

Hidcur;

Writeln('Ввести новые значения(Y/N)?');

Ch:=readkey;

If (ch='y') or (ch='Y') then goto pr;

End;{procedure}

Procedure cebys;

Label ce;

Var

D, c, h, i, a, q, t, b, w, x:real;

E, m:integer;

Ch:char;

Begin

Ce:

Clrscr;

Wnd(1,1,79,24);

Writeln('Метод Чебышева');

Writeln('Интеграл I=cos(x)*(2*x^2-x+4)dx');

Write('Введите нижний предел a=');

Readln(q);

Write('Введите верхний предел b=');

Readln(b);

Write('Введите количества интервалов интегрирования m=');

Readln(m);

A:=q;t:=sqrt(2)/2;i:=0;h:=(b-a)/m;

For e:=1 to m do

Begin

W:=a+h;c:=(w+a)/2;

D:=(w-a)/2;

X:=c-d*t;i:=i+(cos(x)*(2*sqr(x)-x+4));

X:=c;i:=i+(cos(x)*(2*sqr(x)-x+4));

X:=x+d*t;i:=i+(cos(x)*(2*sqr(x)-x+4));

A:=w;

End;{for}

I:=i*h/3;

Writeln('Ответ I=',i:6:5);

Hidcur;

Writeln('Ввести новые значения(Y/N)');

Ch:=readkey;

If (ch='y') or (ch='Y') then goto ce;

End;

----------------glava programmy------------

Begin

Clrscr;

Main;

2:

Pos:=1;

Menu1;

K:=readkey;

While k<>#13 do

Begin

Case k of

#72:if pos=1 then pos:=4 else pos:=pos-1;

#80:if pos=4 then pos:=1 else pos:=pos+1;

End;

Menu1;

K:=readkey;

End;

Case pos of

    1:help; 2:pryam; 3:cebys; 4:exit;

End;

Goto 2;

3:

End.

Похожие статьи




Идентификаторы программы, Блок-схема алгоритма, Текст исходной программы - Разработка программы вычисления определенных интегралов численными методами

Предыдущая | Следующая