Ciao, ragazzi, vi presento il mio problema.
Ho creato un programmino con il visual basic 6 pro che mi consente di calcolare il massimo comune divisore di un tot di numeri, massimo 100.
Quando però vado ad inserire un controllo per far sì che mi dia un errore se inserisco lettere e non numeri, il programma sfasa dandomi l'errore n.13.
Ho fatto 1000 tentativi ma niente.![]()
Spero che voi mi possiate dare una mano.Grazie. Vi posto tutti i comandi inseriti qui sotto.
codice:Public Sub Form_Load() Dim M, n, R As Double Dim Scambio As Double Dim Cont, K, Num, Contr As Byte Dim Numeri(1 To 100) As Double Cont = InputBox("DI QUANTI NUMERI VUOI CALCOLARE L'MCD ?", "MCD", _ vbOKOnly) Contr = 0 Do While (Contr = 0) If (Not (IsNumeric(Cont)) Or (Cont < 2)) Then MsgBox ("Valore Errato....Dgitare un Numero > 1 !") Cont = InputBox("DI QUANTI NUMERI VUOI CALCOLARE L'MCD ?", "MCD", _ vbOKOnly) Contr = 0 Else: Contr = 1 End If Loop For K = 1 To Cont Numeri(K) = InputBox("SCRIVI IL NUMERO DI INDICE " & K, "MCD", _ vbOKOnly) Num = Numeri(K) Contr = 0 Do While (Contr = 0) If Not (IsNumeric(Num)) Then MsgBox ("Valore Errato....Dgitare un Numero > 1 !") Num = InputBox("Ridigita il valore", "MCD", _ vbOKOnly) Numeri(K) = Num Contr = 0 Else Contr = 1 End If Loop Next K MCD = Comune(Numeri(1), Numeri(2)) Debug.Print "M.C.D. ", Comune(Numeri(1), Numeri(2)), Num For K = 3 To Cont Debug.Print "M.C.D. ", Comune(MCD, Numeri(K)), Num MCD = Comune(MCD, Numeri(K)) Next K 'B = Comune(M, n) * 3 'Debug.Print B End End Sub Public Function Comune(X, Y) If X < Y Then Scambio = X X = Y Y = Scambio End If R = X Mod Y Do While (R <> 0) X = Y Y = R R = X Mod Y Loop Comune = Y End Function

Rispondi quotando