Kezdőoldal » Számítástechnika » Programozás » Hogyan tudnám megoldani a...

Hogyan tudnám megoldani a lentebb taglalt programozási problémát?

Figyelt kérdés

C# nyelvről van szó!


Azt akarom elérni, hogy a gép generáljon 5 véletlenszerű számot két bizonyos szám között, amiket külön-külön el is tárolunk. Ezt eddig megoldottam így:


Random veletlen = new Random();

szam = veletlen.Next(1,21);

Random veletlen2 = new Random();

szam2 = veletlen.Next(1,21);

Random veletlen3 = new Random();

szam3 = veletlen.Next(1,21);


...és így tovább ugye még kétszer.


Az első problémám, hogy nem-e lehetne valami ciklussal vagy máshogy, amit még nem tanultam megoldani, hogy ne keljen ennyi sort írnom?


A második és egyben a legfontosabb kérdésem meg az, hogy hogyan tudom azt elérni, hogy ebben az 5 véletlenszerű generálásban ugyan azt a számot ne kapjam.


Ugye 1 és 20 között generáltam a fenti kódokkal 5 számot.

Csak a program futtatása alatt vettem észre, amikor teszteltem és ez mindent elront így.


2010. dec. 20. 18:11
 1/6 anonim ***** válasza:

Nem programoztam C#-ban, de bizonyos dolgok minden nyelvben ugyanazok.

Tehát először is: de, csinálhatod ciklussal, csak akkor nem fog menni, hogy szam, szam1 stb. nevű változókat használsz, hanem egy tömbváltozóra lesz szükséged, aminek az i-edik elemébe írsz. Keress rá a C# leírásában a tömbök használatára.


Másodszor: nem tudod megakadályozni, hogy ugyanaz a szám jöjjön ki újból. Ezt úgy szokták csinálni, hogy amikor kisorsolnak egy számot, akkor utólag ellenőrzik, hogy volt-e már az eddigiek között, és akkor újat kérnek. Mivel elvileg 2-3.sok alkalommal is kijöhet olyan, ami már volt, ezért ezt is ciklusban érdemes csinálni. Könnyebb az ellenőrzést elvégezni, ha a kihúzott számokat halmaz adattípusban tárolod (sőt, akkor nem is kell egyenként ellenőrizni, mert a halmazhoz olyan számot adva, ami már volt, nem nő az elemszám, tehát addig kell a főciklusnak futnia, amíg elég sok elem nem lesz a halmazban).

2010. dec. 20. 20:11
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Tökéletes az első megoldása, csak azért írom, hogy ne várj több választ :D
2010. dec. 21. 08:34
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:

Az első vagyok. Itt találsz egy nagyon rövid megoldást Python nyelvben, ebből meríthetsz útmutatást a C# megoldásra is:


[link]

2010. dec. 21. 09:51
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Nagyon köszönöm a választ.

Így már meg tudom oldani. (Remélem.)

2010. dec. 21. 13:46
 5/6 anonim ***** válasza:
Szívesen! Aki ennyiből meg tudja oldani, annak érdemes segíteni!
2010. dec. 21. 14:27
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
:) Ugyan, nem volt ez annyira nehéz. De azért kellet rajta gondolkodnom.
2010. dec. 21. 20:48

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!