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