Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [QBASIC]controllo input

    Ciao ragazzi,
    Ho un programma dove dovrei fare un controllo dell'input...Mi spiego meglio io devo controllare k il valore che l'utente immette sia solamente un numero e in caso contrario devo fargli ripetere la domanda qualcuno di voi per caso saprebbe aiutarmi?

    Grazie mille
    Powered by Gentoo
    Dell XPS M1530

  2. #2
    Se non ricordo male quando usi INPUT con una variabile numerica, se l'utente inserisce caratteri non numerici QBASIC provvede automaticamente a chiedere nuovamente un input valido all'utente.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    se metto l'intero lui mi fa la domanda ma io vorrei controllare questa domanda...Vorrei che quella domanda non uscisse e la farei uscire io tramite qualche condizione,ciclo,istruzione...
    Powered by Gentoo
    Dell XPS M1530

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Allora per l'input usa una variabile stringa e poi controllane il contenuto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    si ma come faccio a controllarne il contenuto?
    Powered by Gentoo
    Dell XPS M1530

  6. #6
    Con la funzione MID$ puoi prendere un carattere alla volta e verificare che sia un numero.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Originariamente inviato da alex4988
    si ma come faccio a controllarne il contenuto?
    Si presuppone che tu conosca le basi del linguaggio ... ci sono le funzioni di estrazione di sottostringa come Left$, Mid$ ... quelle di ricerca Instr, quelle per la trasformazione in numero come la Val ...

    Dopo aver inserito la stringa, devi opportunamente usare queste funzioni ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    scusate ma io nn ho ancora capito come funziona mi stò sforzando in tt i modi di capire ma nn ci riesco.Metto qua una porzione di codice:
    cls
    INPUT a
    PRINT a
    Sul display in questo modo visualizzo tutto il contenuto dai numeri alle lettere ma io invece voglio visualizzare solo i numeri o meglio ancora se l'utente immette per caso una lettera vorrei k gli venga richiesto di immettere l'input(qst lo posso fare con un ciclo do loop while se conosco correttamente la funzione da usare).

    Gentilemnte potreste scrivermi come lo fareste voi io per il momento avevo risolto così:

    DO
    PRINT "Dammi un valore numerico"
    DIM a AS STRING, b AS INTEGER
    INPUT a
    b = VAL(a)
    LOOP WHILE VAL(a) = 0
    però facendo così la "e" nn viene preclusa poichè in matematica è associtao ad un numero...
    Powered by Gentoo
    Dell XPS M1530

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Dentro al ciclo inseriscine un altro (con una For ...) in cui controlli carattere per carattere il contenuto di a usando la mid$

    Se non e' un carattere compreso tra "0" e "9" (includi magari anche il punto decimale) allora indica la condizione d'errore e ripeti comunque la while
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Originariamente inviato da oregon
    Dentro al ciclo inseriscine un altro (con una For ...) in cui controlli carattere per carattere il contenuto di a usando la mid$

    Se non e' un carattere compreso tra "0" e "9" (includi magari anche il punto decimale) allora indica la condizione d'errore e ripeti comunque la while
    ho provato a fare così:
    dim str as string
    dim num as string
    dim lunghezza as integer
    dim indice as integer
    dim continua as integer
    continua=1
    indice=0

    do
    if continua=0 then print "Attenzione! Inserire solo numeri"

    print "inserire n"
    input str
    lunghezza=len(str)

    do
    num=mid(str,indice,1)

    select case num
    case "0" ,"1" ,"2" , "3" ,"4" , "5" ,"6" , "7" ,"8" , "9"
    continua=1
    case else
    continua=0
    end select

    indice=indice+1

    loop while indice<>lunghezza OR continua<>0

    loop while continua=0
    ma ancora nulla mi da problemi sul mid...Mi dà mismatch...nn ho usato for ma è la stessa identica cosa in teoria in questo modo...
    Powered by Gentoo
    Dell XPS M1530

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.