Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги из ГПНТБ / Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум]

.pdf
Скачиваний:
10
Добавлен:
23.10.2023
Размер:
4.88 Mб
Скачать

Результаты вычислений, полученные на узкой печати, + 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 jd ;,

’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 dpkogramm.,

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

+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,, ‘Ittegeri ,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

‘INTEGER*J,I.,

’REAL’MX., ‘FOR’lS-i'STEP'i’O N m V D O ’ ‘begin

HX:"0.0. j

’FOK*J S-i’STEP'i’OUTIb'R ’DO’*IP *ABS(A(/1,J/)) *GT*

MX*THEN’MX.-ABS{A(/I„7/)).,

*i f *mx-o .o t h e n

 

b e g i n

• ! (

DETERMINANT 1-0,0.,

 

‘GOTO‘RETURN .

 

’EN.)\,

ми1,Т(/1/)|-МХ.»

’lF*MX-/l,0*THEN” FOR‘j!-i’STEP*l‘UMTIb’N‘DOTA(/I

.J/)s-A(/I,J/)/MX

e n d

 

‘ENO’EQUILIBRATE.,

[

EQUluIBRATP(A,fi,MUbT).,

j

PRODUCTi-l.O.,

.;

‘FOR ‘Rl-i *STEP ‘i‘UNTIL *№-i ’»0’

be g i n

i

 

f

•"•s»R..

;

TEMP:=ABS(A(/R,R/)).,

‘FOR‘j:-R+l‘STEP‘l*ONTib‘К’.»'‘IF ‘TEMP *ЬТ ’ABS(A(/R,1

/)) ‘ThE'l’

 

‘BEGIN*

4

TEMP:-ABS(A(/R,J/').,

SJ“J 'END*.,

*IP ’TEMP“0.0 "THEN' ’BEGIN’

DETERMI4ANT:»0.0.,

’GOTO’RETURN

’END’.,

'IF'S»/a*T>iE**

’BEGIN*

PRODUCT;— -PRODUCT. , *FU*I;-R*STEP VUi'ITILVDO* *BEGI4’

TEMP:-A(/I,R/)., /.(/l,R/)r-A(/I,S/).,

A(/t .S/):»TEMP

e n d

e n d ’.,

PRODUCT l-PRODUCTXA(/R,R/)., ’FOR’lJ-R+i’STEP’l’UNTIL V d o

b eg in

TBMP:-A(/I,R/)/A(/R,R/).,

'FOfl’j i-R+i’STEP’i’UMTlL V D O ’At/I.J/Js-At/I.J/J-

At/R.J/JXTEMP

’END’ ’e n d ’.,

TEMP r»FROjpCTIA(/M,N/).,

70

Соседние файлы в папке книги из ГПНТБ