Nie obrażaj więc mojej inteligencji poprzez czynione na pokaz zaniżanie własnej.
Operatory
• C/C++ dopuszczają wiele róŜnorakich operatorów • podstawowe grupy operatorów o operatory arytmetyczne o operatory logiczne o operatory bitowe • kaŜdy operator charakteryzuje o liczba argumentów o sposób działania o priorytet o typ łączności Operatory arytmetyczne Podstawowe: + – * / Są to operatory dwuargumentowe: arg1 op arg2 Wynik moŜe zaleŜeć od typu: int a=5, b=2, wi; float c=5.0, d=2.0, wf; wi=a/b; /* wartość : 2 */ wf=c/d; /* wartość : 2.5 */ Operator % • operator dwuargumentowy • moŜna stosować go tylko do typów całkowitych • pozwala na uzyskanie reszty z dzielenia, np. 10 % 3 - ma wartość 1 12 % 4 - ma wartość 0 • dla liczb ujemnych wynik (podobnie jak dla całkowitego dzielenia) moŜe zaleŜeć od maszyny Przykład zastosowania: #include <iostream> #include <iomanip> using namespace std; int main(void) { for (int k=0; k<64; k=k+1) { if (k%8) cout <<"\t"; else cout <<"\n"; cout << setw(2) <<k; } cout << "\n"; return 0; } 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 Priorytet + – : taki sam priorytet * / % : taki sam priorytet (wyŜszy niŜ + –) Łączność – określenie sposobu grupowania. Łączność lewostronna: a + b + c + d jest identyczne z (((a + b) + c) + d) Jednoargumentowe operatory + i – + arg : nie robi nic - arg : zmienia wartość arg na przeciwną Dla operatorów jednoargumentowych typ łączności jest określony przez kierunek działania operatora Operatory zwi ę kszania i zmniejszania • bardzo często (np. w pętlach) mamy wyraŜenia: k=k+1; /* zwiększ k o jeden */ n=n-1; /* zmniejsz n o jeden */ • w C – specjalne operatory k++; n--; /* równoznaczne n=n-1; */ • dwie formy tych operatorów: o przedrostkowa (prefix) – operator stoi z lewej strony argumentu ( przed argumentem) o przyrostkowa (postfix) – operator stoi z prawej strony argumentu ( po argumencie) /* równoznaczne k=k+1; */ • róŜnica w znaczeniu – chodzi o moment, w którym argument podlega zwiększeniu (zmniejszeniu) o forma przedrostkowa ( przed ) – najpierw zmieniamy wartość zmiennej a potem tak zmodyfikowaną zmienną stosujemy w wyraŜeniu o forma przyrostkowa ( po ) – najpierw obliczamy wartość wyraŜenia uŜywając starej wartości argumentu, a na koniec zmieniamy wartość zmiennej Przykład: int x,n=5; int x,n=5; x=n++; x=++n; printf(”%d %d\n”,n,x); printf(”%d %d\n”,n,x); 6 5 6 6 Operator przypisania = • operator dwuargumentowy, prawostronnie łączny • kaŜde wyraŜenie samo w sobie jest wyraŜeniem mającym wartość równą wartości przypisywanej wyraŜenie: (m=2) ma wartość równą 2. • w C/C++ mamy szereg innych operatorów przypisania Operatory logiczne Operatory relacji < mniejszy niŜ ... <= mniejszy lub równy ... > większy lub równy ... • priorytety równe (niŜsze niŜ operatorów arytmetycznych) • łączne lewostronnie == jest równy ... != jest róŜny od ... • priorytet równy, niŜszy niŜ < ... • łączne lewostronnie Uwaga: rozróŜnienie pomiędzy = a == Przykład: int a=5, b=100; int a=5, b=100; if (a==b) if (a=b) { { cout<<“Liczby rowne\n”); cout << “Liczby rowne\n”; cout<<a<< “ “ <<b<< “\n”; cout<<a<< “ “ <<b<< “\n”; } } else else cout << ”Liczby rozne\n”; cout << ”Liczby rozne\n”; Liczby rozne Liczby rowne 100 100 >= większy niŜ ... |
Menu
|