eli miten voin arpoa luvun 1 - 1 000 000 väliltä.
aloitus koodi
DIM SHARED luku AS STRING PRINT "Valitse luvut 1 - 1000000 väliltä. erota luvut toisistaan pilkulla!" INPUT "luvut: ", luku$
edit: typoja
Koska QB on niin alkeellinen et voi valita lukua yhden ja MILJOONAN väliltä. Luvun täytyy olla jotain 30000 maks. Ja se tapahtuu
RANDOMIZE TIMER 'suositeltavaa että aloittaessa on aina eriluku luku = INT(RND * 30000) + 1
.. ja mihin kohtaan koodi tulee
Sinne missä haluat arpoa sen luvun.
QB valittaa tuosta "luku" hommasta "type mismatch"
Kyllä luvun voi QBasicissakin arpoa yhden ja miljoonan väliltä. Muuttujan vain täytyy olla LONG-tyyppinen, jotta arvottu luku mahtuu siihen. Tässä on esimerkki:
DIM luku AS LONG RANDOMIZE TIMER luku = INT(RND * 1000000) + 1 PRINT "Arvottu luku:"; luku
Vielä alkuperäisestä koodista: Merkkijono (STRING) tuskin on paras muuttujatyyppi lukujen tallentamiseen. Ja en usko, että tarvitset SHARED-muuttujaa. SHARED-määritystä käytetään ainoastaan silloin, kun muuttujan arvoon täytyy päästä käsiksi aliohjelmissa ja funktioissa.
Minulla on yksi aliohjelma..
Sen takia SHARED
miten saisin tähän vielä että voi valita luvut joidenka välistä arvata?
tekojalka kirjoitti:
Minulla on yksi aliohjelma..
Sen takia SHARED
Ehkä olisi parempi, jos välittäisit aliohjelmalle muuttujan arvon parametrina, jolloin tuon muuttujan ei täytyisi olla yleinen. Mutta käyhän se toki noinkin.
tekojalka kirjoitti:
miten saisin tähän vielä että voi valita luvut joidenka välistä arvata?
Tarvittava kaava löytyy sivulta http://qb.ohjelmointiputka.net/?RND.
en oikein ymmärtänyt tuota kaavaa
No, ensin siinä lasketaan miltä väliltä luku arvotaan ja sitten arvotaan se ja lisätään minimiin. Tai, jotain...
Sijoita vain haluamasi ylä- ja alaraja tuohon kaavaan. Esim. jos haluat arpoa luvun väliltä 17 - 61, kirjoita:
luku = INT((61 - 17 + 1) * RND + 17)
mutta käyttäjä itse saisi valita sen.
Kantsiskohan lukea vähän oppaita?!
Edit: Kaikista parhaiten sitä oppii kun viittii itse vähän paneutua asiaan.
Funktio RND siis palauttaa "satunnaisen" luvun väliltä 0-1.
oke
mutta voisitteko vastata tuohon ylempän kysymykseen
miten voin tehdä sen siten että käyttäjä saisi itse valita ne luvut
En ymmärrä QB:stä mitään, mutta kai se toimii ihan samalla lailla kun esim. c:llä. Eli otat käyttäjältä jollain komennolla luvut muuttujiin ja asetat ne muuttujat tuohon aikaisemmin mainittuun koodiin.
Lue luvut muuttujiin INPUT-komennolla, ja sijoita muuttujat tuohon kaavaan.
INPUT "Anna alaraja:", ala& INPUT "Anna yläraja:", yla& '... luku = INT((yla& - ala& + 1) * RND + ala&)
Okei nyt ohjelma toimii kuten haluan.
Aihe on jo aika vanha, joten et voi enää vastata siihen.