10 DEFINT C,L: DIM C(128) 20 AL$="abcdefghijklmnopqrstuvwxyz" 30 READ W$: IF W$="" THEN END 40 PRINT W$;" -> "; 50 S$=W$: GOSUB 1000 60 FOR I=1 TO L: PRINT C(I);: NEXT I 70 GOSUB 1100 80 PRINT " -> ";S$ 90 IF S$<>W$ THEN PRINT "Not equal" 100 GOTO 30 110 END 120 DATA broood,bananaaa,hiphophiphop,"" 1000 REM ENCODE 1010 Z$=AL$ 1020 FOR I=1 TO LEN(S$) 1030 J=INSTR(Z$,MID$(S$,I,1)) 1040 C(I)=J-1 1050 Z$=MID$(Z$,J,1) + LEFT$(Z$,J-1) + RIGHT$(Z$,LEN(Z$)-J) 1060 NEXT I 1070 L=LEN(S$) 1080 RETURN 1100 REM DECODE 1110 Z$=AL$ 1120 S$="" 1130 FOR I=1 TO L 1140 C$=MID$(Z$,C(I)+1,1) 1150 S$=S$+C$ 1160 J=INSTR(Z$,C$) 1170 Z$=MID$(Z$,J,1) + LEFT$(Z$,J-1) + RIGHT$(Z$,LEN(Z$)-J) 1180 NEXT I 1190 RETURN