Файл: Гемст В.К. Процедуры АЛГОЛ-60 в примерах [практикум].pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 27.07.2024

Просмотров: 103

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Ys-AXSIN(B)

'ЕДО’АЫвС,,

TESTBlOCK:

'begin*

’INTEGER*I.,

’ARRAY *2(/i:4,ii2/),A,B(/l j4/) .,

imput(i .x) ,

*POR’Ii“i’STEP *1*UNTIb *4*DO * ’BEGIN’

EXPC(Z(/I,l/),2(/I,2/),A(/I/),B(/I/)).,

AbGC(A(/I/),B(/l/),Z(/I,l/),Z(/I,£/j)

Л OUTPUT(3, ’(E*),Z(/I,i/),Z(/I,2/) ,A(/1/),B(/I/)) ’END’

endtebtblock

’END’

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

+3,0.

+1,0.

-3,0. +4,0. -3,0.

+0,0 .

+3,0.

-3,0.

Результаты вычислений, полученные на узкой печати, +2999999 +01

+1000000 +01

+3162277 +01 +3217505+00 -2999999 +01

 

+4000000 +01

 

 

+5000000 +01

 

 

+2214297 +01

 

 

-2999999 +01

 

 

+0000000

+00

 

+3000000 +01

 

 

+3141592

+01

 

 

+3000000 +01

 

 

-2999999

+01

 

 

+4242640 +01

 

 

+5497787

+01

 

практически совпадают с теоретическими.

 

2.1.5,

 

Сложение комплексных чисел

Определить результат попарного сложения четырех комплекс­

ных чисел

Z I = +3 +

j

I

 

22 = -3 4

j

4

 

Z 3 = -3 +

j' о

 

Z 4 = +3 -

j

3.

Решение. Исходная программа транслятора:

- 01-

ТРАНСЛЯТОР МЭИ-3

"BEGIN’

"PROCEDURE "ADDС(A,BtC,D)REEOLT:(E,Р).,

"VAUIE’A.B.C.D.,

"real'a ,b,c,d,e, p. ,

"BEGIN"

E:*A+C.,

Pi-B+D

"END’ADDC,,

TESTBLOCK:

12


'b e g i n '

'АЙЙАУ'Z l,Z 2 ,Z 3 ,Z 4 (/it2 /), , INPUT(i,Zi,Z2,Z3,Z4).,

ADDC(Zi(/l/) ,Z l(/2 /) ,Z2(/1/) ,Z2(/8/) , U U \ I ) ,Z l(/2 /)) ADDC(Z3(/1/) ,255(/2/) ,2 4 (/l/j ,Z4(/2/) ,Z 3 (/i/j ,K S (/2 /))., 0UTP0T(3,*(E*)tZl,E3)

'END "TESTBbOCK

'END*

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

+3,0.

+1,0.

-3,0.

+*v,0.

-3,0.

+0,0.

+3,0. -5,0.

Результаты вычислений, полученные на узкой печати,

+000ССШ +00

+5000000 +01

+0000000 +00

-5000000 +01

практически совпадают с теоретически*!*,

 

2.1.6,

Вычитание

комплексных чисел

Определят*

разности кошмексша шее*

Z I « +3 + J I ,

гг * -з * / '* и z з » -з + | о, z* » +з - j з.

решение.

входная программа

трансляторе:

£3

-01-

'„ ТРАНСЛЯТОР МЭИ-S

'BEGIN*

’PROCEDURE'SUBC(A ,B,C,D)RESULTs(E,F) i, 'VALUE *A,B,C,D;,

'BEAii*A,B,C,D,E,P. , ’BEGIN*

E ***A-C;, ft'-B-D

'EHD’SOBC.,

TESTBbOCR:

b e g i n *

’ARRAY'Zi,ZE,Z3,Z4(/l:2/)., INPUT(1,Z1,Z£,Z8,Z4).,

80BC(2i(/i/) ,21(/2/) ,Z2(/l/) ,Z2(/2/) ,Z1(/1/) ,Zi(/2/))., 6DBCUS(/i/) tnU*/) ,«(/!/) ,Z4(/2/) ,Z3(/i/} ,Z3(/2/j)

OOTPOT(8,'(fc'),Zl,Z3) 'ЕЮ'ТЕЗТВИСК

'END *

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

+3,0.

+ 1 ,0.

-3,0. +4,0.

-3,0.

+0,0.

+3,0. -3,0.

14

Результаты вычислений, полученные на узкой печати, +6000000 +01 -3000000 +01

-6000000 +01

.+3000000 +01

совпадают с теоретическими.

2,1.7,

 

Умножение комплексных чисел

Определить произведение

комплексных чисел

Z I

= +3 + j I,

7.2

= -3

+ j 4,

Z 3 = -3

+ j О,

Z 4 = +3 - j 3.

Решение. Исходная программа транслятора:

- 01-

ТРАНСЛЯТОР МЭЙ-3

'b e g i n '

'PROCEDURE *MULTC(A ,В,C,D)RESULT:(E,f).,

'VALUE'A.B.C.D.,

I\

"REAL'A,B,C,D,E, E.,

j

'BEGIN*

;

E:»AIC-BXD.,

j

F:-AXD+BXC

f

 

’END’MULTC.,

'

TESTBLOCK:

 

'BEGIN'

J‘

’ARRAY'Zi,Z2,Z3,Z4(/i:2/)., IMPUT(1,Z1,Z2,Z3,Z4).,


M01,TC(21(/i/),Zi(/2/),Z8(/l/)tZ2(/2/),Zl(/l/),21(/2/))l

*

M0LTC(Z3(/jL/),Z8(/2/),Z4(/l/),Z4(/2/),Z8(/l/)tZS(/£/)).

*

OUTPOT(8,'(E’),Zi,Z0)

•iND'TESTBbOCK

*ENB*

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

+3,0.

+1,0.

-3,0.

+4,0.

-3,0.

+0 ,0 .

+3,0. -3,0.

Результаты вычислений, полученные на узкой печати, -1300000 +02 +8999999 +01

-89999С9 +01 +8999999 +01

практически совпадают с теоретическими.

2Л . 8. Леденив комплексных чисел Определить частное деления следующих пар комплексных чисел

Z I

=

+3 + ) 1

2 2

=

- 3

+

j 4

2 3

=

+ 3

-

jf

3

2 4

=

-3 + j

О

16

©

Z 5 = Ц t

j

6

Z 6 a +0 +

j

0.

Решение, Исходная nporpauua транслятора:

- 01-

ТРАНСЛЯТОР НЭИ-3

’BEGIN’

'PROCEDURE’DIVC(A,B,C,D) RESULT :(E,f)., ’VAGUE 'A,B,C,D,,

‘KEAL’A fB,C,D,E,P., ’BEGIN’

’REAL*R,DEN.,

’I F’o o *AND *0-0 'THEN'STOP (77777).,

'IE'ABS(C) ’GT’a BS(D)'t h e n * ’b e g i n

R:»D/c,,

DENs-C+RXO.,

E:• (A +BXR) /DEN.,

F:-(B-AXR)/1)EN

e n d "'else * 'b e g i n *

R:»C/D.,

DEN:»D+RXC.,

e :■(a x r +b)/De n ., F:-(BXR-A)/DEN

e n d

’En d d i v c .,

TESTBLOCK:

Гео, r.yблудная научно - тсх::и .е кг библиотек* СС С ?

О1/ОСН0 пол


begin

'ARiUY*Zi,Z2,Z3,Z4,Z6,Ze(/l:2/).,

INPUT(i,Zi,Z2,Z3,24,Z6,Z6).,

DIVC(Zi(/l/) ,Zl(/2/) ,Z2(/1/) ,Z2(/2/) ,Zi(/l/) ,Zi(/2/)) .

OOTPOT(8,*(E*)

DIVC(Z3(/i/) ,Z3(/2/) ,Z4(/i/) ,Z4(/2/) ,ZB(/l/) ,Z3(/2/)) .

OUTPUT(3, *(E*) ,Z3) •,

DI?C(Z6(/1/) ,Z6(/2/) ,Z6(/1/) ,Z6(/2/) ,Z6(/i/) ,Z6(/2/))

end'testblock

"EHU ’

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

+3,0.

+1 ,0 .

-3,0. +4,0.

+3,0. -3,0.

-3,0.

+0 ,0 .

-4,0.

+6 ,0 .

+0 , 0.

+0 ,0 .

Результаты вычислений, полученные на узкой печати,

,-2000000 +00

-6G000G0 +00

 

-1000000

+01

 

 

 

+1000000

+01

 

 

совпадают с

теоретическими. В случае примера

(Т)

происз&р

дит деление

на нуль и это может

привести к

"переполнению".

18

В программе такая возможность предусмотрена и происходи при этом останов процесса вычислений оператором .STOP.

2,1.9,

Корень комплексного числа

Определить кррни четвертого

порядка от числа -I.

Решение.’Исходная программа транслятора:

- 0 1 -

ТРАНСЛЯТОР мзи-з

’BEGIN'

’PROCEDURE*NR00T(N,R,U)RESULT:(REAL .UNREAL).,

"Value *n, r , u. ,

' re al' r . o. ,

•INTEGER’N.,

'ARRAY’REAL .UNREAL.,

'BEGIN*

r e a lc .m.p i. s .t . ,

'INTEGER'I.,

t4:**l/N,,

P i : - з . 1 4 1 5 0 3 . ,

S:»(RXR+UXU)XX(M/2).,

т j« * i p' r^o *then*s i g«(u) i p i/2 ’else * ' i p r ' gt ' o ' then' arcta

N(U/R) *ELSE'AftCTAN(U/R) +PI»»

'TJ-MXT., C:-2XPIXM.,

'ffOR'l:“i'STEP* 1'UNTIL "N'DO*

'BEGIN'

REAL (/!/) :“SXCOS(T).,

19


OMHRAi,(/I/) I- S r S IN ( T ) .

T:»T+c

’END’ I

end 'n r o o t ,,

TESTBLOCK:

’BEGIN’ "

*REAL*R,U.,

i n t e g e r m.,

Ns-Ч ., Rs— i.O , , Us-O .O ., ’‘BEGIN*

’ARRAY’REAL,UNREAL ( / i: N / ) . t NROOT(N,R,U, REAL, UNREAL)., OUTPUT(S, ’ ( £ ’) ,REAL,UNREAL)

'END*

‘ *END*'X£STBLOCK ’END’PROGRAM.,

В исходной

программе вместо

стандартной функции

QrcfCfn ( К

/ Г ) использована функция A RC ( лх , г )

Результаты

вычислений, полученные на узкой печати,

 

+707106?

+00

 

-7071069 +00

 

-707106**

+00.

 

■+7071071

+00

+7071068 +00

+7071066 +00 -7071070 +00 -7071063 +00 ■

практически совпадают с теоретическими

20