Execute HQ9+: Difference between revisions

Content added Content deleted
Line 56: Line 56:


=={{header|Applesoft BASIC}}==
=={{header|Applesoft BASIC}}==
<lang ApplesoftBasic> 10 DIM F(127)
<lang ApplesoftBasic>100 INPUT "HQ9+ : "; I$
20 LET F(ASC("H")) = 1
110 LET J$ = I$ + CHR$(13)
30 LET F(ASC("Q")) = 2
120 LET H$ = "HELLO, WORLD!"
40 LET F(ASC("9")) = 3
130 LET B$ = "BOTTLES OF BEER"
50 LET F(ASC("+")) = 4
140 LET W$ = " ON THE WALL"
60 LET B$ = " BOTTLES OF BEER"
150 LET W$ = W$ + CHR$(13)
70 LET W$ = " ON THE WALL"
160 FOR I = 1 TO LEN(I$)
80 LET W$ = W$ + CHR$(13)
170 LET C$ = MID$(J$, I, 1)
180 IF C$ = "H" THEN PRINT H$

190 IF C$ = "Q" THEN PRINT I$
90 INPUT "HQ9+ : "; I$
200 LET A = A + (C$ = "+")

210 IF C$ <> "9" THEN 280
100 LET L = LEN(I$)
220 FOR B = 99 TO 1 STEP -1
110 IF L THEN GOSUB 130
230 PRINT B; " "B$ W$; B; " "B$
120 END
240 PRINT "TAKE ONE DOWN, ";

250 PRINT "PASS IT AROUND"
130 FOR I = 1 TO L
140 LET C$ = MID$(I$, I, 1)
260 PRINT B - 1; " "B$ W$
150 LET F = F(ASC(C$))
270 NEXT B
280 NEXT I</lang>
160 ON F GOSUB 190, 210, 230, 300
170 NEXT I
180 RETURN

190 PRINT "HELLO, WORLD!"
200 RETURN

210 PRINT I$
220 RETURN

230 FOR B = 99 TO 1 STEP -1
240 PRINT B; B$ W$; B; B$
250 PRINT "TAKE ONE DOWN, ";
260 PRINT "PASS IT AROUND"
270 PRINT B - 1; B$ W$
280 NEXT B
290 RETURN

300 LET A = A + 1
310 RETURN</lang>
0INPUT"HQ9+: ";I$:N$=CHR$(13):DIMS$(127):S$(ASC("H"))="HELLO, WORLD!"+N$:S$(ASC("Q"))=I$+N$:B$=" BOTTLES OF BEER":W$=" ON THE WALL"+N$:FORI=1TOLEN(I$):C$=MID$(S$(ASC("Q")),I,1):PRINTS$(ASC(C$));:A=A+(C$="+"):IFC$<>"9"THENNEXTI:END

1FORB=99TO1STEP-1:PRINTB;B$W$B;B$N$"TAKE ONE DOWN, PASS IT AROUND"N$B-1;B$W$:NEXTB,I


=={{header|x86 Assembly}}==
=={{header|x86 Assembly}}==