HANOI| begin comment library A1, A4, A5, A15; procedure disc (d); value d; integer d; begin if d = 1 then writetext(30, [A_]) else if d = 2 then writetext(30, [B_]) else if d = 3 then writetext(30, [C_]) else writetext(30, [ERROR_]) end disc; procedure print move (from, to); integer from, to; begin writetext(30, [Move*a*disc*from*]); disc(from); writetext(30, [*to*]); disc(to); writetext(30, [[c_]]); end print move; procedure solve (number, source, target, spare); value number, source, target, spare; integer number, source, target, spare; begin if number > 1 then begin solve(number-1, source, spare, target); print move (source, target); solve(number-1, spare, target, source); end else print move (source, target); end solve; integer disc count; open(30); open(20); disc count := 1; disc count := read(20); writetext(30, [The*Towers*of*Hanoi.[c_]Move_]); write(30, format([ndd_]), disc count); writetext(30, [*discs*from*tower*A*to*tower*C*via*tower*B_[c_]]); solve(disc count, 1, 3, 2); close(20); close(30) end | 3; | | |