|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2013
Messaggi: 1
|
[Visual Basic] Problema in programmazione
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 Codice:
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 Grazie |
![]() |
![]() |
![]() |
#2 |
Member
Iscritto dal: Oct 2010
Città: Savona
Messaggi: 194
|
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.
__________________
AMD Phenom II X6 3Ghz, MB Gigabyte 790xta-ud4 F4A, 4Gb Ram ddr3, HD Segate Barracuda 1T, SV ASUS GTX 560 Ti DirectCu II ,Monitor Philips 1920x1080 led 2 ms, Xbox360 Slim, Tablet Asus Transformer Pad TF300T, Gameboy Advance, Ipod Touch 16Gb Ultima modifica di AllerITA : 27-02-2013 alle 07:12. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:06.