Programozás C# -ban Elágazások.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Vezérlő utasítások.
Koordináták, függvények
Programozás I. Szelekciók: egy- és kétágú szelekció
Összefoglalás 1. Pascal program szerkezete 2. Pascal típusai
Tömbök C#-ban.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Ismétlés: Döntések a feltétel egy logikai kifejezés if feltétel then
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
3. előadás (2005. március 1.) Utasítások, tömbök
Boole- féle algebra Készítette: Halász Rita I. István Szakképző Iskola szeptember 19.
Logika Érettségi követelmények:
Programozás II. 3. Gyakorlat C++ alapok.
C A C nyelv utasításai.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Utasítások, elágazás- és ciklusszervezés C nyelvi utasítások
PHP Webprogramozás alapjai
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Programozás I. Ciklusok
Programozás I. Egymásba ágyazott szelekciók, többágú szelekció
Vizuális és web programozás II.
Függvények III Logikai függvények. Hamis A HAMIS logikai értéket adja eredményül. HAMIS( ) A függvény alkalmazása helyett egyszerűen beírhatjuk a HAMIS.
Vezérlési szerkezetek: elágazások, ciklusok
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
Programozás C# -ban Ciklusok.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Programozás Operátorok C# -ban.
P ROGRAMOZÁS I/O műveletek. S YSTEM.C ONSOLE A programjainknak fontos része a felhasználóval való kommunikáció. Adatokat kell kérni tőle, vagy közölnünk.
Programozás C# - ban Feladatsorok.
Programozás Az adatokról C# -ban.
C nyelv utasításai.
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Összetett adattípusok
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
Kifejezések a Pascalban Páll Boglárka. Ismétlés: Ahogy algoritmikából láttuk, a kifejezések a Pascal nyelvben is operátorokból és operandusokból állnak.
2005. november 4. Egy híres európai matematikus két dologra volt igen büszke: egyrészt arra, hogy roppant ízletes krumplis fánkot tudott készíteni, másrészt.
Boole-algebra (formális logika).
Ciklusok (iterációk).
Készítette: Csíki Gyula
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Java programozási nyelv Vezérlési szerkezetek
Objektum orientált programozás
Objektum orientált programozás
Programozás I. Matematikai lehetőségek Műveletek tömbökkel
Logikai műveletek és áramkörök
Egyágú elágazás Szintaxis: if (feltétel)
Operátorok Vezérlési szerkezetek Gyakorlás
Táblázatkezelés KÉPLETEK.
Feladatok (értékadás)
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Free pascal feladatok
© Tóth Ákos, Óbudai Egyetem, 2010
Kiterjesztések szemantikája: Szemantikai tartomány : Adatoknak, vagy értékeknek egy nem üres halmazát szemantikai tartománynak nevezzük. Jelölése: D. Egy.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Logika.
Kifejezések C#-ban.
Gépészeti informatika (BMEGEMIBXGI)
Programozás C# -ban Elágazások.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

Programozás C# -ban Elágazások

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);

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ó) ||

Logikai operátorok igazságtáblázata Tagadás 1 Látható, hogy az adott logikai operátort az ellenkezőjére fordítja!

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.

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();

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 }

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

Példa bool a = false; bool b = true; bool eredmeny = !a && b; if (eredmeny) { Console.WriteLine("Jó"); } Console.ReadKey();

Példa Console.WriteLine("Kérek egy számot"); int szam = Int32.Parse(Console.ReadLine()); if (szam >=100) { Console.WriteLine("Jó"); } Console.ReadKey();

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

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! ()

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");

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!

Ö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.

((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))

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.

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!!!”;

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; }

Példa Switch (nap) { case 0: napnev=”Vasárnap”; break; case 1: napnev=”Hétfő”; case 2: napnev=”Kedd”; …. default: napnev=”Nincs ilyen nap!”; }

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.

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.

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.

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.

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 1900 é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!

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.