IZRAZI I OPERATORI IZRAZI Nastaju kombinacijom varijabli konstanti
IZRAZI I OPERATORI
IZRAZI Nastaju kombinacijom varijabli, konstanti i operatora FAKTORI – osnovni elementi Riječi ili simboli koji određuju da se s varijablama u programu nešto učini Unarni, binarni, tenarni
Operatori Aritmetički I. • • zbrajanje + oduzimanje – množenje * dijeljenje / unarni operator – predznak (-) negacija (!) binarni operator modulo % - ostatak pri dijeljenju
+, – nižeg prioriteta *, /, % višeg prioriteta Redoslijed se može promijeniti upotrebom () Primjer. Koju će vrijednost imati varijabla x? x = 10 % 2 b) x = 10*3+6/2 c) x = (4*(3 – 2)/2 a)
2 nova unarna operatora Inkrement: uvećaj za 1; ++ Dekrement: umanji za 1; – – x = x + 1 identično s ++x; x++ x = x – 1 identično s – –x; x – – Primjenjuju se samo na varijable, ne na izraze niti konstante a+ = b a- = b a=a+b a=a–b
1. Koju vrijednost poprima varijabla b nakon naredbe a=1 b = ++a + 3 b=5 2. Koji izraz nije ispravan a) b) c) d) e) a++ b = ++a + 4 a (b – c)++ a = b++ +3 a = 5. 6 ++
Vježba 1. Sljedeće matematičke izraze zapišite u programskom jeziku C: 1. 2 a 2. 3 a + b – c 3. a(b + 5 c) 4. 5.
Neka je x = 2. y = ++x x=i y = 3 (vrijednost varijable x se uveća za 1, pa se ta vrijednost pridruži varijabli y) y=x++ y = 2, x = 3 (najprije se trenutna vrijednost varijable x pridruži varijabli y, a zatim se vrijednost varijable x uveća za 1)
Zadaci za vježbu: Kolika je vrijednost varijable a, b i c nakon izvršenja sljedećeg bloka naredbi int a = 3, b = 2, c = 1; a*=(++ b*b + c*c++); a = 30, b = 3, c = 2
Operator dijeljenja U C-u je rezultat dijeljenja dva cijela broja cijeli broj! 5: 3=1 5/3=1 5. 0/3. 0=1. 666667 (float)5/3=1. 666667
Vježba: Izračunajte rezultat sljedećih izraza: 1. 7/2 = 2. 7. 0/2 = 3. (float)7/2 = 4. 6+2*3/5 = 5. 12 – 4*7%3 =
Zapiši u C – u sljedeće izraze
4. Kako možeš skraćeno napisati naredbu if (x = = 20) { i = i – 1; a[i] = 4; } if (x == 20) a[--i]=4
III. Logički operatori - U skupinu binarnih (&&, ||), odnosno unarnih (!) operatora && - logički I (AND) || - logički ILI (OR) ! – negacija (NOT)
Istinitost logičkih operacija a 0 0 1 1 b 0 1 a&&b 0 0 0 1 a||b 0 1 1 1 !a 1 1 0 0
Dopušteno miješati logičke i relacijske operatore Redoslijed izvršavanja: Najviši prioritet ! >, >=, <, <= ==, != && Najniži || Rezultat izraza na koje utječu logički operatori je logički jedan (1).
Redoslijed izvršavanja operatora ! >, >=, <, <= ==, != && * / % || + – 1. Izračunaj 5*6 >= 40 2! = 5 == 0 1&& !0 && 1
Tip rezultat aritmetičkih izraza – određen tipovima operanada u njemu Pravila pretvorbe različitih podataka usmjerena prema višem tipu Podataka 2 vrste pretvorbe: automatska (implicitna) zadana (eksplicitna)
Za automatsku pretvorbu vrijedi: 1. Svi operandi int 2. Bilo koji operand long, svi podaci pretvaraju u long, rez. Long 3. char i short 4. Bilo koji operand double, svi podaci u double, rez. Double 5. Bilo koji operand unsigned, svi podaci u unsinged, rez. unsigned rezultat int, float double
1. Deklarirane su varijable x, y, z, a kao double x; float y; int z; char a Odredi tip rezultata izraza: l = (a + z)*(y – z). Tip rezultata jednak je “najvišem” tipu. To je u ovom primjeru tip double.
2. Koju će vrijednost poprimiti varijabla x nakon naredbi? int m; char r, n, t; t = ‘m’; r = ‘n’; x = t + r; Automatskom se pretvorbom svim podacima char pridružuje ASCII vrijednost zadanog znaka
- Slides: 21