Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 27.07.2024
Просмотров: 110
Скачиваний: 2
' REAL*EPS *, *|MTBeE»'N,K;,
moT(ifM,Eps):,
*B E O I . l ’
*ARRAY*X(/llN/)'(
‘ procedure 7(1,6)
*ARRAY’X,Qi,
‘ begin’
Q ( / 1 / ) j » 4 i O I X ( / i / ) I X 8 + X ( / 2 / ) X X S + S « O X X ( / l / ) X X ( / 2 / )
‘ X(/2/j-2i0i, ' .
C ( / 2 / ) l • 8 i O X X ( / i / ) X X ^ ! ♦ 0 . O I X ( / i / ) X I ( / S / ) ♦ X ( / e / ) X X i г
*3i0
’ end', ,
-00-
I M P t 3 T ( i , X ) i ,
* KJ«0.,
В*ЕГ?(N ,EPS, 1 ,Ш ERSION ,X,K). f
00»ОТ(в/(1*),К);,
0UTPUT(8/(E'),X)
•End*
’ end*test
tend*;,
Массив исходных данных:
+ 2 .
+100000044.
■+4000000 00.
+9000000 GO.
60
Результаты вычислений, полученные на узкой печати, + 5 +4999999 +00 +1000000 +01
соответствуют ожидаемым.
2.3.Определители и матрицы
2.3.1.Вычисление определителя методом триангуляции ( первый вариант У
Вычислить определитель |
матрицы методом триангуляции; |
||||
2,37415 |
1,3245? |
2,25358 |
1,35877 |
0,58573 |
|
1,47132 |
2,24315 |
3,53837 |
2,58371 |
1,83921 |
|
4,17354 |
2,12839 |
1,78538 |
0,37859 |
3,24578 |
|
1,37531 |
0,28453 |
2,58389 |
3,57352 |
2,54783 |
|
1,57893 |
4,38921 |
2,55431 |
1,73894 |
3,47579 |
|
Решение. Исходная программа; |
|
|
|||
|
- |
01- |
|
|
|
|
ТРАНСЛЯТОР МЭИ-3 |
|
|||
’ВЕбИгГ |
|
|
|
|
|
*REAL'*РRCCE1)0KF.'DET(А ,А)i, |
|
||||
•VALUE*а ,N.. |
|
) |
|
|
|
|
|
|
|
|
|
*IHTEGER*H., |
|
1 |
|
|
|
’ARRAY‘А., |
|
; |
|
|
|
"BEG14 * |
. j. |
|
|
||
|
V a l ’t .d .m a x ., |
j ' |
|
||
|
*1 iTEGER*I,J,K., |
; |
|
|
'FOR’КI»1*STEP *1*0ЧТILV o O * *BEGI4 *
61
MAXi»0.,
*POR*11» К’STEP *1’UNTIL *N’BO
’b e g i n '
T:-A(/I,K/y.,
'If ’ABS(T) ’GT’ABS(MAX) ’THEN • ’b e g i n ’
MAX:-T.,
J:»I
’END'
’END*!.,
’I? ’MAX*0’THEN’ ’BEGIN*. 4
’GOTO’FIN ’END*.,
*IF *J*/K*THEN* ’b e g i n *
D j— d ;,
’POR’I I-K’STEP *i'UNTIL’N’00 *
’BEGIN*
T«-A(/J,I/).,
A(/J,I/)s-A(/K,I/).,
A(/K,I/)s-T
’END*
’END’;,
’fOR’Ii-К+1 ’STEP’1*UNTIL V D O ’
’beg i n’
T:-A(/I,K/)/MAX.,
'FOR'j :"K+i’STEP*i 'OHTIb 'M’BO*A(/I,J/) :»A(/I,J/)-
TXA(/K,J/) |
|
'e n d 'i ., |
|
D:-DIA(/K,K/)’ |
|
’END'K,, |
' |
FIN:HET:-D |
|
’END’DET., TESTBbbCKs 'BEGIN*
'INTEGER'N.,
IMPUT(i.N),,
’BEGIN'
’REAL/ DETERMINANT., ’ARRAY *A(/i:N,i:N/),, INPUT(l.A)., DETERMINANT:" DET(A ,N).,
OUTPUT(5,’(E’).DETERMINANT)
’END’ |
; |
’e n d ’tedtblock |
I |
'END ’PROGRAMM,, |
\ |
Массив исходных данных: ; +5.
+237415,0 01.
+1324570 01.
+225358001.
+1358770 01.
+5857300 00.
63
+1471320 |
01. |
+2243150 |
01, |
+3538370 |
01. |
+2583710 |
01. |
+1839210 |
01. |
+4173540 |
01. |
+2128390 |
OP. |
+1765380 |
01. |
+3785900 |
00. |
+3245780 |
01. |
+1375310 |
01. |
+2845300 |
00. |
+2583890 01.
+3573520 |
01. |
+2547830 |
01. |
+1578930 |
01. |
+4389210 |
01. |
+2554310 |
01. |
+1738940 |
01. |
+3475790 |
01. |
Результат вычислений +7419662 +02 совпадает с результатом +74,1966, полученным вычислениями вручную [14] .
2.3.2.Вычисление определителя методом
,триангуляции (второй вариант)
Вычислить определитель матрицы методом триангуляции:
1,3259 |
2,3782 |
0 |
0 |
0 |
3,1112 |
4,0232 |
1,9982 |
0 |
0 |
0 |
5,0349 |
2,112? |
6,3213 |
и |
0 |
0 |
1,0932 |
4,9931 |
5,6632 |
0 |
0 . |
0 |
6,0144 |
2,6420 |
Ревение. Исходная программа:
64
-01- |
|
Ii |
ТРАНСЛЯТОР МВИ-8 |
|
;I |
’b e g i n * |
|
|
’REAL*'PR0CED0RE*DETfiB4(A,N)., |
|
|
'VALUE’fU, |
|
|
’INTEGER*?!., |
|
|
'АЙВАНА., |
■ |
j |
•BEGIN* |
|
|
•r e a l ’PRODUCT .FACTOR,TEMP,QIV ,PIV ,ABPIV.MAIPIV i, |
|
|
‘INTEGER’SCIGH,I,J,R,lMAXi, |
|
|
SSIGNs-i., |
|
|
PRODUCTS-1.0,, |
|
|
’FOR’Rt-l*STEP‘l’UNTIL'N-l’DO‘ |
|
|
’BEGIN’ |
- |
|
MAXPIV t»0,0,, |
|
|
’f o k *i :-r *s t f p ’i *u n t i l *n *d o * |
|
|
’BEGIN* |
|
|
PIVj-A(/I,R/)., |
|
! |
ABPIV t-ABS(PIV),, |
|
|
if ’abpiv ’g t *maxpiv ’t h e n ’ |
|
|
’BEGIN* |
|
|
MAXPIV s-ABPIV., |
|
|
D1V:-PIV., |
|
|
iMAXt-I |
|
|
’END* |
|
|
’END*I., |
|
| |
’IF *MAXPIV-/0,0*ThEN’ |
|
’ |
65
BEG IЛ
'IP 'IMAX-R'THEN'*G0T0 'RESUME.,
'FOR *J:-R*STEP'i'UNTIL,* N'DO’ 'ВЕЛ 4*
TFMP8-A(/lMAX,J/)„,
A(/IMAX,J/)j-Al/R,J/)., ■
A(/R,J/):»TEMP
"END'!,, USIGN:— 3SI64. , 'GOTO'RE SUMP
'END*., i>ET224:-0.0., 'GOTO'FINAIj,,
RESUME8'FOR’lS"R+i'STEP *i'.UNTIL 'N 'DO* 'BEGIN*
FACTOR:»A(/I,R/)/aiV.,
. ’FOR’j8-P>i’STEP*i'0!lTIL'N’DO*A(/I,J/):=A(/I,J/) FACTORXA(/R,J/)
'END'I
'END'K.,
'FOK*Is“1'STEP*1 "UNTIL '.N*DO'PRODUCT2«PRODUCTXA(/i ,1/) » DET224:’vSIGNXPkODUCT,,
FINAL:
*END*DET224.,
TESTBLOCK:
'BEGIN*
'INTEGER'N., . INPUT(1,4).,
66
’b eg in ’
'ARRAY’A(/i:N,lsN/)i,
IMPUT(1,A).,
00TPUT(3,‘(E *),QET224(A ,N))
’END’
’END’ТЕЛ BLOCK
’en d’pkogramm.,
Массив исходных данных:
+5.
+1,3259.
+2,3782. +0,С. +0,С•
+ 0 ,0 .
+3,1112.
+4,0232.
+1,9982.
+0,0.
+0,0.
+ 0,0.
+5,0349.
+ 2 ,1122.
+6,3213.
+0,0.
+ 0,0.
+0,0.
+1,0932.
+4,9931.
+5,6632.
+ 0,0.
+ 0 ,0 .
+0,0.
67
+б, о т . +2,6420, ’
Результат вычислений +4070890 +03 совпадает с результатом +407,089, полученным вычислениями вручную £l4j.
2,3.3. Вычисление определителя гауссовским исключением
Вычислить определитель матрицы гауссовским исключением
2,37415 |
1,32457 |
2,25358 |
1,35877 |
0,58573 |
1,47132 |
2,24315 |
3,53837 |
2,58371 |
1,83921 |
4,17354 |
2,12839 |
1,78538 |
0,37859 |
3,24578 |
1,37531 |
0,28453 |
2,58389 |
3,57352 |
2,54783 |
1,57893 |
4,38921 |
2,55431 |
1,73894 |
3,47579 |
Решение. Исходная программа:
-01-
ТРАНСЯЯТОР МЭИ-8
*ВЕ01>Г
'REAL’*PROCEDURE‘dETERMIТАTT(A,4)., •Value \т.,
'i t t e o e r 't ,, ’ARRAY'A., ‘BEGIM*
•r e a l ‘PRODUCT,TEMP,, ‘Itteger’i ,j ,r ,s ,, 'ARRAY’MUlT(/1IT/).,
•PROCEDURE ’EQUiLIBRATE(A,N.MULT)., ’v a l Ue Vt.,
'i t t e g e r ’t ., ’ARRAY‘A,MULT,, •8EGIT*
68