==== Gondoltam egy számot... ==== Generáljon egy véletlen egész számot 1 és 20 között, majd kérjen be tippeket egész addig, míg a felhasználó el nem találja a gondolt számot! **Megoldás:** A véletlen szám generáláshoz a Random osztály egy példányát használjuk - ez 0-tól a paraméterként megadott szám mínusz egyig terjedő intervallumból ad vissza egy természetes számot. Az első tippet előre beolvassuk a feltételes ciklus előtt, majd a további tippeket a ciklus magban kérjük be: class Program { static void Main(string[] args) { Random rand = new Random(); int num = rand.Next(10)+1; Console.WriteLine("Gondoltam egy 1 és 10 közötti számot!\nTaláld ki!"); int be = Convert.ToInt32(Console.ReadLine()); while (num != be) { Console.WriteLine("Nem talált!\nA gondolt szám nem {0}!\nTippelj újra!", be); be = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine("Nyert!\nA gondolt szám {0}!", num); Console.ReadKey(); } } Az előreolvasás helyett a beolvasást a ciklusfeltételbe is elhelyezhetjük: ... Console.WriteLine("Gondoltam egy 1 és 10 közötti számot!\nTaláld ki!"); int be; while (num != (be = Convert.ToInt32(Console.ReadLine()))) { Console.WriteLine("Nem talált!\nA gondolt szám nem {0}!\nTippelj újra!", be); } ... Ilyen esetben az értékadás is, mint a függvények, metódusok visszatérési értékkel rendelkezik, visszaadott értéke a baloldali változó értékadás utáni értékével egyezik meg. ==== Menekülő út… ==== Az előző feladatot egészítse ki úgy, hogy ha a felhasználó 0 értéket ad meg, akkor kilépjünk a programból! A választható számok körét növeljük meg 100-ra! **Megoldás:** Az előző kódot két ponton kell módosítanunk. Egyrészt a ciklus feltételt kell kiegészítenünk úgy, hogy //be//=0 esetén kilépjen, másrészt a ciklus utáni kiírást kell elágazásba helyezni, hisz most már nem csak úgy léphet ki a program a ciklusból, hogy a felhasználó eltalálta a gondolt számot. static void Main(string[] args) { Random r = new Random(); int num = r.Next(100)+1; Console.WriteLine("Gondoltam egy 1 és 100 közötti számot!\nTaláld ki!\n(Kilépés: 0)"); int be = Convert.ToInt32(Console.ReadLine()); while (num != be && be != 0) { Console.WriteLine("Nem talált!\nA gondolt szám nem {0}!", be); be = Convert.ToInt32(Console.ReadLine()); } if (be != 0) { Console.WriteLine("Nyert!\nA gondolt szám valóban {0}!", num); } else { Console.WriteLine("Sajnálom, hogy feladta..."); } Console.ReadKey(); } } ==== Kisebb-nagyobb ==== A számkitalálást segítse azzal, hogy minden tipp esetén visszajelzi, hogy a megadott számnál kisebb, vagy nagyobb a „gondolt” szám! **Megoldás:** Az eddigi kód ciklusmagját kell módosítanunk: ha nem találta el a felhasználó a gondolt számot, akkor egy elágazásban kell tájékoztatnunk arról, hogy alá- vagy fölé becsülte-e a számot. class Program { static void Main(string[] args) { Random r = new Random(); int num = r.Next(100)+1; Console.WriteLine("Gondoltam egy 1 és 100 közötti számot!\nTaláld ki!\n(Kilépés: 0)"); int be = Convert.ToInt32(Console.ReadLine()); while (num != be && be != 0) { if (be < num) { Console.WriteLine("Nem talált!\nA gondolt szám nagyobb mint {0}!", be); } else { Console.WriteLine("Nem talált!\nA gondolt szám kisebb mint {0}!", be); } be = Convert.ToInt32(Console.ReadLine()); } if (be != 0) { Console.WriteLine("Nyert!\nA gondolt szám valóban {0}!", num); } else { Console.WriteLine("Satnya. Feladta..."); } Console.ReadKey(); } } ==== Évszám ==== Kérjen be egy évszámot! A bekérést mindaddig ismételje, amíg a felhasználó nem ad meg érvényes XX-XXI. századi évszámot! **Megoldás:** class Program { static void Main(string[] args) { Console.WriteLine("Adjon meg egy XX-XXI. századi évszámot!"); int ev = Convert.ToInt32(Console.ReadLine()); while (ev < 1900 || ev > 2099) { Console.WriteLine("Helytelen évszám: {0}! XX-XXI. századi évszám legyen!", ev); ev = Convert.ToInt32(Console.ReadLine()); } Console.WriteLine("Köszönöm! A megadott évszám helyes!"); Console.ReadKey(); } } ==== Dupla-szóköz ==== Kérjen be egy szöveget, majd cserélje benne a dupla szóközöket szimpla szóközre mindaddig, amíg található a szövegben többszörös szóköz! **Megoldás:** A String osztály két metódusát használjuk: a Contains() metódus visszaadja, hogy a szövegben szerepel-e a paraméterként átadott szöveg, míg a Replace() metódus az első paraméterként megadott szöveget cseréli ki a második paraméterben megadottra. class Program { static void Main(string[] args) { Console.WriteLine("Adjon meg egy szöveget (lehet benne többszörös szóköz!"); String txt = Console.ReadLine(); while (txt.Contains(" ")) { txt = txt.Replace(" "," "); } Console.WriteLine("Az átalakított szöveg: {0}", txt); Console.ReadKey(); } }