Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
вариант7.docx
Скачиваний:
42
Добавлен:
19.10.2018
Размер:
10.6 Mб
Скачать

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

2.1. Блок-схема алгоритма подпрограммы левых прямоугольников (LPR)

2.2. Блок-схема алгоритма подпрограммы трапеций (TRAP)

2.3. Блок-схема алгоритма подпрограммы Симпсона (SIMP)

2.4. Блок-схема алгоритма подпрограммы Чебышева (CHEB)

3. ТЕКСТ ПРОГРАММЫ

program kurs;

uses crt,graph;

function f(x:real):real;

begin

f:=0.47*exp(ln(x)*0.746)

end;

procedure LPR(a,b:real; var s1:real; n:integer);

var h:real;

i:integer;

begin

h:=(b-a)/n;

s1:=0;

for i:=0 to n-1 do

s1:=s1+f(a+i*h);

s1:=s1*h;

end;

procedure TRAP(a,b:real; var s2:real; n:integer);

var h:real;

i:integer;

begin

h:=(b-a)/n;

s2:=f(a)+f(b);

for i:=1 to n-1 do s2:=s2+2*f(a+i*h);

s2:=s2*h/2;

end;

procedure SIMP(a,b:real; var s3:real; n:integer);

var h:real;

i:integer;

begin

h:=(b-a)/2/n;

s3:=f(a)+f(b);

for i:=1 to 2*n-1 do

begin

s3:=s3+2*f(a+i*h);

if i mod 2 = 1 then s3:=s3+2*f(a+i*h);

end;

s3:=s3*h/3;

end;

procedure CHEB(a,b:real; var s4:real; n:integer);

var x:array [1..5] of real;

var h,xx,s:real;

i,j:integer;

begin

x[1]:=0.083751;

x[2]:=0.312730;

x[3]:=0.500000;

x[4]:=0.687270;

x[5]:=0.916249;

h:=(b-a)/n;

s4:=0;

s:=0;

for i:=1 to n do

begin

xx:=a+h;

for j:=1 to 5 do

begin

s:=s+f(a+(xx-a)*x[j]);

end;

s4:=s4+s*(xx-a)/5;

s:=0;

a:=xx;

end;

end;

procedure grafik(xn,xk:real);

var gd,gm,xl,xp,yv,yn,xt,yt,y0,xt1,yt1,dxp,dyp,kx,ky,ym,xm,k,i,xmax:integer;

nol,j:integer;

st:string[6];

x,yy,dx,ymin,ymax,dy,mx,my:real;

bord1,bord2,bord3,bord4:integer;

begin

clrscr;

dx:=(xk-xn)/100;

ymin:=f(xn);ymax:=ymin;

for i:= 1 to 100 do begin

yy:=f(xn+dx*i);

if yy<ymin then ymin:=yy;

if yy>ymax then ymax:=yy;

end;

if ymin>0 then ymin:=0;

if ymax<0 then ymax:=0;

gd:=detect;

initgraph(gd,gm,'c:\BP\Bgi');

xm:=getmaxx; ym:=getmaxy;

SetBkColor(0); bar(0,0,xm,ym);

bord1:=60; bord2:=30; bord3:=17; bord4:=60;

kx:=9; ky:=8; k:=50;

xl:=bord1;

xp:=xm-bord3;

yv:=bord2;

yn:=ym-bord4;

dxp:=(xp-xl) div kx;

dyp:=(yn-yv) div ky;

dx:=(xk-xn)/kx;

dy:=(ymax-ymin)/ky;

xl:=xp-dxp*kx;

yn:=yv+dyp*ky;

mx:=(xp-xl)/(xk-xn);

my:=(yn-yv)/(ymax-ymin);

setcolor(1);

rectangle(xl,yv,xp,yn);

outtextxy(200,10,'Grafik function y=7.36*lg(x)+0.047');

settextjustify(2,2);

settextstyle(0,1,1);

for i:=0 to kx do begin

x:=xn+dx*i;

xt:=xl+dxp*i;

str(x:6:4,st);

line(xt,yn-3,xt,yn+3);

outtextxy(xt+4,yn+8,st);

end;

settextstyle(0,0,1);

for i:=0 to ky do begin

yy:=ymin+dy*i;

yt:=yn-dyp*i;

str(yy:6:4,st);

line(xl-3,yt,xl+3,yt);

outtextxy(xl-8,yt-4,st);

end;

if xn*xk<0 then begin

xt:=xl-trunc(xn*mx);

line(xt,yn,xt,yv);

end;

if ymax*ymin<0 then begin

yt:=yn+trunc(ymin*my);

line(xl,yt,xp,yt);

end;

dx:=(xk-xn)/k;

nol:=(-bord2+ym-bord4) div 2+14;

nol:=yn;

y0:=yn-trunc((f(xn)-ymin)*my);

for i:=0 to k do begin

x:=xn+dx*i;

yy:=f(x);

xt:=xl+trunc((x-xn)*mx);

yt:=yn-trunc((yy-ymin)*my);

circle(xt,yt,3);

if i<>0 then begin

line(xt,yt,xt1,yt1);

if i mod 5=0 then begin rectangle(xl+trunc((xn+dx*(i-5)-xn)*mx),y0,xl+trunc((xn+dx*(i)-xn)*mx),nol);

for j:=1 to 4 do

line(xl+trunc((xn+dx*(i-5+j)-xn)*mx),y0,xl+trunc((xn+dx*(i-5+j)-

xn)*mx),nol);

y0:=yt;

end;

end;

xt1:=xt;

yt1:=yt;

end;

readln;

closegraph;

end;

const n1=50;

var xn,xk,eps,pog,s1,s2,s3,s4,s0:real;

n:integer;

ff:text;

begin

clrscr;

write(' Read Xn = ');readln(xn);

write(' Read Xk = ');readln(xk);

write(' Read eps = ');readln(eps);

n:=0;

grafik(xn,xk);

clrscr;

assign(ff,'result.txt');

rewrite(ff);

writeln(ff,'Курсовая работа':43);

writeln(ff,'по курсу Информатика':47);

writeln(ff,'"Приближенное вычисление значения':54);

writeln(ff,'определенного интеграла"':50);

writeln(ff,'Выполнил: студент гр. ИБ Иванов И.И.':60);

writeln(ff,'Вариант 7 y=0.47*x^0.746':52);

writeln(ff,'Xn=':25,xn:3:3,' Xk=',xk:3:3,' Eps=',eps:6:4);

writeln(ff,'Результаты вычислений':47);

writeln(ff,'┌───────────┬───────────────────────────────────────────────┬────────────┐');

writeln(ff,'│ Число │ Методы вычисления │ Точность │');

writeln(ff,'│ ├───────────┬───────────┬───────────┬───────────┤ │');

writeln(ff,'│ разбиений │ Левых │ Трапеции │ Симпсона │ Чебышева │ вычисления │');

writeln(ff,'│ │ прямоуг-в │ │ │ │ │');

writeln(ff,'├───────────┼───────────┼───────────┼───────────┼───────────┼────────────┤');

writeln('Курсовая работа':43);

writeln('по курсу Информатика':47);

writeln('"Приближенное вычисление значения':54);

writeln('определенного интеграла"':50);

writeln('Выполнил: студент гр. ИБ Иванов И.И.':60);

writeln('Вариант 7 y=0.47*x^0.746':52);

writeln('Xn=':25,xn:3:3,' Xk=',xk:3:3,' Eps=',eps:6:4);

writeln('Результаты вычислений':47);

writeln('┌───────────┬───────────────────────────────────────────────┬────────────┐');

writeln('│ Число │ Методы вычисления │ Точность │');

writeln('│ ├───────────┬───────────┬───────────┬───────────┤ │');

writeln('│ разбиений │ Левых │ Трапеции │ Симпсона │ Чебышева │ вычисления │');

writeln('│ │ прямоуг-в │ │ │ │ │');

writeln('├───────────┼───────────┼───────────┼───────────┼───────────┼────────────┤');

s0:=0;

repeat

n:=n+n1;

LPR(xn,xk,s1,n);

TRAP(xn,xk,s2,n);

SIMP(xn,xk,s3,n);

CHEB(xn,xk,s4,n);

pog:=abs(s1-s0);

writeln(ff,'│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');

writeln('│',n:9,' │',s1:10:5,' │',s2:10:5,' │',s3:10:5,' │',s4:10:5,' │',pog:11:6,' │');

s0:=s1;

until pog<eps;

writeln(ff,'└───────────┴───────────┴───────────┴───────────┴───────────┴────────────┘');

writeln(ff,' ***Требуемая точность достигнута при ',n,' разбиениях ***');

writeln('└───────────┴───────────┴───────────┴───────────┴───────────┴────────────┘') ;

writeln(' ***Требуемая точность достигнута при ',n,' разбиениях ***');

close(ff);

readln;

end.