Файл: Гемст В.К. Процедуры АЛГОЛ-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 egerm., '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 ceduref .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