Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.07.2024

Просмотров: 115

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

TESTBbOCKs

'BEGIN*

*REAl/A,B.,

integer*;*.,

’READ* 'PROCEDURE *F(X);,

’VAuUE'X.,

*REAu*X.,

P:-XXX2.,

lNPUT(t,A,8,N).,

OUTPUT(B,'(E’),SIMPSON(r ,A,B,N))

'endtestblock '

’END’PROGRAMM,,

Массив исходных данных:

+0 ,0 .

+3,0.

+100.

Результат вычислений +90000D0 +01 , равный +9,0 удовлетво­ ряет точное решение +9,0 с абсолютной точностью.2

2.;f,4, Формула Симпсона (второй вариант)

Вычислить определенный интеграл

г5

 

\

х {I

t / ) d I

 

J 2.

 

при ер s =

Ю -^ и П П

я 20.

,

Решение.

Исходная программа:.

-С1-

ТРАНСЛЯТОР »ЭИ-3

’BEGIN ’

’PROCEDURE,’SIKPf®N(A,B,F.EPS,NN)RESULTj(I,INT)'i,

i

127

'VAlUE'a .B.EP.'S.NN.,

’REAL’A.B.EPS.I.InT.,

’INTEGER’NN.,

’REAL’'PROCEDURE Y.,

'b e g i n

’REAR’D,?),GO,Gi,G2,GS,G4,AO,A1,A2., ’imt eger’m .n .,

’ARRAY’S'(/1:nn,14BO., INT:*I:-0,0,, M:-Ni-0,,

GO:«F(a ).,

G2l"F( (A+B)/2)

G4:-F{B).,

A0:-(B-A)X(G0+4XG2+G4)/2., AA:D:»2XIN., h:-(B-A)/H/D., Gi:«F(\+hX(4XM+l)).,

G8:»F (A+HX(4XM+3)).,

Alt“HX(G0+4XGl+G2).,

A2:-M(G2+4XG3+G4).,

’IF *ABS(i-AO/(A1»A2)) 'GT'EPS/D’ThEN’ ’BEGIN’

MJ-2XM.,

Ns-M+l.,

’IF ’N*GT*NN ‘THEN ’’GOTO ’FIN.,

AOl-Al.,

S(/N,i/):-A2.,

s(/N,2/)':-G3.,

S(/U,3/):»G4.,

G41-G2.,'

G2s»Gl.,

g o t o aa

e n d ’’e l s e \

’BEGIN*

1NT;»INT+(A1+A2)/3.,

M:»M+1.,

I:»A+MX(B-A)/D.,

BBs’lF ’H»2XDIV(H,2)’THEN’

be g i n

M:»DIV(M,2).,

U:»N-1.,

g o t obb

e n d ’.,

if m»/i o r *n*7o t h e u

begin.’

AO:» P(/N,l/).,

GOS-G4.,

G2:-C(/N,2/).f

G4:»SC/N>3/5 •»

’GOTO‘AA

’ENO’

’END’.,

FIN:

•ЕПО’аМРВОЧ.,

129


testblock:

b e g in

’KFAL’A,B,EPS,I,INT.,

intfgfk' nh.,

hFAu” PKOCE1)UKF’F(X)., ’value’*.,

-02-

' kealx .,

F s»XX(i+XXX2).,

A:-2.0.,

Bs-5.0.,

EPsj-ю-е.,

Ml - 20.,

UIMPLON (A,B,F ,FPS, NN)RFSULT s(I,INT),, ouTPUT(3,’(E’),i,m)

ehdteutblock.

enuprogramm.,

Результат вычислений

 

 

+4999999

+01

 

+1627499

+03

удовлетворяет точному

решению +162,75 с погрешностью

ePS

- 162,75 - 162,7499 = 0,0001,

т.е. фактически ер s

= Ю " \

 

130


2Л . 5. Модифицированный метод Симпсона

В ы ч и с л и т ь определенный шгееграл

 

\ х (I + х2) ii х

при ер S = 10-5 .

2

Решение. Исходная программа:

 

- 01-

 

ТРАНГЛЯТОР МЗИ-5

be g i n'

;

. ‘REAP’‘PROCEDURE’S1HPSCK(P,А ,В,EPS).,

*VAuUE*A,B,EPB.,

‘REAu’A.B.EPS.,

'REAь’‘PROCE CURE *F., ‘BEGIN’

’KEAu’ABsAkEA,EST,FA,PM,FB,DA.SX ,EST1,SUM,Fi., ‘iNTEGEk’bVu.,

‘ARRAY’DX,EP HP.XS.X3 ,F2,FS,F4,FMP ,FBP ,E2T2,E ST3(/l :30/)

,PVAb(/i:30,i:3/).,

‘INTEGEк*‘ARRAY‘RTkN(/1:30/).,

’SWITCH ’fiETUK4:-RlfR2,R3.,

 

START :1(V u!"0.,

 

OA :•B-A.,

-

ABSAREA :»EST:»i.O.,

 

FA:*F(A).,

 

FB:»F(B).,

 

?M:*4.0XF ((A+B)/£.0).,

 

RFCOR:bVU-UVi,+i.,

 

cX(/bVL/) :-l)A/B.O.,

 

131

SX:«OT(/LVL/)/6.0,,

Fl:-4.0XF(A*DX(/bVL/)/2.0).,

X2(/LVL/):-A+DX(/LVi,/),,

F2(/bVb/)s-F(X2(/LVb/)).t

X3(/bVb/) :-X2(/LVL/) +DX(/bVb/).,

Гг(/ЬУЬ/):-р(ХЗ(/ЬУь/))., EPPP(/LVL/) :«EPs .,

F4(/bVb/) S-4.0XF (X3(/LVL/)+DX(/LVb/)/2.0).,

FMP(/LVb/);-FM.,

FBP(/LVb/y:-FB., '

EETi:»(FA+Fl+F2(/LVb/))XSX,,

EoT2(/LVb/) :*(F£(/bVb/) +F3(/bVl./)+FM)XSX,,

EbT8(/bVb/) :»(F3(/LVL/)+F4(/lA'b/)+FB)XSX., .

EUM:<*E;,Ii+E;:T2(/bVb/)+EbT3(/i.Vb/).,

ABSAMA:-ABEAHEA-ABS(EST)4ABS(ESTi)+ABb(EST2(/bVL/))+AB

/(EST3(/LVL/)).,

’lP’((ABS(EST~SUM) "LB'ВЕЕР (/LVb/) iabsahea )*AND *(EST«/1. 0)) *0.K*(bVb "ge *30) ’t h e n *

begin'*

UP :bVbs«l,Vb-i.,

PVAbf/bVu.ICTRfK/LVb/)/)

*еото*кЕтикн(/йтн(<(/т/)/)

’END’.,

m:f(/uVL/):.i„

OAs»DX (/LVL./).,

PM:-Fi.t

x

FB :«F2(/lVL/).,


EPS:-EPSP(/LVL/)/i.7.,

 

EST:-EST1.,

 

 

’GOTO'RECUR.,

 

 

Kl:RTkN(/bVb/):-2.,

 

Ms-UXC/LVL/).,

 

 

FA:-F2(/LW).,

 

 

FM:-FMP(/bVL/).,

 

 

FB:-F3(/bVL/).,

 

 

EPS:-EPSP(/bVL/)/1.7.f

 

EST:-EST2(/LVL/).,

 

 

A:-X2(/LVL/).,

 

 

'GOTO’RECUR.,

 

 

R2!RTkU(/L,VL/):-3.,

 

 

OA:-DX(/LVu/).,

 

 

FA:-F3(/bVb/).,

 

 

- 02-

 

 

FM:-F4(/LVL/).,

.

!

FB:»FBP(/LVb/).,

 

i

 

■:/

EPb:*EP,..P(/bVL/)/1.7.,

;

EET:-E;;T3(/LVL/).f

 

;

A:-X3(/LVb/).,

 

! ■

'GOTO'RECUR., R3:.№U--mb(/LVb,i/)m'AL(/LVb,2/)+FVAE(/LVL,3/).,

' if "lvL 'gt -i 'them " goto 'u p .V '

bJMPSO.'C-PUM

e :id' uimpi;6;i.,

133


TESTBLOCK:

‘BEGIN*

’НВАЬ'А.В.ЕРЗ.,

’REAL” PROCEDURE’F(X).,

’VALUE’x.,

r e a l 'x .,

f S"XX(i+XXX2).,

Aj-2.0.,

B:-6.0.,

EPSs-ю-б.,

OUTPUT(3,’(E"),SIMPSON(F,A,B,EPS))

’ENU’TESTBLOCK

’EfJD’PKOGRAMM.,

Результат вычислений +1627500 +03 удовлетворяет точному решению +162,75 с абсолютной точностью.

2,4,6. Квадратура Ромберга Вычислить определенный интеграл

О

при h * 128 и р = 16.

Решение, Исходная программа:

- 01-

ТРАНСЛЯТОР МЭИ-3

’BEGIN'

’РКОСЕ1ШЕ ’RGdBERGRULЕ'(N,Р ,Т,W).,

’VALUE’N.P.,

*INTEGEH’N,P.,

134

*reai/ 'array t ,w ., ’BEGIN*

‘IHTEGER'I.J.M.MI.MH.S., "REAL," ,c i .,

’REAL,"ARRAY *C(/0 ;(P-2)/2/)i, H:-(T(/4/)-T(/0/))/M.,

f OR’Is«M“l"STEP’-1*0UTIL.*1"d o * 'BEGIN*

W(/I/) :-C(/I/j

T(/I/):-m+T(/0/)

’END*.,

M:-(P-2)/2.,

C(/0/):=1.0,,

S:-H4:-l.,

C(/M/):»0,,

*IF*M*Gi 'ьМ(1'0/ЫЧ(2)’ТНЕН'М:'-ЬМ(М)/ЬН(2)., "FOR *J:'i"step *1 "until *m ;’d o *

b e g i n *

.i

МЧ:"ЧХНЧ.,

;

Mir-MH-i.,

 

"FOR*I J ’STEP ’-1 'UNTIL *1*D0*C(/I/) 5»(M4JC(/I/)-C(/I

-l/))/Ml.,

:

C(/0/):-C(/0/)X(M4/Ml)

* Е ; Ш ,

-4

*F0r ’1;-0'STEP*1*UNTIl ’M ’D0’ ’be g i n"

135

CIt-C(/I/)XS.,

I-

' 'FOB ’j 1вО*STEP’S"UNTIL *N *00 *W (/j/):»W (/j/) +CI.p

S;-2XB

’En d ’.,

V-C/O/) s-W(/N/) t-0.5XVf(/0/).,

*1 OR’j:«0*STEP’l'UNTIL *4'D0’W(/J/){»W(/J/)XH ’END’ROMBERGRULE.,

’REAL” PROCEDOftE*F(X).,

’VALUE *X,K.,

r e a l x .,

F:-XXX2.,

'BEGIN*

' INTEGER’ N..

INPUT(l.M).,

’BEGIN*

r e a l a ,b ,i n t .,

' INTEGER'К,Р., ’ARRAY’T,W (/0:N /)., INPUT(i,P,A,B).,

1 ’FOR’K !“ 0*STFP'l'UNTIL' N’ 00*T(/K/) S“KX(B”A )/N .,

ROMBERGRUlE(N,P,T,W).,

INT:-0.0.p

*FOR*Ks»0 "STEP *1*UNTIL* N’DO*INT:»INT+W(/K/ )XF(T(/K/) +A ).,

00TPUT(8 f*(E*)fINT),t ’END*

’END'BLOCK

'END’PROGRAMM.,

136