480 likes | 572 Views
Objektum orientált programozás. 1. A programok felépítése Nagy Szilvia. Változók definiálása, deklarálás. A parancsok megkezdése előtt definiálni kell a használni kívánt változók és konstansok típusát:. Változók definiálása, deklarálás. Változótípusok:
E N D
Objektum orientált programozás 1. A programok felépítése Nagy Szilvia
Változók definiálása, deklarálás A parancsok megkezdése előtt definiálni kell a használni kívánt változók és konstansok típusát:
Változók definiálása, deklarálás Változótípusok: • bool – boolean, logikai változó: igaz, hamis • char – karakter, 1 bájt, • int – integer, egész • short int • int • long int • long long int • flood – lebegőpontos szám
Változók definiálása, deklarálás Változótípusok: • flood – lebegőpontos szám • flood • double • long double • signed, unsigned
Változók definiálása, deklarálás Tömb: változókból álló összetett adattípus
Változók definiálása, deklarálás Tömb: változókból álló összetett adattípus Értékadás lehetséges már a deklaráció során is: int tomb[6]={12, 3, 8, -1, 7, 8};
Kiíratás: printf függvény A printf-nek több paramétere lehet: • egy kötelező karakterlánc • a % utáni kifejezések helyére változók értékei kerülnek: • %c: karakter • %s: karaktertömb, a 0 karakterig • %d: tízes számrendszerbeli szám • %u: előjel nélküli (unsigned) tízes számrendszerbeli szám • %o: előjel nélküli egész, oktális alakú szám, pl: 0573
Kiíratás: printf függvény • %x: előjel nélküli egész, hexadecimális alakú szám, kisbetűkkel, pl: 0xd4, ff35eac • %X: előjel nélküli egész, hexadecimális alakú szám, nagybetűkkel, pl: 0X2F • %f: lebegőpontos tizedesponttal, pl. 4.22 • %e: lebegőpontos szám normálalakban, kis e elválasztóval, pl. 1.3425e13 • %e: lebegőpontos szám normálalakban, kis e elválasztóval, pl. -2.45E4 • %g: %e és %f közül a rövidebb • %G: %E és %f közül a rövidebb
Kiíratás: printf függvény • %p: pointer hexadecimális alakban, pl. FF23AA44 • %m: a legutóbbi hiba típusa (errno) A %-jel után közvetlenül paraméterek is kerülhetnek, • egy szám, vagy tizedesponttal elválasztott két szám: • %4d: 4 számjegyű egész • %.4f: 4 tizedesjegyű float • %3.4f: max. 3 számjegy után 4 tizedesjegy • – jel, ha balra igazítjuk az oszlopot
Kiíratás: printf függvény • + jel, ha pozitív szám esetén +-szal kezdi a számot • szóköz, ha sem +, sem – jel nincs a szám előtt, szóközt tesz • # a szám tartalmazza a számrendszer-jelző karaktereit: oktális 0-t, hexadecimális 0x-et, vagy 0X-et, floatnál és normálaknál mindenképpen lesz tizedespont • ‘ a számjegyeket csoportba rendezi • 0 a számot nem szóközökkel, hanem 0-kkal tölti fel az üres helyein rendezéskor
Kiíratás: printf függvény Speciális karakterek is megjelenhetnek: • \a: csengő • \b: visszalépés (backspace) • \f: lapdobás • \n: új sor • \r: kocsi vissza (return) • \t: tabulátor, vízszintes • \v: függőleges tabulátor • \\: \-jel • \’: aposztróf • \”: idézőjel • \?: kérdőjel
Kiíratás: printf függvény A printf használata:
Alapstruktúrák: elágazás if–else Ha egy logikai kifejezés igaz volta esetén szeretnénk egy parancsot végrehajtani, akkor használatos: if (feltétel){ parancsok1 } else{ parancsok2 } Az else ág opcionális
Alapstruktúrák: elágazás if–else Ha egy logikai kifejezés igaz volta esetén szeretnénk egy parancsot végrehajtani, akkor használatos: Pl: ha korán kelünk, aranyat lelünk, egyébként sokat alszunk és elkésünk: if (korán kelünk) aranyat lelünk; else{ sokat alszunk; elkésünk; }
Alapstruktúrák: elágazás if–else szám1=x; szám2=y; igen nem szám1−szám2>0? kiír: a második szám a nagyobb (szám2−szám1) értékével. kiír: az első szám a nagyobb (szám1−szám2) értékével.
Alapstruktúrák: elágazás if–else szám1=x; szám2=y; szám1−szám2>0? nem igen kiír: a második szám a nagyobb (szám2−szám1) értékével. kiír: az első szám a nagyobb (szám1−szám2) értékével.
Alapstruktúrák: elágazás if–else Többszörösen elágaztathatunk else if ágakkal: if (feltétel1){ parancsok1;} else if (feltétel2){ parancsok2;} else if (feltétel3){ parancsok3;} … else {parancsok;}
Alapstruktúrák: elágazás if–else szám1=x; szám2=y; igen nem szám1−szám2>0? kiír: az első szám a nagyobb (szám1−szám2) értékével. nem igen szám1−szám2=0? kiír: a második szám a nagyobb (szám2−szám1) értékével. kiír: a két szám egyforma
Alapstruktúrák: elágazás if–else szám1=x; szám2=y; szám1−szám2>0? igen nem kiír: az első szám a nagyobb (szám1−szám2) értékével. szám1−szám2=0? nem igen kiír: a máso-dik szám a nagyobb (szám2− szám1) értékével. kiír: a két szám egy-forma
Alapstruktúrák: elágazás if–else Többszörösen elágaztathatunk else if ágakkal:
Alapstruktúrák: elágazás switch Eseteket választhatunk szét a switch - case parancsrendszerrel: switch(vizsgálandó változó){ case érték1: parancsok1; esetleg break/return; case érték2: parancsok2; esetleg break/return; … default: parancsok; }
Alapstruktúrák: elágazás switch Ha a break/return; parancs nem szerepel egy esetben, a következő ágra ugrik: switch(vizsgálandó változó){ case érték1: case érték2: parancsok12; break; … default: parancsok; } mind az 1-es, mind a 2-es értéknél a parancsok12-t fogja végrehajtani.
Alapstruktúrák: while ciklus Több lépésen keresztül hajtunk végre hasonló műveleteket: ciklusváltozó értékadása; while (feltétel){ parancsok; ciklusváltozó változtatása; }
Alapstruktúrák: for ciklus Több lépésen keresztül hajtunk végre hasonló műveleteket: for (ciklusváltozó értékadása; feltétel; ciklusváltozó változtatása){ parancsok; }
Példák egymásba ágyazott ciklusokra Egyszerű cserés rendezés: • számok páronkénti rendezése: • az első elemtől elindulva a külső ciklus biztosítja, hogy az aktuális helyre a jó elem kerüljön. Az i-edik lépésben az első i-1 elem rendezett lesz. • a belső ciklus a tömb nem rendezett felén lépeget sorba, a belső ciklus és a külső ciklus eleme rossz sorrendben van (pl növekvő sorrendbe való rendezés esetén belső ciklus eleme < külső ciklus eleme) , cserél.
Példák egymásba ágyazott ciklusokra Eleje+main fv definiálás a programban Egyszerű cserés rendezés: eredeti tömb kiírása az indexek és az új tömb kiírása minden csere után
Példák egymásba ágyazott ciklusokra Egyszerű cserés rendezés:
Példák egymásba ágyazott ciklusokra Buborékos rendezés: • számok páronkénti rendezése: • az első elemtől elindulva a külső ciklus biztosítja, hogy az aktuális helyre a jó elem kerüljön. Az i-edik lépésben az első i-1 elem rendezett lesz. • a belső ciklus a tömb nem rendezett felén lépeget hátulról előre a külső cikluselemig. Ha a belső cikluselem és a fölötte levő elem rossz sorrendben van, cserél.
Példák egymásba ágyazott ciklusokra Eleje+main fv definiálás a programban Buborékos rendezés: eredeti tömb kiírása az indexek és az új tömb kiírása minden csere után
Példák egymásba ágyazott ciklusokra Buborékos rendezés:
Példák egymásba ágyazott ciklusokra Minimum/maximumkiválasztásos rendezés: • számok páronkénti rendezése: • az első elemtől elindulva a külső ciklus biztosítja, hogy az aktuális helyre a jó elem kerüljön. Az i-edik lépésben az első i-1 elem rendezett lesz. • a belső ciklus a tömb nem rendezett felében megkeresi a legnagyobb, ill. legkisebb elemet, és azt cseréli ki a külső ciklus aktuális elemével, ha szükséges. →sokkal kevesebb csere
Példák egymásba ágyazott ciklusokra Eleje+main fv definiálás a programban Extrémumkereséses rendezés: eredeti tömb kiírása csere a külső ciklusban az indexek és az új tömb kiírása minden csere után
Példák egymásba ágyazott ciklusokra Extrémumkereséses rendezés:
Példák egymásba ágyazott ciklusokra Beillesztéses rendezés: • a már rendezett sorozatban keresi meg a következő elem helyét, kezdetben egy elemű a sorozat. • a külső ciklus a 2.-tól végigmegy az elemeken • a belső ciklus a külső cikluselem előtti szakaszon keresi meg a külső cikluselem pozícióját, odahelyezi az elemet, a többit lejjebb csúsztatja.
Példák egymásba ágyazott ciklusokra Eleje+main fv definiálás a programban Beillesztéses rendezés: eredeti tömb kiírása az indexek és az új tömb kiírása minden csere után
Példák egymásba ágyazott ciklusokra Beillesztéses rendezés:
Példák egymásba ágyazott ciklusokra Beillesztéses rendezés: