10 Rem ---
Animesh Tripathy -- Rachel Carson Middle School - 7th -
20 Rem --- ACSL
Junior Divison Contest 4 ----- 2010-2011 ---------
30 Rem --- Matrix
Encryption -------------------------------------
40 Dim
EncodingMatrix(4)
50 Dim
AlphaStringNum(100)
60 Rem Input
lines containing alpha string and Encoding Matrix
70 For I=1 to 5
80 Input
InputString$:InputString$=Upper$(InputString$)
90
L=len(InputString$) 'Find Length of the Input String
100
CommaPos=Instr(InputString$,",") '1st Command Position in the Input
Line
110 Rem Extract
AlphaString from the Input Line
120
AlphaString$=Left$(InputString$,CommaPos-1)
130 Rem Extract
Rest of the input line as encoding Matrix
140
EncodingMatrix$=Mid$(InputString$,CommaPos+1,L)
150 Gosub 1000
'Extra Integers from the encoding matrix string
160 Gosub 2000
'Build Resulting Alpha String
170 Print
ResultString$
180 Next I
190 END
1000 Rem Extract
Encoding Matrix
1010
LenOfEncodingMatrix=Len(EncodingMatrix$)
1020
K=1:word$=""
1030 For J=1 TO
LenOfEncodingMatrix
1040 IF
MID$(EncodingMatrix$,J,1) = " " THEN GOTO 1060
1050 IF
MID$(EncodingMatrix$,J,1) <> "," THEN
word$=word$+MID$(EncodingMatrix$,J,1) ELSE
EncodingMatrix(K)=val(word$):word$="":K=K+1
1060 NEXT J
1070
EncodingMatrix(K)=val(word$):word$="":K=K+1
1090 Return
2000 Rem Build
Resulting Alpha String from Input Alpha String and Encoding Matrix
2010 Rem Print
"Input Alpha String=";AlphaString$
2020
LengthOfAlphaString=len(AlphaString$)
2030 Rem Convert
Alpha String into Integers and store into array
2040 K=1
2050 For J=1 to
LengthOfAlphaString
2060 If
Mid$(AlphaString$,J,1) = " " Then AlphaStringNum(K)=27 Else
AlphaStringNum(K)=Asc(Mid$(AlphaString$,J,1))-64
2070 K=K+1
2080 Next J
2090 IF
(LengthOfAlphaString MOD 2) > 0 Then AlphaStringNum(K)=27
2100 Rem Now
Multiply Matrices to get result String
2110
ResultString$=""
2120 M=1
2130 While M<K
2140
Result=EncodingMatrix(1) * AlphaStringNum(M) + EncodingMatrix(2) *
AlphaStringNum(M+1)
2150 IF Result
>= 27 Then Result = Result MOD 27
2160 IF Result=0
Then ResultString$=ResultString$+" " Else
ResultString$=ResultString$+CHR$(Result+64)
2170
Result=EncodingMatrix(3) * AlphaStringNum(M) + EncodingMatrix(4) *
AlphaStringNum(M+1)
2180 IF Result
>= 27 Then Result = Result MOD 27
2190 IF Result=0
Then ResultString$=ResultString$+" " Else
ResultString$=ResultString$+CHR$(Result+64)
2200 M=M+2
2210 Wend
2220 Return