+ All Categories
Home > Documents > Operátory (2. část)

Operátory (2. část)

Date post: 12-Jan-2016
Category:
Upload: abia
View: 59 times
Download: 0 times
Share this document with a friend
Description:
Verze 2009.01. Operátory (2. část). 4. A1PRG - Programování – Seminář Ing. Michal [email protected]. Agenda. Další operátory v jazyce C Priorita a asociativita vyhodnocování operátorů. Opakování. - PowerPoint PPT Presentation
26
A1PRG - Programování – Seminář Ing. Michal Heczko [email protected] Operátory (2. část) 4 Verze 2009.01
Transcript
Page 1: Operátory (2. část)

A1PRG - Programování – Seminář

Ing. Michal Heczko [email protected]

Operátory (2. část) 4

Verze 2009.01

Page 2: Operátory (2. část)

Agenda

Další operátory v jazyce C Priorita a asociativita vyhodnocování

operátorů

Page 3: Operátory (2. část)

Opakování

Operátor - symbolické vyjádření elementární funkce s jednou nebo i více vstupními proměnnými, vrací jednu výstupní hodnotu. Aritmetické operátory – základní

matematické operace. Relační operátory – porovnání dvou hodnot Logické operátory – logické operace nad

logickými hodnotami. Bitové logické operátory - logické operace

nad jednotlivými bity.

Page 4: Operátory (2. část)

Opakování

Dělení operátorů podle počtu vstupních hodnot: Unární operátory –pouze jedna vstupní

hodnota Binární operátory – dvě vstupní hodnoty Ternární operátory – tři vstupní hodnoty

Page 5: Operátory (2. část)

Operátor podmínky

Jediný ternární operátor v jazyce C Obecná syntaxe:

Výraz_1 ? Výraz_2 : Výraz_3

Příklad: (x > 5) ? 1 : 0

Page 6: Operátory (2. část)

Operátor podmínky

V určitých případech nahrazuje příkaz IF Př.

if (y > z)

{

x = y;

}

else

{

x = z;

}

x = (y > z) ? y : z

Page 7: Operátory (2. část)

Adresní operátor

Operátor reference – získání adresy objektu

Unární operátor & Pozn. Operátor & je v jazyce C definován i

jako binární ve významu bitového součinu. Návratovou hodnotou tohoto operátoru

je adresa proměnné. Použití např. u funkce scanf:

scanf(“%d”,&x);

Page 8: Operátory (2. část)

Unární operátor *

Operátor dereference – získání objektu dle adresy. Pozn. Operátor * je v jazyce C definován i

jako binární ve významu součinu. Umožňuje odkazovat na adresu, která je

uložená v dané proměnné. Umožňuje přistupovat k danému objektu,

na jehož adresu odkazuje.

Page 9: Operátory (2. část)

Příklad

int *x;

int y = 5;

x = &y;

printf(“%d %d %d”,*x,x,y);

*x = 8;

printf(“%d %d %d”,*x,x,y);

x = 8;

printf(“%d %d %d”,*x,x,y);

Page 10: Operátory (2. část)

Operátor přetypování

Slouží k přetypování z jednoho datového typu na jiný.

Zápis: Nový datový typ v závorkách před jménem

proměnné. Příklad:int a=5, b=3;double c;c = a / (double)b;

Page 11: Operátory (2. část)

sizeof

Operátor pro získání délky objektu nebo typu.

Návratová hodnota: počet bytů.

Obecná syntaxe:unsigned int sizeof(<jmeno>);

Page 12: Operátory (2. část)

sizeof

Příklad:int velikost;float cislo;double pole[10];

velikost = sizeof(int);

velikost = sizeof(cislo);

velikost = sizeof(pole);

Page 13: Operátory (2. část)

Čárka

Postupné vyhodnocování dvou výrazů

Obecný zápis:výraz_1, výraz_2

Postup vyhodnocování: Nejprve se vyhodnotí výraz_1 a následně výraz_2. Jeho hodnota se stává hodnotou celého výrazu.

Page 14: Operátory (2. část)

Čárka

int i = 2; j = 3;

int k;

k = (i++, i + j);

int i = 2; j = 3;

int k;

i++;

k = i + j;

Příklad Ekvivalentní zápis

Page 15: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Priorita – určuje, který operátor bude vyhodnocen jako první

Asociativita – pokud mají dva operátory stejnou prioritu, rozhoduje o pořadí směr vyhodnocování.

Page 16: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Priorita

Operátory Asociativita

1 . -> () [] Zleva

2 +1 -1 ++ -- ! ~ & * (přetypování) sizeof

Zprava

3 * / % Zleva

4 +2 -2 Zleva

5 << >> Zleva

6 < > <= >= Zleva

7 == != Zleva1) Unární operátor + nebo - 2) Binární operátor + nebo -

Page 17: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Priorita

Operátory Asociativita

8 & Zleva

9 ^ Zleva

10 | Zleva

11 && Zleva

12 || Zleva

13 ?: Zprava

14 = += -= *= /= %= <<= >>= &= |= ^=

Zprava

15 , Zleva

Page 18: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Příklad 1:v = x + y * z; v = (x + (y * z)); Pozn.: Násobení má nejvyšší prioritu, přiřazení

nejnižší.

Příklad 2:v = x – y - z; v = ((x – y) - z); Pozn.: Rozdíl má asociativitu zleva, přiřazení

má nižší prioritu

Page 19: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Příklad 3:v += w << x << y / z;

v += ((w << x) << (y / z));

Příklad 4:v = (int)w & x % y / z;

v = (((int)w) & ((x % y) / z));

Page 20: Operátory (2. část)

Priorita a asociativita vyhodnocování operátorů

Pokud si nejste jisti prioritou a asociativitou, použijte závorky.

Page 21: Operátory (2. část)

Závorky

3 druhy závorek ( … ) [ … ] { … }

Page 22: Operátory (2. část)

Závorky ( … )

Page 23: Operátory (2. část)

Závorky ( … )

Page 24: Operátory (2. část)

Závorky [ … ]

Page 25: Operátory (2. část)

Závorky { … }

Page 26: Operátory (2. část)

A1PRG 4. Operátory II.

Děkuji za pozornost

Ing. Michal Heczko

[email protected]

218/U3

Prezentace k dispozici na http://vyuka.fai.utb.cz


Recommended