C# ciklusok (iterációk)

10. osztály 10évf_c# C# programozás Programozás

While ciklus (elöltesztelő ciklus)

ciklus

Mondhatnám, hogy először lő, aztán kérdez… de igazából először vizsgál aztán végez. A ciklus megvizsgálja a feltételt, majd utána végzi el az utasításokat. Ezt addig ismétli, míg igaz a feltétel. Mindig kell lennie egy kilépési feltételnek, mert különben végtelen ciklust írunk, az meg nem jó senkinek.

Break: a ciklusból való kilépést, és a ciklus futásának felfüggesztését eredményezi.
Continue: a ciklusfutását úgy változtatja meg, hogy ha elér a continuig a ciklusmag az utána következő ciklusutasításokat nem fogja figyelembe venni, hanem visszatér a ciklus elejére és folytatja azt, átugorja az adott ciklusmagot és a következőnél folytatja.
A break és a continue használata nem ajánlott, mert nem része a strukturált programozásnak!

Példa: írassunk ki egy szöveget (stringet) betűnként! A szöveg hosszát a Length függvénnyel tudjuk lekérdezni. Plusz feladat: hány karakter hosszú? Mi az első karaktere?

Hátultesztelő ciklus, do-while

ciklus2

A hátultesztelő ciklus a nevéből adódóan
először a ciklusmagban lévő utasítást hajtja végre, majd utána vizsgálja meg a feltételt, ha a feltétel igaz, akkor újra
végrehajtja az utasítást…
Legalább 1-szer lefut a ciklusmag.

Példa: készítsük el az ötös szorzótáblát!

Számláló ciklus, for

Úgy működik, mint egy while azzal a különbséggel, hogy itt létrehoztunk egy számlálót (i) és ennek változtatásával tudjuk a feltételt folyton vizsgálni. az első része int i = 0;
létrehozzuk a segédváltozót a második része a feltétel, és végül az i++ az i értékét növeli 1-el. For-nál mindig az i++ formát használjuk!

Példa: Állítsunk elő véletlenszerűen 6egész számot 0-60 között, írassuk ki őket egymás mellé!

Példa: Állítsunk elő 42db egész számot -100 és 100 között, egy sorban csak 6 szám legyen! Számoljuk meg, hány db pozitív számot sorsolt! Ha az i -t elosztjuk 6-tal, és a maradék 0, akkor WriteLine utasítással írjuk ki, ezért új sorban folytatja 6db szám után…

Példa: fej vagy írás játék szimulálása. Dobjunk fel egy pénzt megadott alkalommal, és véletlenszerűen döntse el a program, hogy fej vagy írás lesz. Számoljuk meg, melyikből mennyi lett!

A véletlen számok

A c# a Random utasítást (osztályt) használja a véletlen számok előállítására.

Példa: Random veletlen = new Random(); Ekkor a véletlen számunk egész szám lehet. A konkrét változónk neve legyen veletlenSzam
veletlenSzam = veletlen.Next(100); //a szám értéke 0-99 közötti egész szám lesz

Ha szeretnénk negatív számokat is:
veletlenSzam = veletlen.Next(101)-50; vagy veletlenSzam = veletlen.Next(-50;51); Mindkét módszerrel -50 és 50 közötti számokat fogunk előállítani.

Példa: állítsunk elő 2db egész számot 1-6 között, és döntsük el, melyik a nagyobb. (Hasonló, mint a JavaScriptes dobókockás feladat…)

A házi feladat megoldása:

Készítsen konzolos alkalmazást, amely mezőgazdasági jóslást végez.
A program kérje be az rozs mennyiségét tonnában. Ez alapján számolja ki egy véletlenszerűen generált szorzóval (3-20) a várható hozamot, és írja ki a mennyiségét.
A szorzó alapján elemezze és írja ki, hogy milyen év várható: átlag alatti (3-8), átlagos év (9-15), átlag feletti (15-20)

További FOR ciklus gyakorló feladatok:

Számoljuk meg, hogy 100x dobás során egy szimulált dobókockánál hányszor szerepelnek az egyes számok!

Feladat: Jancsi és Juliska 2db dobókockával játszik. 10 körből áll a játék, az nyer, aki a körökben többször nyer. Írassuk ki végső játékállást, és a nyertest! (döntetlent is)

Feladat: Dobjunk 3db dobókockával, és számoljuk meg, melyik értéket (3..18) hányszor sikerült dobni!

Feladat: Egy szám prímtényezős felbontása

Egy szám prímtényezős felbontását az alábbi módon lehet megkapni:

  1. Ha a szám prím, akkor írd fel a prímtényezős felbontás listájába, és készen vagy.
  2. Ha a szám nem prím, keresd meg a legkisebb prímet, amivel maradék nélkül osztható (ehhez egymás után meg kell próbálni elosztani az egyes prímszámokkal).
  3. A 2. pontban kapott prím lesz a prímtényezős felbontás egyik eleme, írd fel a listába, majd oszd el vele a számot!
  4. Ugorj az első pontra, és ismételd meg az eljárást a 3. pontban végzett osztás eredményét használva.

Forrás: https://lexiq.hu