Originariamente inviato da MdE2005
Quanti errori/inesattezze..
Partiamo da un presupposto: non devi risolvere un'equazione ma semplicemente devi svolgere una
divisione tra 2 numeri dati in input.
Partiamo dalle 3 inesattezze principali:
1. la variabile
I è inizializzata ma non utilizzata, per quale motivo l'hai inserita?
2. perchè le variabili
a,b,x,I sono state dichiarate fuori dalla procedura, pur essendo il loro utilizzo esclusivamente di tipo "privato"?
3. Il
MsgBox è fuori dal ciclo Do, per cui ti restituirà solamente il risultato dell'ultima operazione effettuata.
Ecco gli errori:
1. la funzione
InputBox restituisce un dato di tipo
String, mentre te lo utilizzi come dato Integer: capisco che VB fa il
cast implicito dei tipi di dati, ma per correttezza formale sarebbe necessario trasformare il dato stringa in numerico
2. hai dichiarato le variabili come
Integer: se l'utente desiderasse inserire un numero con la virgola cosa succederebbe?
3. totale assenza della
gestione degli errori: se l'utente per sbaglio non inserisce un dato, oppure lo inserisce con un carattere non valido (es. 123a), il programma non è pronto a rispondere a tale evenienza.
Conclusioni: ti consiglio di riscrivere questo codice facendo attenzione ai punti che ti ho mostrato; anche se non stai scrivendo un software per un dispositivo
embedded critico, attenersi alle buone regole di programmazione e correttezza formale è sempre consigliabile.
Sono a disposizione per ulteriori chiarimenti.
Ciao
PS: la prossima volta nel titolo inserisci il linguaggio (e la versione..)