Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.07.2024
Просмотров: 117
Скачиваний: 2
C(/I,Jfl/):-C(/I,J,2/):-0.0.,
'FOK'Кj»i’STEP VUNTIL'M'00 ’
’begin’
C(/IfJ,i/):-C(/I,Jfi/)+A(/IfK,i/)XB(/KtJ,i/)-A(/I
,K,2/)XB(/K,J,S/).t |
* |
|
C(/I,J,2/):-C(/I,.T,2/)+A(/I,IC,l/)XB(/KfJ,S/)*A(/I |
||
,K,2/)XB(/k,J,i/> |
|
|
'END* |
~ |
|
'END'
'END 'HATMUCE., TESTBbOCK; 'BEGIN'
’lNTEGF.k*H,MtR., IHP0T(1,N,M,R)., 'BEGIN'
'ARRAY’A(/l:M*l:M,i:2/),B(/isHfi:K,i:2/)tC(/isMtiiR,
1*2/)., |
! |
' |
|
l• |
|
INPUT(1,A ,B)., |
I |
|
I-1ATMUC6(A,B,H,M,R,C). j |
|
|
OUTFUT(B,'(E’),C) |
' j |
|
'end* |
; |
|
'END'TESTBbOCK |
j |
.' |
END’PkOGRAMM., |
i |
|
Массив исходных данных:
+3.
+2.
+2.
117
|
+4,0. |
' |
+0,0. |
|
+0,0. |
|
+0,0. |
. ■ |
+0,0. |
|
+1,0. |
|
. +2,0. |
|
+1,0. |
|
+1,0. |
|
+0,0, |
|
+4,0. |
|
+1,0. |
|
+0,0. |
|
+0,0. |
' ' |
+4,0. |
|
+1,0. |
|
+2,0. |
|
+2,0. |
|
+0,0. |
|
+1,0. |
|
+2,0. |
* |
+0,0. |
|
+2,0. |
|
+1,0. |
Результаты вычислений, полученные на узкой печати,
|
+0000000 |
+00 |
|
|
|
|
+2000000 +01 |
|
|
||
|
+1500000 |
+02 |
|
|
|
|
+6000000+01 |
|
|
||
|
+1000000 |
|
+02 |
|
|
|
+4000000 +01 |
|
", |
||
• .... |
+1399999 |
|
+02 |
■ ' |
' |
|
+1300000 |
+02 |
|
|
|
соответствуют |
ожидаемым. |
|
|
|
|
118
2.3.24, Обращение диагональной матрицы с комплексными элементами
Произвести обращение матрицы 2 . 2
i1
i + и
10+*»
Решение. Исходная программа: -01-
ТРАНСЛЯТОР МЭР-3
*
•'BEGIN*
*PROOEDUKE’mEKTC(A,N,»IVC,B)., ’VALUE *N.,
'int eger’m., 'ARRAY'A,B., 'PROCEDURE* DIVC. ,
'BEGIN'
'INTEGER*!,3.,
*F0k 'I:cl'STEP 'l'UNTIb 'il’ljO"POR*J :«l'STEP 'I’UNTIL’n 'DO 'B(/I,j,l/):“B(/I,J,2/):»Q.O.,
'FOR 'I:=1 'STEP 'i 'UNTIL'n 'i?0*DIVC(i,0 fO.O,A(/I *1,1/) »A(/ I,I,2/),B(/IfI,l/),B(/I,li2/))
'e n d 'imv ektc.,
'PROCEDURE ’DIVC(A,B,C,B)RESUbTs(E,F).,
'VALUE ’A,B,C,D., |
j |
'REAl 'A.B ,C,D,E ,F., |
|
'BEGIN* |
|
*REAL'R,DEi1., |
|
119
’I?’0-0'AND ’lM)’THEN'STOP(7)., ’IF *AB3(C) *GT *ABE (D) ’THEN * ’BEGIN*
K:»D/C,,
DfcN:»ORXD.,
E{« (A+BXR)/DEN.,
P'j«(B-AXkj/DEN
’END” ELt>E’ 'BEGIN'
R:»c/D.,
DENl-D+RXC.
Ei»'('a x r +b)/d e n .,
F:»(BXR-A)/DEN
’En d ’
’e n d ’di v c,,
TESTBLOCK:
’BEGIN’
’INTEGER*N.,
iNPUT(i.N).,
’BEGIN*
’INTEGER’I,J.,
’ARRAY*Zi(/l:N ,is2/),2 .(/i:N ,l:N ,l:£/),Y (/ijN I i:N t1:2
/).. |
....... |
' • |
INPDT(ifZi).,
*FOR*I t-l*STEP ’i’UNTIL *n ’D0 *’FOR’j J»1*STEP ’i’UNTlii’n
*D0*Z(/l,J,l/)j-2(/I,Jf2/):-O.O.f '
’FOR ’Is»1*oTFP’i’UNTIL *N ’ffl)’
120
BEGIN
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