Kuinka pystyy tekemään sellaisen, että arvalla heitetty vastaus on joko 0 tai sitten 5?
Jos nyt olen ymmärtänyt oikein tuon RND:n toiminnan niin sen pitäisi toimia näin:
luku = (RND*1)*5 'siis käsittääkseni pelkkä randomi palauttaa joko arvon 0 tai sitten 1
Mutta kun ei toimi. Miten tämän siis saisi toimimaan?
edit: Ei sittenkään mitää... Sain toimiin jo.
RANDOMIZE TIMER luku = (RND * 1) luku = luku * 5
rnd kyllä palauttaa siis kyllä arvon väliltä 0 ja 1. eli se voi olla vaikka 0.6697457...
Joo tiesin ton mut ei käyny mieles(sillon, kun kirjotin ton), kun en oo vielä tarvinnu noita pilkkulukuja :)
PS. Noitten koodinpätkien perusteella saa kyllä sen käsityksen etten tienny tai jotai...
Joo siis toimii se jos pistät CINT(RND), joka arpoo 0 tai 1, koska jos luku on < 0.5 se pyöristyy 0 tai jos se on > tai = 0.5 se pyöristyy 1.
Edit: Ja ykkösellä ei tarvitse kertoa, koska se ei ikinä muuta mitään lukua.
Tosta mun esimerkistäni oli jääny epähuomiossa pois "DIM luku as integer" rivi.
lainaus:
Edit: Ja ykkösellä ei tarvitse kertoa, koska se ei ikinä muuta mitään lukua.
Nii mut kato, jos haluut saada joko luvun nolla tai sit luvun viis etkä mitään muuta ni sitte tarttee kertoa. Mää tarttin :)
Mä oon tehny aina näin:
A = INT(RND * 1) A = A * 5
miksi tuo tossa oleva A pitäisi DIMmata.
No jaa... se on ihan maku kysymys. Jotku kato tykkää dimmata kaikki muuttujat joita käyttää(ite en kylläkään dimmaa kaikkia...) ja toiset taas ei. Pääasia on, että toimii.
On hyvä määritellä kaikki muuttujat ennen niiden käyttöä. QBasicissa tästä ei tosin sinänsä ole hyötyä oletustyyppiin tai muuttujan loppuun laitettavaan merkintään verrattuna. Vähintään kannattaa laittaa ohjelman alkuun "DEFINT A-Z", jolloin määrittelemättömät muuttujat ovat INTEGER-tyyppisiä ja siksi nopeampia käsitellä. Visual Basicissa (jos ohjelman alussa on Option Explicit) ja VB.NETissä muuttujat täytyy määritellä aina, ja tämä on hyvä tapa.
lainaus:
Nii mut kato, jos haluut saada joko luvun nolla tai sit luvun viis etkä mitään muuta ni sitte tarttee kertoa. Mää tarttin :)
En nyt oikein käsitä. Ykkösellä ei koskaan tarvitse kertoa. Ota mikä tahansa luku.
1*2=2
1*5.14=5.14
1*0=0
Ykkösellä kertominen (tai jakaminen) ei muuta mitään lukua ikinä.
No mulla oli vähän ailahduksia tos ajattelemisessa. Ajattelin kato kokoajan, että RND kerrotaan jollain muuttujalla niin se muuttuja on mahdollisesti myös yksi ;)
Joo, luulin tuota muuten itsekin kun olin vielä aloittelija, mutta RND toimii ihan yksikseen ja silloin se palauttaa aina luvun 0 ja 1 väliltä. Tuo luku voidaan sitten tietysti kertoa millä tahansa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.