Execute HQ9+: Difference between revisions
Content added Content deleted
(Added Dyalect programming language) |
(Execute HQ9+ en FreeBASIC) |
||
Line 970: | Line 970: | ||
Go to the store, buy some more. |
Go to the store, buy some more. |
||
</pre> |
</pre> |
||
=={{header|FreeBASIC}}== |
|||
<lang freebasic> |
|||
' Intérprete de HQ9+ |
|||
' FB 1.05.0 Win64 |
|||
' |
|||
Dim Shared codigo As String: codigo = "" |
|||
Function HQ9plus(codigo As String) As String |
|||
Dim As Byte botellas, cont |
|||
Dim acumulador As Uinteger = 0 |
|||
Dim HQ9plus1 As String |
|||
For cont = 1 To Len(codigo) |
|||
Select Case Ucase(Mid(codigo, cont, 1)) |
|||
Case "H" |
|||
HQ9plus1 = HQ9plus1 + "Hello, world!" |
|||
Case "Q" |
|||
HQ9plus1 = HQ9plus1 + codigo |
|||
Case "9" |
|||
For botellas = 99 To 1 Step -1 |
|||
HQ9plus1 = HQ9plus1 + Str(botellas) + " bottle" |
|||
If (botellas > 1) Then HQ9plus1 = HQ9plus1 + "s" |
|||
HQ9plus1 = HQ9plus1 + " of beer on the wall, " + Str(botellas) + " bottle" |
|||
If (botellas > 1) Then HQ9plus1 = HQ9plus1 + "s" |
|||
HQ9plus1 = HQ9plus1 + " of beer," + Chr(13) + Chr(10) +_ |
|||
"Take one down, pass it around, " + Str(botellas - 1) + " bottle" |
|||
If (botellas > 2) Then HQ9plus1 = HQ9plus1 + "s" |
|||
HQ9plus1 = HQ9plus1 + " of beer on the wall." + Chr(13) + Chr(10) + Chr(10) |
|||
Next botellas |
|||
HQ9plus1 = HQ9plus1 + "No more bottles of beer on the wall, no more bottles of beer." +_ |
|||
Chr(13) + Chr(10) + "Go to the store and buy some more, 99 bottles of beer on the wall." |
|||
Case "+" |
|||
acumulador = (acumulador + 1) |
|||
Case "E" |
|||
End |
|||
Case Else |
|||
'no es una instrucción válida |
|||
End Select |
|||
If Mid(codigo, cont, 1) <> "+" Then |
|||
HQ9plus1 = HQ9plus1 + Chr(13) + Chr(10) |
|||
End If |
|||
Next cont |
|||
HQ9plus = Left(HQ9plus1, (Len(HQ9plus1) - 2)) |
|||
End Function |
|||
Cls |
|||
Do |
|||
Input codigo |
|||
Print HQ9plus(codigo): Print |
|||
Loop While Inkey <> Chr(27) |
|||
End |
|||
</lang> |
|||
=={{header|Go}}== |
=={{header|Go}}== |