listati da Qbasic

esci listaqbasic.htm

 

DECLARE SUB indovinare (minore!, maggiore!, tentativi%)
REM vero3q
REM uso di ricorsione con procedura che si richiama
CLS
PRINT "indovinare un numero da pensare"
DO
PRINT "pensa un numero compreso tra 1 e 1000"
PRINT "premi return"
a$ = INPUT$(1)
tentativi% = 1
CALL indovinare(1, 1000, tentativi%)
PRINT "altra prova S,N :scelta:"
a$ = UCASE$(INPUT$(1))
CLS
LOOP UNTIL a$ = "N"
END

SUB indovinare (minore, maggiore, tentativi%)
mossa = INT((minore + maggiore) / 2)
PRINT
PRINT "provo a indovinare:hai pensato "; mossa
PRINT "numero:maggiore,minore,esatto A,B,G rispetto a pensato?"
DO
risposta$ = UCASE$(INPUT$(1))
LOOP UNTIL (risposta$ = "A") OR (risposta$ = "B") OR (risposta$ = "G")
SELECT CASE risposta$
CASE "A"
maggiore = mossa - 1
CALL indovinare(minore, maggiore, tentativi% + 1)
CASE "B"
minore = mossa + 1
CALL indovinare(minore, maggiore, tentativi% + 1)
CASE "G"
PRINT "ho indovinato il numero con tentatiti:"; tentativi%
END SELECT
END SUB