Soundex: Difference between revisions
m
ANSI Standard BASIC and BBC BASIC moved to the BASIC section.
Thundergnat (talk | contribs) m (syntax highlighting fixup automation) |
m (ANSI Standard BASIC and BBC BASIC moved to the BASIC section.) |
||
Line 302:
printf(($b("ok", "not ok"), 1l$, output = expected output OF soundex test[i]))
OD</syntaxhighlight>
=={{header|ANSI Standard BASIC}}==▼
{{trans|BBC Basic}}▼
Note: Line numbers (strict ANSI interpretation), LET and the variable after NEXT are not optional.▼
<syntaxhighlight lang="ansi">100 DECLARE EXTERNAL FUNCTION FNSoundex$▼
110 ▼
120 DATA Ashcraft, Ashcroft, Gauss, Ghosh, Hilbert, Heilbronn, Lee, Lloyd▼
130 DATA Moses, Pfister, Robert, Rupert, Rubin, Tymczak, Soundex, Example▼
140 FOR i = 1 TO 16▼
150 READ name$▼
160 PRINT """"; name$; """"; TAB(15); FNsoundex$(name$)▼
170 NEXT i▼
180 END▼
190 ▼
200 EXTERNAL FUNCTION FNsoundex$(name$)▼
210 LET name$ = UCASE$(name$)▼
220 LET n$ = "01230129022455012623019202"▼
230 LET s$ = name$(1:1)▼
240 LET p = VAL(n$(ORD(s$) - 64 : ORD(s$) - 64))▼
250 FOR i = 2 TO LEN(name$)▼
260 LET n = VAL(n$(ORD(name$(i:i)) - 64: ORD(name$(i:i)) - 64))▼
270 IF n <> 0 AND n <> 9 AND n <> p THEN LET s$ = s$ & STR$(n)▼
280 IF n <> 9 THEN LET p = n▼
290 NEXT i▼
300 LET s$ = s$ & "000"▼
310 LET FNSoundex$ = s$(1:4)▼
320 END FUNCTION</syntaxhighlight>▼
=={{header|Arturo}}==
Line 551 ⟶ 523:
</pre>
=={{header|
▲==={{header|ANSI Standard BASIC}}===
▲{{trans|BBC Basic}}
▲Note: Line numbers (strict ANSI interpretation), LET and the variable after NEXT are not optional.
▲<syntaxhighlight lang="ansi">100 DECLARE EXTERNAL FUNCTION FNSoundex$
▲110
▲120 DATA Ashcraft, Ashcroft, Gauss, Ghosh, Hilbert, Heilbronn, Lee, Lloyd
▲130 DATA Moses, Pfister, Robert, Rupert, Rubin, Tymczak, Soundex, Example
▲140 FOR i = 1 TO 16
▲150 READ name$
▲160 PRINT """"; name$; """"; TAB(15); FNsoundex$(name$)
▲170 NEXT i
▲180 END
▲190
▲200 EXTERNAL FUNCTION FNsoundex$(name$)
▲210 LET name$ = UCASE$(name$)
▲220 LET n$ = "01230129022455012623019202"
▲230 LET s$ = name$(1:1)
▲240 LET p = VAL(n$(ORD(s$) - 64 : ORD(s$) - 64))
▲250 FOR i = 2 TO LEN(name$)
▲260 LET n = VAL(n$(ORD(name$(i:i)) - 64: ORD(name$(i:i)) - 64))
▲270 IF n <> 0 AND n <> 9 AND n <> p THEN LET s$ = s$ & STR$(n)
▲280 IF n <> 9 THEN LET p = n
▲290 NEXT i
▲300 LET s$ = s$ & "000"
▲310 LET FNSoundex$ = s$(1:4)
▲320 END FUNCTION</syntaxhighlight>
==={{header|BBC BASIC}}===
<syntaxhighlight lang="bbcbasic"> DATA Ashcraft, Ashcroft, Gauss, Ghosh, Hilbert, Heilbronn, Lee, Lloyd
DATA Moses, Pfister, Robert, Rupert, Rubin, Tymczak, Soundex, Example
|