Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Tietojen tarkistus

Leinonen [07.10.2008 16:23:20]

#

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!

Metabolix [07.10.2008 16:38:19]

#

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.

Leinonen [07.10.2008 19:25:03]

#

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 If

selvennykseksi ongelmaan 2 liittyvät kohdat:

Dim Luku1 As Integer
    Dim Luku2 As Integer
Randomize()
        Luku1 = CStr(Int(Rnd() * 10))
        Luku2 = CStr(Int(Rnd() * 10))
If RadioButton4.Checked = True Then
            If TextBox1.Text = Luku1 / Luku2 Then

Niin, voisiko joku selittää, miten tätä IsNumeric-functiota käytetään? Ehtonako?
esim. if Not TextBox1.Text = IsNumeric?

Leinonen [07.10.2008 20:26:46]

#

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 If

Tämä taitaa toimia.
Kiitoksia Metabolixille.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta