Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
STEROWANIE Ale nie tylko
Informatyka I Wykład 6 STEROWANIE Ale nie tylko Operatory zmniejszania i zwiększania Operator rzutowania Reguły przekształceń typów Warunki Jerzy Kotowski
2
OPERATORY ZWIĘKSZANIA I ZMNIEJSZANIA
Operator inkrementacji (zwiększania) ++ Operator jednoargumentowy, priorytet 14 Zwiększa o jeden: ++Ala; ÜÞ Ala = Ala + 1; Oszczędność na czasie Uwaga!! Argument musi być lvalue, tzn. ++(Ala + Ola); BŁĄD!! Postać przedrostkowa (preinkrementacja): ++Ala; Postać przyrostkowa (postinkrementacja): Ala++; Jerzy Kotowski
3
OPERATORY ZWIĘKSZANIA I ZMNIEJSZANIA c.d.
Operator dekrementacji (zmniejszania) -- Operator jednoargumentowy, priorytet 14 Zmniejsza o jeden: --Ala; ÜÞ Ala = Ala - 1; Oszczędność na czasie Argument oczywiście też musi być lvalue Postać przedrostkowa (predekrementacja): --Ala; Postać przyrostkowa (postdekrementacja): Ala--; Jerzy Kotowski
4
Operatory zwiększania i zmniejszania w wyrażeniach
int a=1, b=3, c; Przykład 1: c = ++a+b; Rozwiązanie: a: 2, b: 3, c: 5 Przykład 2: c = a--+b; Rozwiązanie: a: 0, b: 3, c: 4 Przykład 3: c = a+++b; Rozwiązanie: a: 2, b: 3, c: 4 Przykład 4: c = -a---b--; Rozwiązanie: a: 0, b: 2, c: -4 c=2+++a; c=a+++2; Jerzy Kotowski
5
OPERATOR RZUTOWANIA Jednoargumentowy operator projekcji (case)
Priorytet 14 Przykład użycia (jawna projekcja): float a=7, b=3.14; int c = (int)(a/2) + (int)(double)b; Rozwiązanie: c: 6 Przykład użycia (niejawna projekcja): c = a/2 + b; Rozwiązanie: c: 7 Bardzo ważny operator przy operacjach na wskaźnikach Jerzy Kotowski
6
REGUŁY PRZEKSZTAŁCEŃ TYPÓW dla operatorów arytmetycznych
Argumenty dwuargumentowych operatorów arytmetycznych powinny być identyczne. Dlatego podlegają one następującym regułom przekształceń typów: Wpierw typy char i short są przekształcane na typ int a typ float na double. Następnie: double long Proste? unsigned int Jerzy Kotowski
7
KONSTRUKCJE STERUJĄCE
Konstrukcje sterujące ustalają kolejność obliczeń. Wyrażenie staje się instrukcją jeżeli jest zakończone średnikiem. Instrukcja złożona (blok) jest to grupa deklaracji oraz instrukcji w parze nawiasów { … }. W dalszej części materiału - jeżeli nie zostanie podkreślone, że jest inaczej - słowo instrukcja będzie oznaczało zarówno instrukcję pojedynczą (prostą) jak i instrukcję blokową. Jerzy Kotowski
8
KONSTRUKCJE STERUJĄCE c.d.
WARUNKI if - else else - if switch PĘTLE while do - while for SŁOWA KLUCZOWE case - w kontekście z konstrukcją switch default - w kontekście z konstrukcją switch break - wszędzie continue - w kontekście z pętlami Jerzy Kotowski
9
KONSTRUKCJA if - else Składnia: if(wyrażenie) instrukcja_1 else instrukcja_2 Przykład 1: max(a,b) if(a>b) x=a; else x=b; Przykład 2: bez else if(a>b) x=0; Przykład 3: zagnieżdżanie if(n>0) if(a>b) x=a; else x=b; else dotyczy wew. if-a P. 4: nawiasy klamrowe if(n>0) {if(a>b) x=a;} else x=b; Wcięcia są bez znaczenia! Jerzy Kotowski
10
KONSTRUKCJA else - if Składnia: if(wyrażenie_1) instrukcja_1 else if(wyrażenie_2) instrukcja_2 else if(wyrażenie_3) instrukcja_3 else instrukcja_4 Ostatnie else nie jest obowiązkowe Przykład: delta=b*b-4*a*c; if(delta>0) { s=sqrt(delta); x1=(-b-s)/2/a; x2=(-b+s)/2/a; printf(“Two roots: ”); printf(“%f %f”,x1,x2);} else if(!delta) printf(“x0=%f”,-b/2/a); else printf(“No roots”); Jerzy Kotowski
11
KONSTRUKCJA else – if c.d.
2-5 0-2 3-5 A3 if(x>0&&x<=2) Instrukcja_1 else if(x>2&&x<5) Instrukcja_2 if(x>3&&x<5) Instrukcja_3 Instrukcja_4 if(xA1) Instrukcja_1 else if(xA2) Instrukcja_2 if(xA3) Instrukcja_3 Instrukcja_4 x=4, else: 2 x=4, bez else: 2,3,4 Jerzy Kotowski
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.