dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék

Slides:



Advertisements
Hasonló előadás
Szerver oldali programozás
Advertisements

Átváltás decimális számrendszerből bináris számrendszerbe.
Természetes számok 0, 1, 2, 3, ..., 24, 25, ..., 1231, 1232, ..., n, ...  = {0, 1, 2, 3, ..., n,...} a természetes számok halmaza Műveletek: összeadás.
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.
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ó.
Kifejezések, operandusok, operátorok
LFüggvények Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 20./0. lFüggvények deklarációja és prototípusa lA függvénydefiníció lHivatkozás.
2009 Bevezetés a programozásba Krankovits Melinda.
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
Adatbázis-kezelés.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
11. előadás (2005. május 10.) A make segédprogram Alacsony szintű műveletek és bitmezők Fájl, katalógus rendszer hívások 1.
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.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
4. előadás (2005. március 8.) Pointerek Pointer aritmetika
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
C A C nyelv utasításai.
Mutatók, tömbök, függvények
C Kifejezések.
Az informatika logikai alapjai
Borland C/C++ mintapéldák
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,
Készítette: Rummel Szabolcs Elérhetőség:
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.
Differenciál számítás
Lineáris algebra Mátrixok, determinánsok, lineáris egyenletrendszerek
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
2 tárolós egyszerű logikai gép vázlata („feltételes elágazás”)
Programozás I. Ciklusok
Programozás I. Egymásba ágyazott szelekciók, többágú szelekció
Vizuális és web programozás II.
Excel Hivatkozások, függvények használata
Fixpontos, lebegőpontos
Programozás Operátorok C# -ban.
Programozás Az adatokról C# -ban.
C nyelv utasításai.
A JavaScript bemutatása
Access XP Kifejezés-szerkesztő Összehasonlító operátorok:
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
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.
Operátorok Értékadások
Készítette: Csíki Gyula
Objektum orientált programozás
Objektum orientált programozás
Fixpontos, lebegőpontos
Logikai műveletek és áramkörök
Operátorok Vezérlési szerkezetek Gyakorlás
Műveletek, függvények és tulajdonságaik Mátrix struktúrák:
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Adatbáziskezelés. Adat és információ Információ –Új ismeret Adat –Az információ formai oldala –Jelsorozat.
C Programozási alapok.
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.
INFOÉRA 2006 Nagypontosságú aritmetika III.
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Kifejezések C#-ban.
Gépészeti informatika (BMEGEMIBXGI)
Programozás C# -ban Elágazások.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Nulladrendű formulák átalakításai
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Algoritmus készítés.
Konverziós operátorok
Előadás másolata:

dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék Programozás I. 1.6 dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék

1.6. Operátorok és kifejezések Aritmetikai kifejezések: egyetlen operandusból vagy az operandusok és műveleti jelek (operátorok) kombinációjából épülnek fel. Az operandusok a C nyelv azon elemei, melyeken az operátorok fejtik ki hatásukat. Az operandusok száma szerint vannak egyoperandusú és kétoperandusú operátorok. egyoperandusú (unary) operátorok esetén a kifejezés általános alakja: op operandus (prefix alak) vagy operandus op (postfix alak) Példák: -a ++a &a a++ - kétoperandusú operátorok esetén a kifejezés általános alakja: operandus1 op operandus2 Példák: a + b a * b a < b a+ = b

1.6.1. Elsődleges operátorok (), [ ], ->, . Ezekkel az operátorokkal a későbbiekben ismerkedünk meg, hozzájuk speciális C nyelvi szerkezetek kapcsolódnak, mint például a függvény hívás, tömb indexelés, struktúratagra való hivatkozás.

1.6.2. Aritmetikai operátorok Ide tartoznak: mínusz (-), összeadás (+), kivonás (-), szorzás (*), osztás (/), maradék (%) A mínusz (-) egyoperandusú operátor, segítségével a mögötte álló operandus értéke ellentétes előjelűre változtatható. A maradék képzés operátora csak egész típusú operandusokra alkalmazható, a többi aritmetikai művelet operandusai egész és lebegőpontos típusú operandusokra is alkalmazhatóak. Az osztás egész típusú operátorok esetén egész osztást jelöl: a 17 / 5 kifejezés értéke (a hányados) 3 a 17 % 5 kifejezés értéke (a maradék) 2

1.6.3. Összehasonlító és logikai operátorok A C nyelvben nincs logikai típus, azonban vannak olyan utasításai, amelyekben feltételeket kell definiálnunk. A feltételek tetszőleges kifejezések lehetnek. A C++ az igazat bármely nem nulla értékként, a hamisat pedig 0-ként ábrázolja. A relációs kifejezés általános alakja: kifejezés1 relációs operátor kifejezés2 A relációs kifejezés értéke integer típusú és értéke 1, ha a reláció igaz, 0 ha a reláció nem igaz.

Összehasonlító (relációs) operátorok: Operátor Példa (relációs kifejezés) Jelentés < a < b a kisebb, mint b <= a <= b a kisebb vagy egyenlő mint b > a > b a nagyobb, mint b >= a >= b a nagyobb vagy egyenlő mintb == a == b a egyenlő (e) b-vel != a != b a nem egyenlő b-vel

Logikai operátorok a C-ben: negáció( Logikai operátorok a C-ben: negáció(!), konjunkció(&&), diszjunkció (||) A művelet eredménye int típusú,0 vagy 1 értékű. A C-ben nincs logikai változó, NINCS logikai IGAZ illetve HAMIS Az operandusok egész típusúak. A logikai operátorok működését ún. igazságtáblával írjuk le.

Negáció (logikai tagadás) a C-ben Műveleti jel : ! Egyoperandusos operátor Igazságtábla: a !a Nem 0 1

Konjunkció (logikai ÉS) a C-ben Kétoperandusú operátor, műveleti jel: && Igazságtábla: kif1 kif2 kif1&&kif2 Nem 0 1

Diszjunkció (logikai VAGY) a C-ben Kétoperandusú operátor, műveleti jel: || Igazságtábla: kif1 kif2 kif1||kif2 Nem 0 1

1.6.4. Léptető operátorok: increment (++), decrement (--) Mindkét operátor használható prefixes (pl. ++a, --a), illetve postfixes (pl. a++, a--) alakban:

1.6.5. Bitműveletek Bitenkénti műveleteket a C-ben char, short, int és long típusú adatokon végezhetünk. Bitenkénti logikai műveletek: Operátor Művelet ~ 1-es komplemens & bitenkénti ÉS | bitenkénti VAGY ^ bitenkénti kizáró vagy Igazságtábla : ld. jegyzet ! Bitenkénti logikai műveletek segítik a számítógép hardver elemeinek programozását. Maszkolás: bitek beállítása, illetve törlése.

ax = 2001 (0x07D1) maszk = 0x0006 ax | maszk = 0x07D7 Bitek 1-be állítása A maszk 1-et tartalmaz mindazon bitpozíciókban, ahol a beállítást el kell végezni. A beállítást ezután a bitenkénti VAGY művelettel lehet elvégezni. A maszkot 16-os számrendszerbeli konstansként kell felírni, mivel a C-ben nem lehet kettes számrendszerben megadni konstansokat. Figyeljük meg a bitek szintjén a művelet elvégzését:. ax = 2001 (0x07D1) maszk = 0x0006 ax | maszk = 0x07D7 0000 0111 1101 0001 0000 0000 0000 0110 0000 0111 1101 0111 Ld.: 1.6.1. mintapélda !

ax = 2007 (0x07D7) maszk = 0xFFF9 ax & maszk = 0x07D1 Bitek törlése Bitek törlése esetén a maszkban azokba a pozíciókba, ahol a törlendő bitek állnak, 0-t teszünk, a többi helyre 1-et. A bitek törlése ezután a bitenkénti ÉS művelet segítségével történhet. Az előbbi példát alapul véve, töröljük az ax éppen beállított 1. és 2. bitjét ! Figyeljük meg a bitek szintjén a művelet elvégzését. A maszk az előbbi példában használtnak épp az ellentettje. ax = 2007 (0x07D7) maszk = 0xFFF9 ax & maszk = 0x07D1 0000 0111 1101 0111 1111 1111 1111 1001 0000 0111 1101 0001 xx

A kizáró vagy művelet használata A kizáró VAGY művelet érdekes tulajdonsága, hogy ugyanazt a maszkot kétszer egymás után használva visszakapjuk az eredeti értéket. Így ez a művelet jól felhasználható titkosításra, bitek ki-be kapcsolására.

Biteltoló (shift) műveletek: eltolás balra (<<) és jobbra (>>) A művelet általános alakja: operandus1 shift operátor operandus2 A művelet során a baloldali operandus bitjei annyiszor lépnek balra (jobbra), amennyi a jobboldali operandus értéke. A felszabaduló bitpozíciókba nullák kerülnek, míg a kilépő bitek elvesznek. Példa: int a = 3; // 00000000 00000011 a << 2; // 00000000 00001100

1.6.6. Értékadó operátorok Az értékadás egy olyan kifejezés, amely a baloldali operandus által kijelölt objektumnak adja a jobboldalon megadott kifejezés értékét, amely érték egyben az értékadó kifejezés értéke is. Nézzük az alábbi példát (a integer típusú változó) a = (2 + 5) * 10; A jobboldali kifejezés értéke 70, így a értéke 70 lesz. Az értékadó operátorok kiértékelése jobbról balra haladva történik, emiatt a C nyelvben használható a többszörös értékadás, melynek során több változó veszi fel ugyanazt az értéket: a = b = c = 15;

1.6.6. Értékadó operátorok Ha az értékadó operátor két oldalán nem azonos típusok állnak, akkor először megtörténik a jobboldalon álló kifejezés kiértékelése, majd az eredmény átalakul a baloldal típusának megfelelően. Az alábbi példában a float típusú a változó értéke 2 lesz és nem 2.5: float a; a = 5 / 2; Az 5 egészet elosztva a 2 egésszel az eredmény az egész típusú 2 lesz és ezt kapja értékül az a.

1.6.6. Értékadó operátorok Az értékadásnak gyakran használt formája, amikor egy változó értékét módosítjuk, majd a kapott új értéket ugyanabban a változóban tároljuk, pl.: a = a + 5; Az ilyen kifejezések tömörebb formában is felírhatók: a += 5; Általános formában: a kif1 = kif1 op kif2 alakú kifejezések felírhatók a kif1 op = kif2 formában is (összetett értékadás). Az összetett értékadás használata általában gyorsabb kódot eredményez.

Feladat: a *= b + 1; Melyik alábbi kifejezés azonos ezzel ? 1. a = a * (b + 1); 2. a = a * b + 1;

1.6.7. Pointer operátorok A C nyelvben kiemelt szerepe van egy olyan speciális változónak, amely más objektumok címét tárolja, ez a mutató (pointer): Amikor deklaráljuk a mutatót, meg kell adnunk a nevét, és azt, hogy milyen típusú változóra fog mutatni. A C nyelvben két speciális egyoperandusú művelet van, melyeket a mutatókkal kapcsolatosan használunk. A "címe" (&) művelet eredménye az operandusként megadott memóriaobjektum címe: int a, *pa; pa = &a; A másik mutató operátor (*) az indirekt hivatkozás elvégzéséhez szükséges: *pa = *pa + 5; A *pa kifejezés a pa pointer által mutatott objektumot jelenti, a fenti példában az a változót.

Pointer aritmetika A mutató léptetése a szomszédos elemre többféle módon is elvégezhető: int *p, *q, j; p = p + 1; p += 1; p++; ++p; Az előző elemre visszalépésre szintén többféle lehetőség van: p = p - 1; p -= 1; p--; --p;

1.6.8. A sizeof operátor A C nyelv tartalmaz egy - a fordítás idején kiértékelésre kerülő - egyoperandusú operátort, amely megadja egy tetszőleges objektum (az operandus) méretét. A sizeof objektum vagy a sizeof (típusnév) alakú kifejezések értéke az az egész szám, amely megadja az operandusként megadott objektum, vagy típus byte-ban kifejezett méretét. A sizeof operátor előjel nélküli egész típusú értéket szolgáltat. Az objektum tetszőleges egyszerű változó, illetve a későbbiekben ismertetendő tömb vagy struktúra lehet.

1.6.2. mintapélda: a sizeof operátor használata #include <stdio.h> void main (void) { //A sizeof operátor int meret; float z; meret = sizeof z; printf ("\nA z változó %d bytot foglal a memóriában",meret); printf ("\nA char típus : %d byte",sizeof (char)); printf ("\nAz int típus : %d byte",sizeof (int)); printf ("\nA float típus: %d byte",sizeof (float)); }

1.6.9. A vessző operátor A vessző operátor felhasználásával egyetlen kifejezésben több - akár egymástól független - kifejezés is elhelyezhető. A vessző operátort tartalmazó kifejezés kiértékelése balról jobbra haladva kerül kiértékelésre. A kifejezés értéke és típusa megegyezik a jobboldali operandus értékével és típusával. Példa: a = (b=5, b + 3); Először a b változó kap értéket (5), majd a zárójelezett kifejezés értéke 5 + 3, azaz 8 lesz. Végül az a változó értékadással megkapja a 8 értéket. Figyelem ! Azok a vesszők, amelyeket a deklarációkban a változónevek, illetve függvényhíváskor az argumentumok elkülönítésére használunk, nem a vessző operátorok. Ezért ezekben az esetekben nem garantált a balról - jobbra haladó kiértékelés sem.

1.6.10. A feltételes operátor A feltételes operátornak (?:) három operandusa van: kif1 ? kif2 : kif3 A feltételes kifejezésben először kif1 kifejezés értéke kerül kiértékelésre. Ha ennek értéke nem nulla (igaz), akkor kif2 értéke adja a feltételes kifejezés értékét, ellenkező esetben pedig a kettőspont után álló kif3 lesz a feltételes kifejezés értéke. A kettőspont két oldalán álló kifejezések közül tehát mindig csak az egyik értékelődik ki.

A feltételes operátor, példa max = a > b ? a : b; A kifejezés az alábbi formában is felírható: a > b ? (max = a) : (max = b)

1.6.11. Precedencia és asszociativitás Az elsőbbségi (precedencia) szabályok meghatározzák a kifejezésekben szereplő műveletek kiértékelési sorrendjét. A sorrend zárójelezéssel módosítható. Asszociativitásnak nevezzük az azonos precedenciájú operátorokat tartalmazó kifejezésekben a kiértékelés irányát. Ld. 1.6.11.1. táblázat !

1.6.11. Precedencia és asszociativitás Megnevezés Operátor Asszociativitás Elsődleges operátorok () [] . -> balról jobbra Egyoperandusú operátorok ! ~ - ++ -- & * sizeof jobbról balra Aritmetikai operátorok / % + - Biteltoló műveletek << >> Relációs operátorok < <= > >= == != Bitműveletek Logikai műveletek && || Feltételes operátor ?: Értékadó operátorok = += -= … Vessző operátor ,

1.6.12. Mellékhatások Bizonyos műveletek - többszörös értékadás, léptetés, függvényhívás - feldolgozása során a kifejezés értékének meghatározása mellett bizonyos változók értéke is megváltozhat. Ezt a jelenséget nevezzük mellékhatásnak (side effect). A következő példában a pow függvény értéke attól függ, hogy az n léptetése megtörténik-e a függvény meghívása előtt, vagy sem. 1.6.3. mintapélda: mellékhatások #include <stdio.h> #include <math.h> void main (void) { //mellékhatások int n = 2; printf ("\nn=%d, a hatványérték: %lf", ++n, pow (2, n)); }

1.6.13. Rövidzár kiértékelés Bizonyos műveleteknél nem kell a teljes kifejezést kiértékelni ahhoz, hogy egyértelműen megkapjuk a kifejezés értékét. Ezt a kiértékelési módot rövidzár (short-circiut) kiértékelésnek nevezzük. Logikai konjunkció esetén: kif1 && kif2 Ha a baloldali kifejezés értéke 0… . Hasonlóképpen a logikai diszjunkció esetén: kif1 || kif2 kiértékelésekor, ha kif1 értéke 1, akkor a diszjunkció értéke is 1 a kif2 értékétől függetlenül, tehát kif2 figyelmen kívül marad.

1.6.14.Típuskonverziók A kifejezések kiértékelése során előfordulhat, hogy egy kétoperandusú operátor különböző típusú operandusokkal rendelkezik. Ahhoz, hogy a művelet elvégezhető legyen, a fordítónak azonos típusúra kell átalakítania a két operandust, vagyis típuskonverziót kell végrehajtania. A típuskonverziók egy része automatikusan megy végbe a C nyelv definíciójában rögzített szabályok alapján, ezeket implicit vagy automatikus konverzióknak nevezzük. Típus konverziót a programozó is előírhat a típuskonverziós operátor (cast) alkalmazásával. Ez az egyoperandusú operátor a konvertálandó kifejezés előtt zárójelek között tartalmazza a megfelelő típusnevet: (típusnév) kifejezés Ebben az esetben a típusnév megjelenik a konverziós előírásban, ezért itt explicit típuskonverzióról beszélünk.

Típuskonverziók, példa float v1, v2; int a=11; v1=a/2; v2=a/2.; float x1, x2; int a=11, b=2; x1= a/b; x2= (float) a / b;

Az automatikus típuskonverzió szabályai: Lebegőpontos típusok konverziója: A lebegőpontos típus egész jellegű típussá konvertálása a törtrész eldobásával megy végbe. Ha az eredmény nem fér el a megadott egész típusban, akkor annak értéke határozatlan lesz. Ha a float típus double vagy long double típusra, illetve a double típus long double típusra konvertálódik, az objektum értéke változatlan marad. Valamely lebegőpontos típus kisebb lebegőpontos típusra konvertálható. Ha a konvertált érték nem ábrázolható a kijelölt típussal, az eredmény határozatlan lesz. Ha az érték csak kisebb pontossággal ábrázolható a kijelölt típussal, akkor kerekítés történik.

Az automatikus típuskonverzió szabályai: Egész jellegű típusok konverziója A char, a short int , a felsorolt típus és a bitmezők minden olyan esetben alkalmazhatók, ahol az int típus használható. Ezek a típusok automatikusan int típussá konvertálódnak. Ha az int típus nem alkalmas a tárolásukra, akkor unsigned int lesz a konverzió céltípusa. Ez a konverziós szabály az "egész konverzió" nevet viseli. Értékmegőrző konverziónak is szokás nevezni, mivel a fenti konverzió érték- és előjelhelyes eredményt ad. Az egész típus minden esetben átalakítható lebegőpontos típussá. Ha a lebegőpontos típus pontossága nem elegendő az egész érték valamennyi számjegyének tárolására, akkor kerekítés történik.

A szokásos aritmetikai konverziók A kétoperandusú műveletek többsége az operandusait és az eredményt a "legnagyobb" közös típusúra konvertálja. Az átalakítás során használt szabályok a "szokásos aritmetikai konverziók" nevet viselik. A konverziós szabályok az alábbiak: Ha valamelyik operandus long double típusú, akkor a másik operandus is long double típusúvá konvertálódik. Ha valamelyik operandus double típusú, akkor a másik operandus is double típusúvá konvertálódik. Ha valamelyik operandus float típusú, akkor a másik operandus is float típusúvá konvertálódik. Ha valamelyik operandus unsigned long int típusú, akkor a másik operandus is unsigned long int típusúvá konvertálódik. Ha valamelyik operandus long int típusú, akkor a másik operandus is long int típusúvá konvertálódik. Ha valamelyik operandus unsigned int típusú, akkor a másik operandus is unsigned int típusúvá konvertálódik. Ha az egyik operandus long int típusú és a másik operandus típusa unsigned int, akkor a másik operandus csak akkor konvertálódik long int típusúvá, ha az képes az unsigned int érték tárolására. Ellenkező esetben mindkét operandus unsigned long int típusú lesz. Ha a fenti szabályok egyike sem került alkalmazásra, akkor mindkét operandus int típusú.

Ellenőrző kérdések Ismertesse az operátor, az operandus és a kifejezés fogalmak kapcsolatát ! Milyen szabályok érvényesülnek a kifejezések kiértékelésekor ? Mit mond ki a precedenciaszabály ? Mikor alkalmazza a fordító az asszociativitás szabályt. Sorolja fel és csoportosítsa az aritmetikai operátorokat ! Sorolja fel és csoportosítsa a logikai és relációs operátorokat ! Írja fel a konjunkció igazságtábláját ! Milyen típusú lesz a művelet eredménye ? Írja fel a diszjunkció igazságtábláját. Milyen típusú lesz a művelet eredménye ? Mire használjuk a léptető operátorokat ? Ismertesse a C nyelv bitműveleteit ! Írja fel a bitenkénti logikai műveletek igazságtábláját ! Hogyan történhet egy byte meghatározott bitjeinek 1-be állítása ? Mi teszi lehetővé a többszörös értékadás használatát ? Milyen műveletek végezhetők mutató típusú változókon ? Hány operandusa van a feltételes operátornak ? Hogyan kérdezhető le egy változó, illetve egy típus mérete ? Kifejezések kiértékelésénél mit jelent az asszociativitás ? Mit nevezünk mellékhatásnak a műveletek feldolgozás kapcsán ? Mit értünk rövidzár kiértékelésen ? Mondjon rá egy konkrét példát ! Mikor kell a fordítónak típuskonverziót végrehajtania ? Írjon fel egy konkrét példát, amikor az implicit típuskonverzió információ-vesztéssel jár ! Mi történik az automatikus típuskonverzió során, ha lebegőpontos típus egész jellegű típussá konvertálódik, float típus double vagy long double típussá konvertálódik, egész típus konvertálódik float típussá.

Feladat Mi jelenik meg a képernyőn az alábbi program-részlet lefutása után: float eredmeny; int a=15, b=4; eredmeny = a/b; printf (”\nAz eredmény: %.2f ”,eredmeny);

Feladat megoldása Mi jelenik meg a képernyőn az alábbi program-részlet lefutása után: float eredmeny; int a=15, b=4; eredmeny = a/b; printf (”\nAz eredmény: %.2f”.eredmeny); Az eredmény: 3.00