книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]
.pdfI + |
j 2 |
0 |
n r |
0 |
t |
X |
|||||
1 1 ___ |
I |
0 ; |
В = i |
0 |
|
44 + |
4 21 |
2 |
|
0 |
i |
Решение. Исходная программа:
-01-
ТРАВСЛЯТОР МЭИ-3
'BEGIN*
'PROCEDURE'MATM0C3(A,B,M,M,R,С);,
'VAbUE'H.M.R;,
*INTEGER*N,M,K.,
'ARRAY *A,B,C.t
'BEGIN'
*lNTEGER*I,J,K.,
'FOR *1:-l*STEP 'l’UNTIL *M'DO’'FOR 'jl-l!STEP *1ТОНТЩТ*,} DO
'BEGIN*
C(/IfJ tl/)s-C(/I,jts/):-o.Oi,
'FOR*K:»1 'STEP'l'UNTiii'N *D0 *
'BEGIN' !
c(/i,j,i/):»c(/i,j,i/)+A(/i,K,i/)iB(/Ktj/);,
C(/ItJ,8/j':"C(/I,J,2/)+A(/I,K,2/JlB(/K,j/J
'END* — '
'END'
*END'MATMUC3i, •-
TESTBLOCK:
'BEGIN' '•
* INTEGER’ N,M,Ri,
III
INPUT(i,M,M,R)‘i,
'BBdlN*
>WUY:A(/l:Mfi,M.i,B/)fB(/i:Nti;B/),C(/irtiiieilljl
)i. |
- |
- - |
- - |
iNPUT(i,A ,B).t MATMUC3(A,B,N,M,R,C)i, OUTPOT(3, ’(E*),C) '
■BNA* - - ’B W ’TESfBLOCK
■BND’I>RO0RAMH;,
Массив |
исходных данных: |
|
+3. |
|
+3. |
|
+2. |
|
+1,0. |
|
+2,0. |
|
+0,0. |
|
+0,0. |
|
+1,0. |
|
+0,0. |
|
+0,0. |
|
+1,0. |
|
+1,0. |
|
+0,0. |
|
+0,0. |
|
+0,0, |
|
+44,0. |
о |
+21,0. |
' |
+2 ,0. |
|
+ 0, 0. |
|
+ 0 ,0 , |
112 |
“ |
. |
+2,0.
+0,0.
+1,0.
+1,0.
+0,0.
+0,0. +3,0,
Результаты вычислений, полученные на узкой печати, +0000000 +0ъ
+0000000 +00
+4000000 +01
+2000000 +01
+1000000 +01
+0000000 +00
+0000000 +00
+ICD0000 +0J
+2000000 +01
+0000000 +00 .
+4400000 +02
+2700000 +02
соответствуют ожидаемым.
2.3,22. Произведение двухмерной матрицы
скомплексными элементами на одномерную также
скомплексными элементами
Произвести перемножение двух матриц А и В.
) 2 |
I + |
j |
I |
I |
|
|
) 2 |
0 |
|
|
|
I + |
f I |
В = |
I |
2 |
Т + |
j |
|
|
T T j T |
||
4 |
I |
|
|
Решение. Исходная программа:
-01- |
• |
ТРАНСЛЯТОР МЭИ-3 |
|
'b e g i n '
'PROCEDUKE ’MATMUC4(A,В,Н,М,С) 'VALUE'н,М.,
'a r r a y 'a .b .c ., 'INTEGER 'N.M., 'BEGIN*
'INTEGER'!,;!.,
'FOR ’Is=1’СТЕР'1'UNTIL'H *1)0’
’BEGIN" ■ '
С(/1,1/):-С(/1,2/):-0.0.,
'f o r 'j :«1 'STEP *1'UNTIL 'n.'DO* ’begin"
C(/I,l/);=C(7l,i7)+A(/l,.M/)XB(/J,l/)-A(/I,Jt2/)
. "B(/J,2/)»,
C(/I,2/)»»C(/I,2/) +A(/I,J ,1/)XB(/J ,2/) +A(/I,J,2/) 2B(/J,l/>
'END*
'END*
'end 'МАТмисч., TESTBLOCK: 'BEGIN* "
'IMTEGEk 'n .M., I:iPUT(l,N,M).f 'BEGIN' ■
'ARRAY *A(/UM,1:4*1:2/),B(/l:N,l:2/),C(/l:M,1:2/).,
114
lNPUT(i,A,B)i,
MATMUC4(A,B,N,M,C)i,
OUTPUT(3,*(E*),C)' 'END* ~ '
iENB’TESTBLOCK
•ENfl'PBOOBAMM;,
Массив исходных данных:
+ 3. +3.
+0,0.
+2,0.
+1,0.
+1,0.
+ 1, 0.
+0,0.
+0,0.
+0,0.
+0,0.
+3,0.
+1,0.
+1,0.
+2,0.
+0,0,
+1,0.
+4,0.
+1,0.
+0,0,
+0,0.
+2,0.
+1 ,0.
+ 0 , 0 .
115
. +i,o., +2,0.
Результаты вычислений, полученные на узкой печати,
-2000000 +01
+3000000+01
-1000000 +01 +6000000 +01
+2000000 +CI
+1000000 +02
соответствуют ожидаемым.
2,5.23, Перемножение двух прямоугольных матриц
с комплексными элементами Произвести перемножение двух матриц А и В.
4 |
0 |
|
|
0 |
4 + j I |
|
jI |
« |
2 + j2 |
1—1 |
|||
2 +jl |
I |
|||||
^ + j i |
| |
|
2 + ^ 1 |
|||
|
|
|
|
|
Решение. Исходная программа:
-01-
ТРАНСЛЯТОР МЭИ-S
*BEGIW'
’PROCEDURE "MATMUC6(A,BtN,M,R,C);,
•VALUE
*INTEGER*N,M,R,,
•array fA,В,С.,
•BEGIN’
’int e g e r’i ,j ,k ;,
"FOR*! :»i ’STEP *1’UNTIL *м*D0 ’*F0R*J j-1*STEP ’lTUHfIL.TkjDO
’BEGIN’
116
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