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.

Slides:



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

C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Programozási nyelvek II.
Összetett adattípusok 8/b tétel
ADATBÁZIS KEZELÉS – Adattípusok
LEgyméretű tömbök, vektorok Alkalmazott Informatikai Tanszék SZÁMÍTÁSTECHNIKA I. dr.Dudás László 17./0. lVektorok definiálása lVektorok definiálása kezdőértékekkel.
Kifejezések, operandusok, operátorok
2009 Bevezetés a programozásba Krankovits Melinda.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Turbo Pascal Változók.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Programozás Alapjai (2008)
Bevezetés a Java programozásba
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.
6. előadás (2005. április 5.) Struktúrák Úniók Új adattípus definíálása Dinamikus memória foglalás 1.
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
2. Gyakorlat Követelmények / „C” ismétlés
Táblázatkezelés alapjai MS Excel, OpenOffice Calc
Függvények, mutatók Csernoch Mária.
C Kifejezések.
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:
LDinamikus tömbök, kétdimenziós tömbök Alkalmazott Informatikai Tanszék MŰSZAKI INFORMATIKA dr.Dudás László 21./0. lVektorok létrehozása futásidőben, dinamikusan.
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
dr Póder Margit f. docens Rendszer- és Szoftvertechnológia Tanszék
Vizuális és web programozás II.
Programozási nyelvek II. Objektumorientált programozás a Java nyelv eszközeivel 2007/08.
Fixpontos, lebegőpontos
Programozás Operátorok C# -ban.
Programozás Az adatokról C# -ban.
C nyelv utasításai.
Beolvasó utasítás Console.Read();  Int típusú adatot kapunk. Console.ReadLine();  String típusú adatot kapunk. Console.ReadKey();  Tetszőleges billentyű.
Programozási Nyelvek (C++) Gyakorlat Gyak 02.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Ismétlés A pascal program szerkezete: program programnev; Programfej
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.
Klasszikus Programozás a FoxPro-ban
Szabványos függvények a Pascalban. Bevezetés Pascalban a függvények feladata, hogy a bemenő paraméterekből előállítsák a függvényértékeket Függvényeket.
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.
Készítette: Csíki Gyula
Visual Basic 2008 Express Edition
Objektum orientált programozás
Objektum orientált programozás
Objektum orientált programozás
Operátorok Vezérlési szerkezetek Gyakorlás
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 3. Előadás.
Free pascal feladatok
Excel programozás (makró)
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás I. 3. gyakorlat.
Objektum orientált programozás 4. Mutatók, típusok és struktúrák Nagy Szilvia.
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.
INFOÉRA 2006 Nagypontosságú aritmetika III.
Elemi adattípusok.
Kifejezések C#-ban.
Programozási alapismeretek
Gépészeti informatika (BMEGEMIBXGI)
Excel programozás (makró)
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Adatszerkezetek.
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Típusok, változók, konstansok
Cache példák 2019 (IMSC).
Előadás másolata:

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

2 Témák: Operátorok Kiértékelés Konverzió

3 prec1. Elsődleges operátorok ()kifejezés kiértékelési sorrendjének előírása a * ( x + y ) []tömbelem hivatkozás a [ i + 2 ] ->struktúra mező hivatkozás struktúrára mutató pointerrel hallg_strukt_mut -> nev.struktúra mező hivatkozás hallgato. nev

4 prec2. Egyoperandusú operátorok 1. (tipus)cast, kikényszerített típus konverzió (double) k sizeofváltozó, típus memória mérete: byte sizeof(i)sizeof(int) &változó címe &y *visszahivatkozás egy adott címen tárolt aktuális értékre *(&y)

5 prec2. Egyoperandusú operátorok 2. +előjel (a szimmetria kedvéért) -előjel a = x;a = 4 - (-x); ++növelés 1 egységgel, előtagos, utótagos ++ij++ --csökkentés 1 egységgel ~bitenkénti komplemens !logikai tagadás (relációs, logikai kifejezés: 0 ha hamis, 1 ha igaz)

6 prec3. Multiplikatív operátorok *szorzás /osztás 5/22 -5/2-2 vagy -3 (fordítótól függ) megoldás: (float) 5/-2 %modulo (maradékos osztás, csak int típusra) -5%2 -1 vagy 1 (gépfüggő) megoldás: abs(-5%2)

7 prec4. Additív operátorok +összeadás -kivonás

8 prec5. Eltolás, léptetés <<balra tolás, üres helyet 0-val tölt x<<2(szorzás néggyel) >>jobbra tolás, üres helyet unsigned: 0-val signed: 1-gyel vagy 0-val tölt y>>3(osztás 8-cal)

9 prec6. Relációs operátorok >>=<<= Az eredmény int típusú: 0ha hamis 1ha igaz i < 5*j i < (5*j)(a zárójel felesleges) Megj.: aritmetikai kifejezés ha 0, akkor hamis, különben igaz

10 prec7. Egyenlőség operátorok ==egyenlő(gyakori hiba!) !=nem egyenlő

11 prec8-10. Bitenkénti műveletek &bitenkénti ÉS (AND) n=n & 0177(az utolsó 7 bit kivételével nulláz) 0177=127= ^bitenkénti kizáró VAGY (XOR) 1ha különböznek a bitek 0ha megegyeznek a bitek |bitenkénti VAGY (OR) n=n|010 (jobbról a negyedik bit 1 lesz)

12 prec Logikai ÉS, VAGY műveletek &&logikai ÉS (AND) ||logikai VAGY (OR) Pl.: ha x=1és y=2, akkor x & y értéke 0, mert x y …010 x&&y értéke 1 (igaz) Megj.: a kiértékelés félbeszakad, ha megvan az eredmény!

13 prec13. Feltételes kifejezés feltétel ? igaz_eset : hamis_eset (ternary, három operandusú művelet) Pl.a=(b<5) ? -5 : 12; ha b=1, akkor a=-5 ha b=8, akkor a=12

14 prec14. Értékadási műveletek változó (operátor) = kifejezés egyenértékű a változó = változó (operátor) kifejezés -sel Az operátor lehet: +, -, *, %, /, &, ^, |, > Előnye, hogy változó csak egyszer értékelődik ki. Pl. x*=y+1; ->x=x*(y+1); és nem x=x*y+1;

15 prec15. Kifejezés lista kif1, kif2, kif3,... Kiértékelés balról jobbra, értéke az utoljára kiértékelt kifejezés értéke.

16 Egyoperandusú operátorok mellékhatásai Pl.i=0; a=b[i++];/* a=b[0] és i=1 */ vagyi=0; a=b[++i];/* a=b[1] és i=1 */ Makróknál: #define min(a,b) (a<b ? a : b)... i=0; j=min(i++,5); /* j=(i++<5 ? i++ : 5) */ ( i=2 és j=1 lesz )

17 Kifejezések kiértékelési sorrendje Precedencia szabály az előbbiek szerint. A && || ?:, operátorok kivételével nem meghatározott az operandusok kiértékelési sorrendje. Pl. x=f(x)+g(y); vagyprintf("%d%d\n",++n,negyzet(n)); vagya[i]=i++; A sorrendet a fordítóprogram dönti el (optimalizálás). Megoldás: segédváltozó alkalmazása.

18 Kifejezések típus konverziója A különböző típusú operandusokat a művelet végrehajtása előtt közös típusra kell alakítani. Automatikus: keskenyebb -> szélesebb Pl. x+i x float, i egész esetén az i -> float A char és az int szabadon keveredhet: char -> int int -> char esetén túlcsordulás lehet. Pontos eljárás a K&R könyvben.

19 Konverzió értékadáskor A jobboldal a bal típusára konvertálódik. A karakter mindig egésszé. long -> int, short, char (magasabb bitek elvesznek) float -> int (törtrész elvész) double -> float (kerekít vagy levág!) Kényszerített típusmódosítás: Pl. int n; x=sqrt((double) n);