Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
39
Task/Sudan-function/MAD/sudan-function.mad
Normal file
39
Task/Sudan-function/MAD/sudan-function.mad
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
NORMAL MODE IS INTEGER
|
||||
|
||||
R WE HAVE TO DEFINE OUR OWN STACK FIRST
|
||||
DIMENSION STACK(1000)
|
||||
SET LIST TO STACK
|
||||
|
||||
R SUDAN FUNCTION
|
||||
INTERNAL FUNCTION(N,X,Y)
|
||||
ENTRY TO SUDAN.
|
||||
|
||||
R BASE CASES
|
||||
WHENEVER N.E.0, FUNCTION RETURN X+Y
|
||||
WHENEVER Y.E.0, FUNCTION RETURN X
|
||||
|
||||
R RECURSIVE CASE - WITH MANUAL STACK MANIPULATION
|
||||
R NOTE WE DON'T NEED X AFTER THE FIRST CALL
|
||||
SAVE RETURN
|
||||
SAVE DATA N,Y
|
||||
K = SUDAN.(N,X,Y-1)
|
||||
RESTORE DATA N,Y
|
||||
RESTORE RETURN
|
||||
|
||||
SAVE RETURN
|
||||
K = SUDAN.(N-1, K, K+Y)
|
||||
RESTORE RETURN
|
||||
FUNCTION RETURN K
|
||||
END OF FUNCTION
|
||||
|
||||
INTERNAL FUNCTION(N,X,Y)
|
||||
ENTRY TO SHOW.
|
||||
VECTOR VALUES FMT = $7HSUDAN.(,I1,1H,,I1,1H,,I1,4H) = ,I8*$
|
||||
PRINT FORMAT FMT,N,X,Y,SUDAN.(N,X,Y)
|
||||
END OF FUNCTION
|
||||
|
||||
SHOW.(1,3,3)
|
||||
SHOW.(2,1,1)
|
||||
SHOW.(2,2,1)
|
||||
SHOW.(3,1,1)
|
||||
END OF PROGRAM
|
||||
Loading…
Add table
Add a link
Reference in a new issue