Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Random?

Sivun loppuun

tekojalka [06.02.2004 21:12:50]

#

Miten voin valita Randomilla että ottaako se A, B tai C??

rndprogy [06.02.2004 21:15:01]

#

q = int(rnd * 2)
if q = 0 then print "A"
if q = 1 then print "B"
if q = 2 then print "C"

tekojalka [06.02.2004 21:21:18]

#

ja tarkoitus olisi saada se vielä messageboxiin.

rndprogy [06.02.2004 21:28:20]

#

ainakin tähän asti on toiminut näin:

q = int(rnd * 2)
if q = 0 then MsgBox "A"
if q = 1 then MsgBox "B"
if q = 2 then MsgBox "C"

tekojalka [06.02.2004 21:32:55]

#

Private Sub Command1_Click()
Dim random As Variant
A = "Oot puke! "
B = "Oot sairas! "
C = "Oot säälittävä! "
q = Int(Rnd * 2)
If q = 0 Then MsgBox "A"
If q = 1 Then MsgBox "B"
If q = 2 Then MsgBox "C"
MsgBox random & Text1.Text
End Sub

ei oikeen onnistu tolla

sooda [06.02.2004 21:36:32]

#

pistä MsgBox A, MsgBox "a" msgboxittaa a eikä muuttujan a sisällön.

rndprogy [06.02.2004 21:39:28]

#

tai pistä

Private Sub Command1_Click()
Dim random As Variant
A$ = "Oot puke! "
B$ = "Oot sairas! "
C$ = "Oot säälittävä! "
q = Int(Rnd * 2)
If q = 0 Then MsgBox A$
If q = 1 Then MsgBox B$
If q = 2 Then MsgBox C$
MsgBox random & Text1.Text
End Sub

sooda [06.02.2004 21:50:26]

#

pah $ merkit muuttujien perässä o jäänteitä qb:stä! pois ne! korkeintaan dimmaat ne stringiksi. mutta miksi olet dimmannut ton randomin variantiksi? turhaa. sehän o valmiiksi jo variantti...

Antti Laaksonen [06.02.2004 22:26:47]

#

Varsinkin jos viestivaihtoehtoja tulee vielä enemmän, ne kannattaa tallentaa taulukkoon.

Private Sub Command1_Click()
    Dim tiedot(1 To 3) As String, arpa As Integer
    'laitetaan vaihtoehdot taulukkoon
    tiedot(1) = "Vaihtoehto 1"
    tiedot(2) = "Vaihtoehto 2"
    tiedot(3) = "Vaihtoehto 3"
    'arvotaan luku väliltä 1 - 3
    arpa = Int(Rnd * 3) + 1
    'näytetään lukua vastaava tieto
    MsgBox tiedot(arpa)
End Sub

Private Sub Form_Load()
    'alustetaan satunnaislukugeneraattori
    Randomize Timer
End Sub

Lisätietoa:
https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_2
https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=Randomize
https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=Rnd

hunajavohveli [07.02.2004 18:57:26]

#

lainaus:

ainakin tähän asti on toiminut näin:

q = int(rnd * 2)
if q = 0 then MsgBox "A"
if q = 1 then MsgBox "B"
if q = 2 then MsgBox "C"

Tuo ei kyllä mielestäni ihan noin toimi.
Katsos sinulla on siinä int(rnd * 2), tuo rnd * 2 on luku nollasta kahteen. Mutta eihän rnd koskaan anna täyttä ykköstä, joten luvusta ei koskaan tule kahdella kerrottuna täyttä kakkosta, vaan korkeintaan joku 1.99999... kun tuosta poistetaan desimaalit int-fuktiolla, jää vain 1. Sen pitäisi olla rnd * 3, tuo antaa luvun 0-2.
rnd * 2 + 1 antaa luvun 1-2.

hunajavohveli [07.02.2004 18:58:36]

#

Älkää vaan kysykö miten tuo viesti noin meni. :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta