Programozás C# -ban Ciklusok.

Slides:



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

“Hogyan oldunk meg gyorsan egy csomó számítást?”
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Algoritmusok.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
Kifejezések, operandusok, operátorok
Determinisztikus programok. Szintaxis: X : Pvalt program változók E : Kifkifejezések B : Lkiflogikai kifejezések C : Utsutasítások.
2009 Bevezetés a programozásba Krankovits Melinda.
3. előadás (2005. március 1.) Utasítások, tömbök
Benczúr Zsolt VBA gyorstalpaló Benczúr Zsolt
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 7. Gyakorlat Operator overloading.
C A C nyelv utasításai.
C Kifejezések.
C A C nyelv utasításai. Ismétlés Utasítások csoportosítása.
Borland C/C++ mintapéldák
Egy feladat megoldásának gondolatmenete. Feladat: Generáljuk véletlen számokat 1 és 6 között, amíg legalább 10 darab egyes és 10 darab hatos nem lesz.
Java Típuskonverziók.
Jt Java Kifejezések,precedencia. jt 2 Egy kifejezés operandusokból és operátorokból (műveletekből) áll. A kifejezésben szerepelhet egy vagy több operandus,
Algebrai törtek.
Készítette: Rummel Szabolcs Elérhetőség:
Miskolci Egyetem Informatikai Intézet Általános Informatikai Tanszé k Pance Miklós Adatstruktúrák, algoritmusok előadásvázlat Miskolc, 2004 Technikai közreműködő:
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1.5 Programozó matematikus szak 2003/2004-es tanév II. félév.
1 Programozás alapjai GEIAL312B (ANSI C) BSc (Bachelor of Science) / Alap képzés 2005/2006. őszi félév Miskolci Egyetem Általános Informatikai Tanszék.
Scriptnyelvek 9. gyakorlat Papp Gyula április 29.
PHP Webprogramozás alapjai
Számoljuk meg rekurzív függvénnyel egy bináris fa leveleit!
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Készítette: Szitár Anikó
Programozás I. Ciklusok
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
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.
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 Elágazások.
Programozás Operátorok C# -ban.
C nyelv utasításai.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
1 Informatikai Szakképzési Portál Információ-kezelés Képek kezelése.
Programozási nyelvek Páll Boglárka.
Ismétlés.
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.
Kifejezések. Algoritmus számol; Adott összeg; összeg:=0; Minden i:=1-től 5-ig végezd el Ha 2 | i akkor összeg:=összeg+2*i Ha vége Minden vége Algoritmus.
Ciklusok: 2. Előltesztelő ciklus
Félévi típus feladatok
Átalakítás előltesztelő ciklusból hátultesztelő ciklusba és fordítva.
Másodfokú egyenletek megoldása
ismétlődő (azonos vagy hasonló) tevékenységek megvalósítására szolgál
Összetett adattípusok
Képek beillesztése. A beszúrandó képnek abban a mappában kell lennie, ahol a html oldalad forráskódja található! Először mindig a képet szúrjuk be, majd.
Operátorok Értékadások
PHP nyelv. PHP Interpreteres nyelv → parancsértelmező szükséges hozzá Rasmus Lerdorf 1995 → személyes felhasználás (internetes önéletrajzának megtekintésének.
Hogyan használd a PTC oldalakat? Alapvető fogalmak, és leggyakrabban előforduló kifejezések.
Alapvető fogalmak, és leggyakrabban előforduló kifejezések HOGYAN HASZNÁLD A PTC OLDALAKAT?
Algoritmusok.
Java programozási nyelv Vezérlési szerkezetek
Programozási tételek.
Objektum orientált programozá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.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
C++2. Ciklusok elöltesztelő (for, while) A ciklusmag feldolgozása előtt történik a vizsgálat  lehet, hogy egyszer sem fut le. A soronkövetkező iteráció.
Lekérdezések feldolgozása és optimalizálása. Haladó adatbázisokLekérdezések feldolgozása és optimalizálása2 Definíciók Lekérdezés feldolgozása –lekérdezés.
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.
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
Informatikai gyakorlatok 11. évfolyam
Algoritmus készítés.
Előadás másolata:

Programozás C# -ban Ciklusok

Inkrementálás, dekrementálás Amennyiben egy változó értékét 1 –el szeretnénk növelni vagy csökkenteni akkor használjuk ezen egyoperandusú operátorokat x++  x= x +1 x--  x= x -1 Ezen műveleteknek két fajtája is létezik: Előzetes: ++x  azt jelenti, hogy növeli 1-el a változó értékét először, majd a kifejezés többi részét is végrehajtja. Pl. ha x= 100 és y = ++x; akkor x=y=101 Utólagos: Először végrehajtja a kifejezés kiértékelését és csak utána növeli a változó értékét Pl. ha x = 100 és y = x++; akkor x = 101, de y=100!

Példa int i = 0; while (i <= 100) { Console.WriteLine("Nem leszek rossz....!!!"); i++; }

Ciklus (Iteráció) Az utasítások szekvenciális (egymás utáni) végrehajtása az elágazás segítségével már vezérelhető volt 2 vagy több irányba. A ciklusok segítségével utasításokat, utasítás blokkokat ismételhetünk Az ismétlés történhet feltételtől függően vagy előre megadott számszor

Példák Elszámolunk százig egyesével Számolunk egyesével addig amíg el nem érjük a százat Kiírjuk százszor a nevünket 40 darab számot kérünk be Addig kérünk be számokat, amíg el nem érünk 40 ig

A C# ciklusai While – előltesztelő ciklus Do - While – Hátultesztelő ciklus For – Előírt lépésszámú ciklus Foreach – Tömbbejáró ciklus

While – előltesztelő ciklus A while ciklussal egy utasításblokkot mindaddig ismételhetünk, míg egy megadott feltétel igaz while (feltétel) { utasítás(ok) } Ciklusfeltétel Ciklusmag

While – előltesztelő ciklus A while után zárójelekben megadott feltétel teljesülése esetén ismétli az utasításokat A ciklus először kiértékeli a feltételt és csak igaz esetben ismétel, azaz ha a feltétel kezdetben hamis, akkor a ciklusmag nem fut le egyszer sem A ciklusmagban törekedni kell arra, hogy a feltétel megszámlálható lépés után hamissá váljon, különben végtelen ciklust kapunk.

While – előltesztelő ciklus Feltétel Utasítás(ok) Hamis Igaz

While – előltesztelő ciklus Az i változót gyakran nevezzük ciklusváltozónak A ciklusváltozót a cikluson belül felhasználhatjuk Látható, hogy a cikluson belüli növelő utasítással biztosítjuk, hogy az i változó értéke véges lépésben nagyobb lesz 10 –nél, azaz a feltétel hamissá válik, így a ciklus nem végtelen! int i = 0; while (i<=10) { Console.WriteLine(i); i++; }

Kiugrás ciklusból Ha ki szeretnénk ugrani a while ciklusból, használjuk a break parancsot, amely egyből átadja a vezérlést a while utáni első utasításnak. A continue paranccsal továbbugorhatunk a while feltételhez, átugorva ezzel a ciklusmag többi parancsát

Példa string jelszo = ""; while (jelszo != "vége") { Console.WriteLine("Kérem a kilépési jelszót: "); jelszo = Console.ReadLine(); } Console.WriteLine("Rendben!");

Példa while (true) { Console.WriteLine("Ez egy végtelen ciklus"); } int i = 1; while (i<=10) { Console.WriteLine("Ez is egy végtelen ciklus"); }

Példa int i = 1; int szam=1; while (i<=10) { if (szam % 3==0) Console.WriteLine(szam); i++; } szam++; A fenti forráskód kiíratja az első 10 db 3-al osztható számot!

Példa Látható, hogy a feltétel szerint ez egy végtelen ciklus int c = 0; while (true) { c++; Console.WriteLine(c); if (c < 10) continue; } else break; Látható, hogy a feltétel szerint ez egy végtelen ciklus Viszont ha a c értéke nagyobb lesz 10 nél a break parancs miatt kiugrik a ciklus utáni utasításra a vezérlés

Do – Hátultesztelő ciklus A while utasítás feltétele az első ellenőrzéskor ha hamis, a ciklusmag egyszer sem fut le Amennyiben szükséges hogy a ciklus utasításai legalább egyszer lefussanak, úgy a Do - While parancsot, azaz hátultesztelő ciklust használunk. A Do utáni utasítások végrehajtódnak, majd a while utáni feltétel igaz esetén ismétlésre kerül a ciklusmag, hamis feltétel esetén a ciklus után folytatjuk az utasításokat

Do – Hátultesztelő ciklus Feltétel Utasítás(ok) Hamis Igaz do { utasítás(ok) } while (feltétel);

Do – Hátultesztelő ciklus A while után zárójelekben megadott feltétel teljesülése esetén ismétli az utasításokat, ugyanúgy, mint az előltesztelő ciklusnál, csak itt már a ciklusmag biztos, hogy lefut egyszer. A ciklusmagban törekedni kell arra, hogy a feltétel véges lépés után hamissá váljon, különben végtelen ciklust kapunk. A break és a continue parancsok ennél a ciklusnál is használhatóak Az eddigi példáink nagy része átírható hátultesztelő ciklusosra.

Példa int szam; do { Console.WriteLine("Kérek egy egyjegyű számot"); szam = Int32.Parse(Console.ReadLine()); } while (szam > 9 || szam <-9); A ciklus addig kéri be a számokat, amíg egyjegyűt nem adunk meg neki! Figyeljük meg a feltételt!

Példa Látható, hogy a nev változónak nem kell kezdőértéket adni. Első lépésben biztos hogy bekér egy nevet és utána vizsgálja meg a feltételt! Addig ismétli a név bekérését, amíg az adott nevet nem adjuk meg neki! string nev; do { Console.WriteLine("Hogy hívnak: "); nev = Console.ReadLine(); } while (nev != "Gabi");

For – Növekményes ciklus int i = 1; while (i < 10) { utasítás(ok) i++; } A fenti programrészlet működése: A számláló értékét 1 – re állítjuk Ellenőrizzük, hogy a számláló (i) értéke kisebb-e, mint 10. Ha ez hamis, akkor véget ér a ciklus. Igaz esetén elvégezzük az utasításokat Inkrementáljuk az i értékét (i++) Visszaugrunk a 2-es lépésre

For – Növekményes ciklus for (beállítás; feltétel; növelés) { utasítás(ok) } Látható, hogy a cél bizonyos utasítások előre megadott lépésszámban való ismétlése Ezt egyszerűbb formában a For ciklussal végezhetjük el: Beállítás (inicializálás): Beállítjuk az úgynevezett ciklusváltozó kezdőértékét Feltétel: A program kiértékeli a feltételt, ha ez igaz következhet az utasítások végrehajtása Növelés: Az utasítások végrehajtása után következik a ciklusváltozó növelése. Itt valójában nemcsak növelés lehetséges, hanem bármilyen C# utasítás állhat.

For - While Az ábrán látható, hogy a For ciklus minden része megfeleltethető a While ciklus részeinek for (int i=0; i<10; i++) { utasítás(ok) } int i = 0; while (i < 10) { utasítás(ok) i++; }

For ciklus Első lépésben a ciklusváltozónak beállítjuk a kezdőrtékét, majd addig ismétli a ciklusmagot amíg a befejező feltétel igaz. Ha ez hamissá válik, akkor a ciklus utáni utasítással folytatja a programunk vezérlését. A harmadik paraméter gondoskodik arról, hogy a ciklusváltozó értéke úgy változzon, hogy a megállító feltétel véges lépésben hamis legyen, azaz ne kapjunk végtelen ciklust. A break és a continue parancsok ennél a ciklusnál is használhatóak

For ciklus A ciklusmagban a ciklusváltozó felhasználható, de meg nem változtatható A for ciklus segítségével egy előre megadott számszor ismételtethetjük utasításainkat A for ciklus három paraméterét ; -vel választjuk el egymástól, bármelyik paraméter elhagyható, de a ; jelet ki kell tenni, hogy a fordító is tudja hányadik paramétert kapja meg.

Példa for (int i=0; i<10; i++) { Console.WriteLine("Ismétlés a tudás anyja!"); } int i = 0; while (i < 10) { Console.WriteLine("Ismétlés a tudás anyja!"); i++; }

Példa A fenti kód 5 lottószámot válasz véletlenszerűen. int szam; Random rnd = new Random(); for (int i=1; i<=5; i++) { szam = rnd.Next(90); Console.WriteLine("{0}. -ik szám: {1}", i, szam); } A fenti kód 5 lottószámot válasz véletlenszerűen.

Feladatok I. Írjuk ki 100 - szor a nevünket a képernyőre sorszámmal együtt. Valósítsuk meg while és for ciklussal is a feladatot. Írjuk ki a következő számtani sorozatok első 10 elemét: 1,2,3… 2,4,6… 5,12,19… 197, 190, 183… Kérjünk be egy 3 jegyű számot és állapítsuk meg, hogy osztható e 7-el. Addig ismételjük a bekérést, amíg nem 3 jegyű a megadott szám!

Feladatok II. Írassuk ki az egyjegyű számokat, melléjük a szám kétszeresét és a szám négyzetét is! Kérjünk be egy számot és egy másikat úgy, hogy nagyobb legyen az elsőnél. Számoljunk visszafelé a nagyobbik számtól a kisebbik felé. (A feladat kiegészíthető azzal, hogy bekérjük a lépésközt is, ami kisebb kell legyen a két szám különbségénél.) Írassuk ki, az első 20 darab 3-al osztható szám felét! Olvassunk be egy életkort 0-99 között. Addig ismételjük amíg nem lesz jó a bevitel! Adjuk meg hogy melyik korosztályba esik az illető! (0-6: gyerek, 7-18: iskolás, 19-65: dolgozó, 65- nyugdíjas)

Feladatok III Kérjünk be egy max 3 jegyű egész számot, adjuk össze a számokat megadott számig! (1+2+3….+n) Kérjünk be egy max 2 jegyű n számot: Írjuk ki n-ig a páros számokat Adjuk össze n-ig az 5-el osztható számokat Számoljuk meg, hány szám osztható n-ig 11-el Írjuk ki azon számokat n-ig amelyek 7-el osztva 3-at adnak maradékul Írassunk ki 100 darab háromjegyű véletlen egész számot úgy, hogy a párosak pirossal, a páratlanok kék színnel legyenek.

Feladatok IV Rajzoljunk a képernyőre egy 30 * 5 csillagból álló téglalapot. Kérjünk be egy kétjegyű számot (a) és egy egyjegyű számot (b). Írjunk ki ‘a’ darab véletlen számot 400 és 900 között, a b-vel osztható számokat emeljük ki piros színnel. Keretezzük be a képernyőt * karakterrel. Osszuk fel négy egyenlő részre a képernyőt * karakterekkel.