w04, Studia PK, JiPP, Wykłady - Chmaj

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Ŝ ...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • alter.htw.pl
  • Powered by WordPress, © Nie obrażaj więc mojej inteligencji poprzez czynione na pokaz zaniżanie własnej.