Count the coins: Difference between revisions

m (→‎with error checking: added more error checks and better error messages formatting.)
Line 16:
'''Algorithm''':
See [http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-11.html#%_sec_Temp_52 here].
 
=={{header|360 Assembly}}==
{{trans|AWK}}
<lang 360asm>
* count the coins 04/09/2015
COINS CSECT
USING COINS,R12
LR R12,R15
L R8,AMOUNT npenny=amount
L R4,AMOUNT
SRDA R4,32
D R4,=F'5'
LR R9,R5 nnickle=amount/5
L R4,AMOUNT
SRDA R4,32
D R4,=F'10'
LR R10,R5 ndime=amount/10
L R4,AMOUNT
SRDA R4,32
D R4,=F'25'
LR R11,R5 nquarter=amount/25
SR R1,R1 count=0
SR R4,R4 p=0
LOOPP CR R4,R8 do p=0 to npenny
BH ELOOPP
SR R5,R5 n=0
LOOPN CR R5,R9 do n=0 to nnickle
BH ELOOPN
SR R6,R6
LOOPD CR R6,R10 do d=0 to ndime
BH ELOOPD
SR R7,R7 q=0
LOOPQ CR R7,R11 do q=0 to nquarter
BH ELOOPQ
LR R3,R5 n
MH R3,=H'5'
LR R2,R4 p
AR R2,R3
LR R3,R6 d
MH R3,=H'10'
AR R2,R3
LR R3,R7 q
MH R3,=H'25'
AR R2,R3 s=p+n*5+d*10+q*25
C R2,=F'100' if s=100
BNE NOTOK
LA R1,1(R1) count=count+1
NOTOK LA R7,1(R7) q=q+1
B LOOPQ
ELOOPQ LA R6,1(R6) d=d+1
B LOOPD
ELOOPD LA R5,1(R5) n=n+1
B LOOPN
ELOOPN LA R4,1(R4) p=p+1
B LOOPP
ELOOPP XDECO R1,PG+0 edit count
XPRNT PG,12 print count
XR R15,R15
BR R14
AMOUNT DC F'100' start value in cents
PG DS CL12
YREGS
END COINS
</lang>
{{out}}
<pre>
242
</pre>
 
 
 
=={{header|Ada}}==
1,392

edits