31 lines
696 B
Text
31 lines
696 B
Text
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
|