книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]
.pdfBEGIN
2(/I,I,i/)t-Zl(/I,i/);,
Z(/I,I,2/)!«Z1(/I,!!/)
•END’.,
INVEKTC(Z,N,DIVC,Y)i,
0UTPUT(3,’(E*),Y)
’END*
’END’TESTBbOCK
’END'PROGRAMM.,
Массив исходных данных: |
' |
|
+4. |
+2 , 0 .
+0,0.
+0,0.
+1,0.
+1 , 0.
+1,0.
+1000000 Об.
+0,0.
Результаты вычислении, полученные на узкой печати
+4999999 +00
+0000000 +00
+0000000 +00
+0000000 +00
+0000000 +00
+ 00000П0 +00
+0000000 +00
+0000000 +00
+0000000 +00
+0000000 +00
|
+0000000 |
+00 |
|
-9999999 '+00 |
|
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 +00 |
|
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+4999999 |
+00 |
|
-4999999 +00 |
|
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+0000000 |
+00 |
■ |
+0000000 +00 |
|
|
+0000000 +00 |
|
• |
+0000000 |
+00 |
|
+0000000 |
+00 |
|
+1000000 -04 |
|
|
+0000000 |
+00 |
соответствуют ожидаемым.'
2,4. Интегрирование и, дифференцирование 2,4,1, -формула трапеции
Вычислить определенный интеграл
при П = 100.
122
Решение. Исходная программа: -01-
транглятор мэи-а
'beg i n'
'REAL' 'PROCEDURE *ТНАРЕ;;10М(Д,В,Е(,Р 'VALUE *AtB,N»,
'r e a l ’a .b ., 'i n t eger'n .,
'real " pro cedure’f .f 'BEGIM*
■r e a l 's .h .x ., h:«(B-A)/tl., S:»H/2X(F(A)-F(B)).,
*F0R*X:=A+H'STFP’H'U:iTIb'3-H/2'D0'S:-S+HXP(X). TRAPEZIUM :»S
'EMU'TRAPF'ZIUM.,
'BEGIN'
*REAL'A,8,IHT.,
’INTEGER’II.,
'real ’'procedure 'f (X)., •VALUE'X.N.,
'r e a l ’x ., F:=X32., I:iPUT(i,A,B,M).,
INT:“TRAPELltJM(A,B,M,F).,
OUTPUT(3,*(E’),IMT)
’ENO’
'END'.,
Массив исходных данных:
+0000000 00.
+3000000 01.
+ 100.
Результат вычислений +8730450 +01, равный +8,73045, удов летворяет точному решению +9,0 с относительной погрешностью
9,000000 - О.730450 • |
|
-------------------- |
= 0,02995 |
9,000000 |
|
или в процентах 2,995 %. |
|
2.4.2. |
Формула Гаусса |
Вычислить определенный интеграл |
|
J 1 х2 а |
* |
погрешностью tot £ I0"3. |
|
Решение. Исходная программа: |
|
|
-Ci- |
ф |
ТРАНСЛЯТОР МЭИ-3 |
|
'BEGIN*
'REAL''PkOCEDURE'GI (F,Х,А ,B,T0L)., 'Va l u e 'а ,в,тоь., 'REAL'X.A.B.TOl,.,
'REAL*'PROCEDURE *E., 'BEGIN'
'REAL *11,12,H jC,G. , *i;jteger'm ,n .,
'FOR'n :=8,1б,2X;!'WHILE'ABS (12-11) *GT 'TOLXIE'BO ' ; 'begin’
’lF';i-/8'THE;ril:=I£.I
124
Hs-(B-A)/(exn).,
С:»A-П., G:-H/i.73206081., I2:»0.0,,
'FOK'Mi-O’STEP’l’U N m ’N-l’DO’ ’BEGIN'
0S-O2XH., X :»C-G,, I2:-I2+F.,
л !*C+G, , I2:-I2+F
’END’., I2:-12XH.,
0UTPUT(3,*(I*),N)», OUTPOT(3,’(E’),h,I2,I2+(.I2-Il)/16)
’END'., GI;-I2+(I2-Ii)/16
’e n d ’g i ., i
TESTBLOCK: ;
’b e g i n ’ ;
’UEAL’X.TOD.A.B,,
’READ *’PROCEDURE ’F.,
F:»XXX2.,
' INPUT( i,A ,B,TO>b)-.,
0UTPUT(3,’(E’),GI(r,X,A,B,T0L))
■’END'TEoTBDOCK
'e n d ’p r o g r a m m .,
Массив исходных данных:
+ 0 ,0 # |
|
+3,0. |
|
+1000000 |
43. |
, |
Результат |
вычислений |
f9000000 +01, равный +9,0, удовлет |
воряет»очий#у решению+9,0 |
о абсолютной точностью. |
||
|
|
£.4.3. Формула Симпсона (первый вариант) |
|
Вычисляет |
ойределенный интеграл |
||
|
|
|
\ х2 d х |
при |
П * 100. |
J0 |
|
|
|||
|
Реивнйе. |
Исходная программа: |
- 01-
ТРАНСЛЯТОР МЭИ-5
'BEGIN'
*REAL*'P40CE0URE’SIMPS0N(F,*,B,N).,
'val.u e ’a ,b,n.,
'чеаь'а .в.,
■'integer'и.,
'real," procedure'?.,
'begin'
'real/ h .t .s.r.x ,,
H:-(B-A)/N.,
T:»2.0XH.,
S:*»R:»0.0.,
'FOR*! ;*A+T"STEP'T'UNTIL'B-T+H/2.0" DO*R:»R+P'(X)
*F0R'X Г*А+Н'STEP'T’UNTlL* B-h/2.0 "DO 'S:»S+F’(X),,
SIMPSON:** (E(A)+F (B)+£,0XR+4.0XS)Xh/3.0
,'END'SIMP SON.,
126
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))
'end’testblock '
’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 o’bb
‘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-
' keal’x .,
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)
’ehd’teutblock.
’enu’programm.,
Результат вычислений |
|
|
|
+4999999 |
+01 |
|
+1627499 |
+03 |
удовлетворяет точному |
решению +162,75 с погрешностью |
|
ePS |
- 162,75 - 162,7499 = 0,0001, |
|
т.е. фактически ер s |
= Ю " \ |
|
130