PDA

View Full Version : [Visual Basic] Problema in programmazione


ttesports
26-02-2013, 19:19
Ciao a tutti,

Premetto di essere alle prime armi riguardo la programmazione e sto iniziando ad imparare con vb 2010. Ho cercatodi scrivere un programma che mi calcolasse il risultato delle equazioni di 2° grado. Ho scritto tutto il codice ed alla fine ho terminato la codifica con 0 errori nel registro.
Adesso però quando eseguo il debug e scrivo una qualsiasi equazioni, mi da il seguente errore:
Cast non valido dalla stringa "-b+str(d)" al tipo 'Double'.

Ecco il codice che ho scritto dietro il command
Private Sub Button1_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
dim a,b,c as integer
dim d, x1, x2 as single

A = val(TextBox1.text)
B = val(TextBox2.text)
C = val(TextBox3.text)

D = b^2-4*a*c
If D>0 then
x1 = ("-b+str(d)")/(2*a)
x2 = ("-b-str(d)")/(2*a)

TextBox4.text = "x1, x2"
else
If D=0 then
x1 = -b/(2*a)
x2 = x1

TextBox4.text = "x1, x2"
else
TextBox4.text = "Impossibile"


End if


End if


End Sub

Potete aiutarmi?
Grazie

AllerITA
27-02-2013, 07:08
vedo alcune cose che non mi sembrano coerenti nelle espressioni

x1 = ("-b+str(d)")/(2*a)
x2 = ("-b-str(d)")/(2*a)
perché utilizzi le variabili b, d e a che sono solo inizializzate, cioè dovrebbero valere
se non sbaglio 0, quindi 1/0 dovrebbe dare infinito e forse causare il problema.
Oltre a ciò ti conviene forse utilizzare direttamente l'espressione senza fare
ricorso al cast implicito da stringa a double così:

x1=(d-b)/(2*a)
x2=(d-b)/(2*a)
quindi usare str(x1) e str(x2) se vuoi utilizzare le stringhe.
E una cosa importante il maiuscolo e minuscolo conta "a" e' diverso da "A".
Poi ti consiglio di studiare bene le stringhe perché vedo anche altri errori.