moi vaan.
Teen Visual Basic 2005 express editionilla ohjelmaa, jossa valitset
radiobuttoneilla millaisen laskutoimituksen haluaa (+-*/),painat nappia,
ohjelmaa arpoo sinulle laskun, johon vastaat textboxilla ja ohjelma tarkistaa.
ongelma 1.
Mitä voin tehdä ettei tule nollalla jakamista?
ongelma 2. (kriittisempi)
Jos vastaustextboxiin laittaa kirjaimia, tulee viesti:
muunto merkkijonosta lajiksi double ei ole mahdollinen.
Ohjelma sekoaa.
ihmeellisintä on, että minun muuttujani eivät ole lajia double, vaan integer!
Vaikka vaihdan muuttujat (Luku1 & Luku2) lajiksi String, niin: Ei toimi!
Help me!
1. Tutustu If-Then-Else-rakenteeseen, se toimii aivan samalla tavalla kuin vanhassakin VB:ssä. Tarkista siis, onko kyseessä jakolasku ja onko jakaja nolla, ja jos on, näytä virheilmoitus, muuten laske lasku.
2. Tarkista ensin IsNumeric-funktiolla, ovatko tekstit lukuarvoiksi sopivia, ja muunna ne vasta sitten luvuiksi. Käytä tässäkin If-lausetta.
No niin, ongelma nr.1 selvitetty tälläisellä koodilla:
siis lisäsin loopin.
If RadioButton4.Checked = True Then
Do
Luku2 = CStr(Int(Rnd() * 10))
Loop Until Not Luku2 = 0
If TextBox1.Text = Luku1 / Luku2 Then
MsgBox("RIGHT!")
Else
MsgBox("NO!")
End If
End Ifselvennykseksi ongelmaan 2 liittyvät kohdat:
Dim Luku1 As Integer
Dim Luku2 As IntegerRandomize()
Luku1 = CStr(Int(Rnd() * 10))
Luku2 = CStr(Int(Rnd() * 10))If RadioButton4.Checked = True Then
If TextBox1.Text = Luku1 / Luku2 ThenNiin, voisiko joku selittää, miten tätä IsNumeric-functiota käytetään? Ehtonako?
esim. if Not TextBox1.Text = IsNumeric?
Anteeksi kun vastaan lopulta omiin kysymyksiini, mutta ongelma 2 on ratkaistu.
Koodi:
Dim numericCheck As Boolean
Dim insert As Object
insert = TextBox1.Text
numericCheck = IsNumeric(insert)
If TextBox1.Text = "" Then
MsgBox("ANSWER SOMETHING!")
End
End If
If RadioButton1.Checked = True Then
If numericCheck = False Then
MsgBox("INSERT NUMBERS!", MsgBoxStyle.Critical)
End
End If
If TextBox1.Text = Luku1 + Luku2 Then
MsgBox("RIGHT!")
Else
MsgBox("NO!")
End If
End IfTämä taitaa toimia.
Kiitoksia Metabolixille.
Aihe on jo aika vanha, joten et voi enää vastata siihen.