Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Programozás C# -ban Elágazások
2
Logikai típusú változó
A logikai típusú változónak két lehetséges értéke van, a TRUE és a FALSE, vagyis igaz, vagy hamis. Ezek az értékek konstansként is megadhatók: bool logikai = true; Két kompatibilis érték összehasonlításának eredménye vagy igaz (true) vagy hamis (false) lesz. Az összehasonlítás eredményét tudjuk tárolni egy logikai típusú változóban. int sz = 2; logikai = sz < 4; Console.WriteLine("{0}",logikai);
3
Logikai kifejezéseket logikai operátorokkal köthetünk össze
Logikai kifejezéseket logikai operátorokkal köthetünk össze. Ezek a tagadás, a logikai és, illetve a logikai vagy operátorok. A C#-ban a műveleteket a következő képpen jelöljük: Név Jelölés Tagadás (negáció) ! ÉS (konjunkció) && VAGY (diszjunkció) ||
4
Logikai operátorok igazságtáblázata Tagadás
1 Látható, hogy az adott logikai operátort az ellenkezőjére fordítja!
5
Logikai operátorok igazságtáblázata ÉS (&&)
A && B 1 Azaz kizárólag akkor lesz a művelet eredménye igaz, ha mindkét paraméter értéke igaz.
6
Példa bool a = false bool b = false; a = 12 > 11; b = 18 >= 18;
bool eredmeny; eredmeny = !(a && b); Console.WriteLine("{0}", eredmeny); Console.ReadKey();
7
Feltételes utasítás Amennyiben programunk vezérlését egy logikai kifejezés igaz értéke esetén szeretnénk csak végrehajtani akkor a feltételes utasítást (egyszerű elágazást) használunk. if (logikai kifejezés) { igaz érték esetén végrehajtandó utasítások }
8
Egyszerű elágazás Az előző példában a logikai kifejezés értékétől azaz a feltételtől függően, igaz esetben hajtódik végre a {…} jelek között lévő programblokk. Ha a logikai kifejezés hamis a programblokk nem hajtódik végre, hanem ugrik a következő utasításra
9
Példa bool a = false; bool b = true; bool eredmeny = !a && b;
if (eredmeny) { Console.WriteLine("Jó"); } Console.ReadKey();
10
Példa Console.WriteLine("Kérek egy számot");
int szam = Int32.Parse(Console.ReadLine()); if (szam >=100) { Console.WriteLine("Jó"); } Console.ReadKey();
11
Elágazás Az elágazás a feltételes utasításhoz hasonló vezérlési szerkezet, amely arra az esetre is ad lehetőséget amikor a megadott feltétel (logikai kifejezés) értéke hamis: if (logikai kifejezés) { igaz érték esetén végrehajtandó utasítások } else Hamis érték esetén végehajtandó utasítások
12
Elágazás Amennyiben a feltétel igaz, úgy az igaz ágon egyből a feltétel utáni utasításblokk végrehajtásával folytatjuk programunk vezérlését. Ha a feltétel hamis, akkor az úgynevezett hamis ágon, azaz az else utasítás utáni programblokk hajtódik végre. A logikai kifejezést kötelező zárójelek közé tenni! ()
13
Példa int szam; szam = Int32.Parse(Console.ReadLine());
if (szam % 2 == 0) { Console.WriteLine("A szám páros"); } Else Console.WriteLine(" A szám páratlan");
14
Blokkok alkalmazása utasítások csoportosítására
Gyakran előfordul, hogy egynél több utasítást szeretnénk futtatni a logikai kifejezés igaz vagy hamis ágán. Ekkor ezen utasításokat blokkba foglaljuk A blokk: olyan utasítások sorozata, amelyeket mindkét oldalról kapcsos zárójel zár. {…blokk…} Amennyiben egy utasítás van akkor nem kötelező blokkba tenni, de ajánlott!
15
Összetett feltételek Amennyiben több feltételnek kell megfelelni használhatjuk a logikai operátorokat a feltételek megadásánál. Ekkor az említett operátorok igazságtáblái alapján történik a kiértékelés.
16
((szam > 30) && (szam < 40))
Példa int szam = Int32.Parse(Console.ReadLine()); if (szam > 30 && szam < 40) { Console.WriteLine("Ez a szám megfelelő"); } else Console.WriteLine("Ez a szám nem megfelelő"); Console.ReadKey(); Összetett feltételnél az egyes feltételeket a jobb átláthatóság érdekében ajánlott (…) közé tenni: ((szam > 30) && (szam < 40))
17
Kaszkádolt IF utasítások
If utasításokat más if utasításokba is beágyazhatunk. Ezáltal olyan logikai kifejezések sorozatát láncolhatjuk egymáshoz, amelyeket addig tesztelünk egymás után, amíg valamelyik igaz nem lesz.
18
Példa if (nap == 0) napnev = ”vasarnap”; else if (nap==1) napnev=”Hétfő”; else if (nap==2) napnev=”Kedd”; else if (nap==3) napnev=”Szerda”; else if (nap==4) napnev=”Csütörtök”; else if (nap==5) napnev=”Péntek”; else if (nap==6) napnev=”Szombat”; else napnev=”Nincs ilyen nap!!!”;
19
Switch – Többirányú elágazás
A kaszkád if utasítás egy szebb megvalósítása a switch használata Többirányú (2-nél több) elágazást valósíthatunk meg segítségével: switch (kifejezes) { case ertek1: utasítások…;break; case ertek2: utasítások…;break; case ertek3: utasítások…;break; … default: utasítások…; break; }
20
Példa Switch (nap) { case 0: napnev=”Vasárnap”; break; case 1: napnev=”Hétfő”; case 2: napnev=”Kedd”; …. default: napnev=”Nincs ilyen nap!”; }
21
Switch működése A switch utasítás után megadjuk a kifejezést amely szerint szelektálni szeretnénk a végrehajtandó utasításokat A következőkben felsoroljuk úgynevezett case címkékkel a kifejezés lehetséges eseteit, majd a kettőspont után jöhetnek azon utasítások amelyek akkor hajtódnak végre ha a switch után adott utasítás a megfelelő értéket veszi fel. A case címkék mindig {…} jelek között helyezkednek el Az utolsó címke a default címke, amely alapértelemezett ágat jelent, azaz ha előtte egyik sem teljesül akkor ezen utasítások hajtódnak végre.
22
Switch szabályai A megadott kifejezésnek egyszerű típusnak kell lennie. Pl: int vagy string. A case címkéknek konstansoknak kell lenni, ide nem írható kifejezés Két case címke nem lehet azonos A case címkék végén a break utasítást kötelező kiírni még default esetben is, különben a programunk túlcsordul és elkezdi végrehajtani a következő címke utasításait.
23
Feladtok 1. Egy beolvasott számról döntse el a program hogy -30 és 40 között van-e! 2. Két beolvasott szám közül írassuk ki a nagyobbikat! 3. Kérjen be egy számot, majd döntse el, hogy nullára végződik –e. 4. Adott egy tetszőleges pont koordinátáival. Határozzuk meg melyik síknegyedben van! 5. Rendeztessünk sorba 3 egész számot! 6. Három tetszőleges, számról döntse el a program hogy számtani sorozatot alkotnak e! 7. Három adott számról döntse el a program, hogy lehetnek-e egy háromszög oldalainak mérőszámai.
24
Feladatok II. Kérjünk be egy számot, állapítsuk meg, hogy
Páros vagy páratlan? Osztható –e 7 el? 500 és 600 között van e? Írjunk programot, amely egy bekért évszámról eldönti, hogy szökőév e? (Szökőévek azon évek melyek néggyel oszthatók, de a százzal oszthatók közül csak a 400-al oszthatók szökőévek) Írjunk programot a megoldóképletre. Figyeljünk arra, hogy az a!=0 és ha a diszkrimináns negatív, akkor nincs megoldás.
25
int ora = DateTime.Now.Hour;
Feladatok III. Kérjünk be egy nevet! Ha a saját nevünket adjuk meg akkor írjuk ki hogy helyes, különben helytelen. Szórakozóhelyen egy illető sört kér. A pultos megkérdezi melyik évben született. Ha ez nem és 2008 között van jelezze. Amennyiben a megadott évszám helyes, döntse el hogy kiadhatja e a sört A következő parancs az ora egész változóba elhelyezi a rendszerórából az aktuális órát: int ora = DateTime.Now.Hour; Köszönjünk a napszaknak megfelelően! Kérjünk be egy hónapot számmal, határozzuk meg melyik évszakban van!
26
int nap = Convert.ToInt32(DateTime.Today.DayOfWeek);
FELADATOK IV. (SWITCH) A következő sor létrehoz egy nap nevű egész típusú változót, amelyben a rendszerdátumból kiveszi, hogy a hét hányadik napja van: int nap = Convert.ToInt32(DateTime.Today.DayOfWeek); Készítsünk programot, amely kiírja a nap nevét magyarul. Kérjünk be egy hónapot számmal, írjuk ki a nevét betűvel. Kérjünk be egy egész számot 1-10 között! Vizsgáljuk meg, hogy helyes-e a megadott szám, ha igen akkor írjuk ki magyarul. Írjunk programot amely bekér maximum 3 jegyű számot, majd kiírja betűvel.
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.