|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 1280 (0x500)
Types: TextFile
Names: »TOWER.PAS«
└─⟦49cd49952⟧ Bits:30009431 50004848
└─⟦0c326962c⟧
└─⟦this⟧ »TOWER.PAS«
PROGRAM TOWERSOFHANOI (INPUT, OUTPUT);
TYPE POLE = (LEFT, MIDDLE, RIGHT) ;
POSITIVEINTEGER = 1..MAXINT ;
VAR NUMBEROFDISKS : POSITIVEINTEGER ;
PROCEDURE MOVE (N : POSITIVEINTEGER ;
SOURCE, AUXILIARY, DESTINATION : POLE) ;
PROCEDURE MOVEDISK ;
PROCEDURE PRINTPOLE (P : POLE) ;
BEGIN
CASE P OF
LEFT : WRITE ('LEFT') ;
MIDDLE : WRITE ('MIDDLE') ;
RIGHT : WRITE ('RIGHT')
END
END ; (* PRINTPOLE *)
BEGIN
WRITE ('MOVE A DISK FROM ') ; PRINTPOLE (SOURCE) ;
WRITE (' TO ') ; PRINTPOLE (DESTINATION) ;
WRITELN
END ; (* MOVEADISKFROMSOURCETODESTINATION *)
BEGIN
IF N=1 THEN MOVEDISK
ELSE BEGIN
MOVE (N-1, SOURCE, DESTINATION, AUXILIARY) ;
MOVEDISK ;
MOVE (N-1, AUXILIARY, SOURCE, DESTINATION)
END
END ; (* MOVE *)
BEGIN
READ (NUMBEROFDISKS) ;
WRITELN ('FOR', NUMBEROFDISKS:3, ' DISKS ',
'THE REQUIRED MOVES ARE :') ; WRITELN ;
MOVE (NUMBEROFDISKS, LEFT, MIDDLE, RIGHT)
END. «eof»