Készítsen programot, amely 2 szám közti intervallumból véletlenszerüen kiír egyet a képernyőre. Biztosítsa be, hogy a 2 szám közti intervallum legalább 20 legyen?
Egyrészt amit az első mondott, másrészt
1) x-et akkor is kiírod, ha nem generáltad le (túl kicsi az intervallum).
2) és az intervallum beolvasását pedig egy Repeat...Until ciklussal szokás megoldani
3) a Random(c)+a pedig nem generálhat b-t, úgyhogy Random(c+1)+a kéne, hogy legyen.
1. a program bekér 2 számot: a és b
2. elősször megnézi, hogy a két szám között minimum 20 a különbség, vagy sem: c:=b-a
3. ha a különbség 20, vagy nagyobb akkor kiír egy véletlen számot az "a" és a "b" szám közti intervallumból.
szerintem oda random(b)+a, kell, nem pedig random(c)+a, mer a "b" és az "a" között kell keresni egy számot, nem pedig a "c" és az "a" között.
viszont nem értem, mért írja azt a hibaüzenetet a random(b)-re.
A Random függvény *egész* típust vár, a Real pedig valós. a, b és c típusa legyen LongInt, ne pedig Real.
És nem Random(b)+a kell, hanem Random(c+1)+a. Hogy miért? A Random(n) függvény egy 0 és n-1 közti egész értéket ad vissza (lehet 0 és n-1 is). Tehát a Random(c+1) 0 és c között ad egy egész értéket. Nézzük a két szélsőértéket:
a) Random(c+1)=0. Ekkor Random(c+1)+a=a, ami a minimális érték.
b) Random(c+1)=c.
Ekkor Random(c+1)+a=c+a. De c=b-a, hiszen úgy adtad meg c értékét. Tehát c+a=b-a+a=b.
Vagyis a két szélsőérték a és b, és köztük a Random(c+1)+a függvény minden értéket felvehet.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!