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)
|