Вычисление интеграла методом Ньютона-Котеса (теория и программа на Паскале)
Рефераты >> Кибернетика >> Вычисление интеграла методом Ньютона-Котеса (теория и программа на Паскале)

outtextxy(80,300,' Выход ');

end

else

begin

outtextxy(80,130,'Menu of entering the parameters');

outtextxy(80,140,' of integral');

outtextxy(80,180,' Put in the number of units ');

outtextxy(80,210,' Enter the bounds of integral');

outtextxy(80,240,' Enter function');

outtextxy(80,270,' Count integral');

outtextxy(80,300,' Exit ');

end;

helpwin(ea);

if ea mod 2 =0 then

begin

outtextxy(360,140,' Нажмите Enter для');

outtextxy(360,155,' ввода количества узлов');

end

else

begin

outtextxy(360,140,' Press Enter to put');

outtextxy(360,155,' in the number of units');

end;

repeat

if keypressed then

begin

c:=readkey;

case c of

#80:

x:=x-1;

#72:

x:=x+1;

end;

setfillstyle(1,11);

case (abs(x) mod 5) of

0:

begin

bar(80,170,330,190);

setfillstyle(1,15);

bar(80,200,330,220);

bar(80,290,330,310);

helpwin(ea);

if ea mod 2 =0 then

begin

outtextxy(360,140,' Нажмите Enter для');

outtextxy(360,155,' ввода количества узлов');

end

else

begin

outtextxy(360,140,' Press Enter to put');

outtextxy(360,155,'in the number of units.');

end;

end;

1:

begin

bar(80,200,330,220);

setfillstyle(1,15);

bar(80,170,330,190);

bar(80,230,330,250);

helpwin(ea);

if ea mod 2 =0 then

begin

outtextxy(360,140,' Нажмите ENTER для ввода');

outtextxy(360,155,'приделов интегрирования.');

end

else

begin

outtextxy(360,140,' Press ENTER to put in');

outtextxy(360,155,'the bounds of integral.');

end;

end;

2:

begin

bar(80,230,330,250);

setfillstyle(1,15);

bar(80,200,330,220);

bar(80,260,330,280);

helpwin(ea);

if ea mod 2 =0 then

begin

outtextxy(360,140,' Нажмите ENTER для ввода');

outtextxy(360,155,'функции.');

end

else

begin

outtextxy(360,140,' Press ENTER to enter');

outtextxy(360,155,'function.');

end;

end;

3:

begin

bar(80,260,330,280);

setfillstyle(1,15);

bar(80,230,330,250);

bar(80,290,330,310);

helpwin(ea);

if ea mod 2 =0 then

begin

outtextxy(360,140,' Нажмите ENTER для начала');

outtextxy(360,155,'подсчета самого интеграла.');

end

else

begin

outtextxy(360,140,' Press ENTER to begin');

outtextxy(360,155,'integral calculations.');

end;

end;

4:

begin

bar(80,290,330,310);

setfillstyle(1,15);

bar(80,260,330,280);

bar(80,170,330,190);

helpwin(ea);

end;

end;

setcolor(12);

if ea mod 2 =0 then

begin

outtextxy(80,130,'Меню ввода параметров нахождения');

outtextxy(80,140,' интеграла');

outtextxy(80,180,' Ввести количество узлов(n)');

outtextxy(80,210,' Ввести приделы интегрирования');

outtextxy(80,240,' Ввести функцию');

outtextxy(80,270,' Считать интеграл');

outtextxy(80,300,' Выход ');

end

else

begin

outtextxy(80,130,'Menu of entering the parameters');

outtextxy(80,140,' of integral');

outtextxy(80,180,' Put in the number of units ');

outtextxy(80,210,' Enter the bounds of integral');

outtextxy(80,240,' Enter function');

outtextxy(80,270,' Count integral');

outtextxy(80,300,' Exit ');

end;

end;

until c=#13;

c:='t';

case (abs(x) mod 5) of

0:

begin

wwodn(ea,n);

end;

1:

wwodab(ea,a,b);

2:

begin

helpwin(ea);

setcolor(15);

setfillstyle(1,9);

bar(70,200,340,300);

rectangle(75,205,335,295);

rectangle(77,207,333,293);

if ea mod 2 =0 then

begin

outtextxy(86,227,'Введите функцию f(x):');

setcolor(14);

outtextxy(360,140,' В этом окне необходимо');

outtextxy(360,155,' ввести саму функцию.');

outtextxy(360,200,'Примечание: 1.данная программа ');

outtextxy(360,215,'распознает только ');

outtextxy(360,230,'элементарные функции.');

outtextxy(360,245,'(x,cos(x) и др.)');

outtextxy(360,260,’2.При неправильном вводе’);

outtextxy(360,275,’по умолчанию f(x)=x;’);

outtextxy(360,275,’3.Если после нажатия ENTER’);

outtextxy(360,275,’ничего не произошло, то

outtextxy(360,275,’занововведите функцию.’);

end

else

begin

outtextxy(86,227,'Enter function f(x):');

setcolor(14);

outtextxy(360,140,' In this window you have');

outtextxy(360,155,' to enter the function.');

outtextxy(360,200,'Note: This version of ');

outtextxy(360,215,'programm can indentify only ');

outtextxy(360,230,'simple functions, as');

outtextxy(360,245,'x,cos(x) and other.');

end;

setfillstyle(1,0);

bar(86,255,330,275);

readln;

gotoxy(13,17);

read(st);

writeln(st);

readln;

end;

3:if (n<=0)or(a=b)or(st='') then

error(ea);

4:

halt;

end;

until (n>0)and(a<>b)and(st<>'')and((abs(x) mod 5)=3);

end;

procedure win3(ea:word;n:integer;a,b:real;int:double;f:string;h:array of double;var k:word);

{Последнее окно просмотра результатов}

var

i:integer;

c:char;

x:longint;

p1,p:string;

y:array[0 16] of double;

begin

funktia(n,a,b,y,1,f);

f:='('+f+')'+'dx =';

repeat

x:=-600000;

newsc(ea);

setfillstyle(1,2);

bar(170,120,490,360);

setcolor(14);

rectangle(175,125,485,355);

rectangle(177,127,483,353);

settextstyle(0,0,0);

setfillstyle(1,1);

bar(180,170,480,190);

if ea mod 2 =0 then

begin

outtextxy(180,135,Функция распознана.Интеграл подсчитан.');

outtextxy(180,180,' Посмотреть значение интеграла');

outtextxy(180,210,'Посмотреть коэффициенты Ньютона-Котеса');

outtextxy(180,240,' Посмотреть значения функции');

outtextxy(180,270,' Посмотреть график' );

outtextxy(180,300,' Считать снова');

outtextxy(180,330,' Выход ');

end

else

begin

outtextxy(180,135,'Function Indentified.Integral counted.');

outtextxy(180,180,' View value of integral');

outtextxy(180,210,' View Newton-Cotes coefficients');

outtextxy(180,240,' Veiw values of function');

outtextxy(180,270,' View graphik ' );

outtextxy(180,300,' Count again');

outtextxy(180,330,' Exit ');

end;

repeat

if keypressed then

begin

c:=readkey;

case c of

#80:

x:=x-1;

#72:

x:=x+1;

end;

setfillstyle(1,1);

case (abs(x) mod 6) of

0:

begin

bar(180,170,480,190);

setfillstyle(1,2);

bar(180,200,480,220);

bar(180,320,480,340);

end;

1:

begin

bar(180,200,480,220);

setfillstyle(1,2);

bar(180,170,480,190);

bar(180,230,480,250);

end;

2:

begin

bar(180,230,480,250);


Страница: