Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Satunnaislukuja valikoivasti...

vb1235 [05.01.2004 16:30:23]

#

Onko VB:ssä käskyä, jolla saisi vain parillisen tai vaihtoehtoisesti vain parittoman satunnaisluvun.
Jos ei niin löytyisiköhän siihen mahdollisesti jokin
lauseke joka tämän toteuttaa...

Wizard [05.01.2004 16:35:03]

#

'Mod 2' on vastaus ongelmaasi. Tuolla voit testata, että onko luku jaollinen kahdella vai ei. Näin siis saat joko parillisen tai parittoman alkulukun. Ja Randomize on sitten satunnaislukua varten.

Muistaakseni
mod 2 = false

lause antaa vastauksia jos luku EI ole jaollinen kahdella.


Ja sitten tuo satunnaisluku eli ensin koodiin:

Randomize

Ja sitten

Int(9 * Rnd + 1) , jossa luku 9 on kertoja. Tuo lause antaa luvun väliltä 1-10 jos nyt en ihan väärin muista tuota syntaksia...

Wizard [05.01.2004 18:00:26]

#

Siis piti sanomani, että saa joko parillisen tai parittoman satunnaisluvun eikä alkuluvun. Alkuluku on hieman eri asia...

hunajavohveli [05.01.2004 19:19:07]

#

Ei kun tuo antaa luvun 1 ja yhdeksän väliltä.
Sen pitää olla
INT(RND*10+1)

Antti Laaksonen [05.01.2004 20:07:58]

#

Wizardin taktiikalla menee siis näin:

Randomize Timer

Dim luku As Integer

luku = Int(Rnd * 10) + 1
Do Until luku Mod 2 = 0 '0 = parillinen luku, 1 pariton
    luku = Int(Rnd * 10) + 1
Loop

MsgBox "Parillinen luku väliltä 1 - 10: " & luku

Toinen tapa on arpoa puolta pienempi luku kuin on tarpeen ja kertoa se kahdella. Parittoman luvun saa vähentämällä tästä luvusta yhden.

Randomize Timer

Dim luku As Integer

luku = Int(Rnd * 5) + 1     '10 / 2 = 5
luku = 2 * luku             'parillinen luku
'luku = 2 * luku - 1        'pariton luku

MsgBox "Parillinen luku väliltä 1 - 10: " & luku

Katso myös:
http://vb.ohjelmointiputka.net/?Rnd

Vastaus

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

Tietoa sivustosta