Volevo fare un programmino che mi trovava il perimetro dati i lati di un trapezio, ma quando eseguo mi da un errore:
Overflow di un operazione aritmetica
codice:
Sub TrovaPerimetro()
Dim x As Int16 'lato x
Dim y As Int16 'lato y
Dim z As Int16 'lato z
Dim p As Int16 'semiperimetro
Dim area as Double
For x = 1 To 20
For y = 1 To 20
For z = 1 To 20
p = (x + y + z) / 2
If x < p And y < p And z < p Then
'l' errore è in questa riga:
area = p * (p - x) * (p - y) * (p - z)
End If
If area = 270 ^ 2 Then
Numeri.Items.Add("x: " & x & " y: " & y & " z: " & z)
End If
Next
Next
Next
End Sub
Volevo sottolineare che se uso numeri più piccoli non ho l' errore ma a me servono numeri grandi.
Qualcuno sa risolvere il problema? Grazie anticipatamente