21 lines
680 B
Plaintext
21 lines
680 B
Plaintext
100 PROGRAM "Soundex.bas"
|
|
110 FOR I=1 TO 20
|
|
120 READ NAME$
|
|
130 PRINT """";NAME$;"""";TAB(20);SOUNDEX$(NAME$)
|
|
140 NEXT
|
|
150 DEF SOUNDEX$(NAME$)
|
|
160 NUMERIC I,N,P
|
|
170 LET NAME$=UCASE$(NAME$):LET S$=NAME$(1)
|
|
180 LET N$="01230129022455012623019202"
|
|
190 LET P=VAL(N$(ORD(S$)-64))
|
|
200 FOR I=2 TO LEN(NAME$)
|
|
210 LET N=VAL(N$(ORD(NAME$(I))-64))
|
|
220 IF N<>0 AND N<>9 AND N<>P THEN LET S$=S$&STR$(N)
|
|
230 IF N<>9 THEN LET P=N
|
|
240 NEXT
|
|
250 LET S$=S$&"000"
|
|
260 LET SOUNDEX$=S$(1:4)
|
|
270 END DEF
|
|
280 DATA Aschraft,Ashcroft,Euler,Gauss,Ghosh,Hilbert,Heilbronn,Lee,Lissajous,Lloyd
|
|
290 DATA Moses,Pfister,Robert,Rupert,Rubin,Tymczak,VanDeusen,Wheaton,Soundex,Example
|