Király Gyula: Programozás Quick-Basic nyelven

 

14. lecke

A VÉLETLEN PROGRAMOZÁSA

 

A számítógép képes véletlen számokat előállítani az RND függvény segítségével.

Az RND függvény olyan véletlen számot állít elő, amelynek értéke 0 és 1 közé esik, 0 értéket felvehet, de 1-et nem. Ez a szám tehát nem egész szám.

Matematikailag: 0 ≤ RND < 1.

Általában nekünk egész véletlen számokat kell előállítani, ehhez az RND eredményét kissé módosítani kell.

Állítsunk elő például lottó számokat. Ezek 1 és 90 közötti egész számok. Első lépésben RND értékét megszorozzuk 90-nel. Ekkor:

0 ≤ RND*90 < 90

Ezzel egy 0 és 90 közti számot kaptunk, ami 0 lehet, de 90 nem. Most ebből csináljunk egész számot. Erre alkalmas az INT függvény, amely a számoknak csak az egész részét veszi figyelembe. Ekkor:

0 ≤ INT(RND*90) ≤ 89

Most már egy 0 és 89 közötti egész számunk van, ehhez egyet kell hozzáadni, hogy pontosan a kívánt számhoz jussunk:

1 ≤ INT(RND*90)+1 ≤ 90

 

Általában ha 1 és "valami" között kell véletlen számot előállítani, akkor az utasítás formája:

N = INT(RND*"valami")+1

 

 

Két tetszőleges véletlen szám közötti érték előállítása a következő utasítással lehetséges:

N = INT(RND*(v-k+1))+k

 

Ahol v a számok végső (felső) határa, k a számok kezdeti (alsó határa).

            Például 50 és 100 közötti véletlen szám esetén:

            N = INT(RND*51)+50

 

1.      feladat

Írassunk ki 1 és 10 között egy véletlen számot!

Megoldás:

Ha a programot lefuttatjuk, egy 1 és 10 közötti egész szám jelenik meg a képernyőn. Ha többször lefuttatjuk, akkor ugyanazt a számot kapjuk. Hogy a véletlenszerűségről gondoskodjunk, a programba be kell szúrnunk egy RANDOMIZE TIMER utasítást, amely a gép órajelének felhasználásával generálja a tényleg véletlenszerű számokat.

 

2.      feladat

Írassunk ki 1 és 20 között 5 véletlen számot!

            Megoldás:

A megoldás FOR NEXT ciklusban történik, hiszen előre tudjuk, hogy 5 számot kell generálni.

 

3.      feladat

Rendezzünk lottósorsolást! Írassunk ki 5 véletlen számot 1 és 90 között!

            Megoldás:

A program jól működik, csak az a baja, hogy a véletlen számok törvényei szerint előfordulhat, hogy ugyanaz a szám többször is szerepel a sorban. Ezt nem engedhetjük meg. Mi a megoldás?

A program így átírva 5 lépésben 5 különböző számot (a, b, c, d és e) generál. Mielőtt a szám értékét kiíratnánk, megvizsgáljuk, hogy egyenlő-e valamelyik előbb generált számmal. Amennyiben egyenlőnek találja, újra futtatjuk az adott programrészt, és ha az új szám nem szerepelt még, továbblépünk a következő generálására.

 

 

GYAKORLÓ FELADATOK:

1.      Írass ki 100 és 200 között 10 véletlen számot!

 2.      Készíts dobókocka-szimulátort! 1-től 6-ig kell véletlen számot előállítanod!

 3.      Készíts felelő kiválasztó programot! (Az osztálylétszám alapján állíts elő véletlen számot!) A program írja ki, hogy a névsor szerint melyik gyerek lesz a felelő!

 

(Ugrás a Gyakorló Feladatok megoldásához)

Vissza a Tartalomhoz