Operatory
Operatory
Operatory arytmetyczne:
Operatory arytmetyczne:
Operator Działanie
Przykład
+
dodawanie
a = b
+ c;
-
odejmowanie
a = b - c;
*
mnożenie
a = b * c;
/
dzielenie
a = b / c;
%
reszta z dzielenia (modulo)
a = b
% c;
Przykłady:
25 / 7
3
25 / 7.
3.571428
35. / 5
7.0
1 / 4
0
19 % 6
1
0 % 5
0
18 % 6
0
Operatory relacji:
Operatory relacji:
Operator Działanie
Przykład
<
mniejszy
a < b
<=
mniejszy lub równy
a <= b
>
większy
a > b
>=
większy lub równy
a >= b
==
równy
a = = b
!=
nie równy
a != b
wszystkie
operatory
relacji
są
dwuargumentowe;
jeśli relacja jest
prawdziwa
, to jej wartością
jest
1
;
w
przeciwnym przypadku
wartością relacji
jest
0
.
Operatory logiczne:
Operatory logiczne:
Operator Działanie
Przykład
!
negacja
! a
&&
koniunkcja (iloczyn logiczny)
a &&
b
||
alternatywa (suma logiczna)
a || b
wyrażenia połączone operatorami
&&
i
||
zawsze
są wartościowane od strony lewej do
prawej
;
kompilator oblicza wartość wyrażenia dotąd,
dopóki na pewno nie wie jaki będzie wynik.
( a == 0 )
&&
( m == 5 )
&&
( x >
23 )
Operatory bitowe:
Operatory bitowe:
Operator Działanie
Przykład
&
bitowa koniunkcja
a = b
& c;
|
bitowa alternatywa
a = b
| c;
^
bitowa różnica symetryczna
a = b
^ c;
<<
przesunięcie w lewo
a = b <<
c;
>>
przesunięcie w prawo
a = b
>> c;
~
bitowa negacja
a = ~b
Inkrementacja i
Inkrementacja i
dekrementacja:
dekrementacja:
inkrementacja
-
dodanie
1;
dekrementacje
-
odjęcie
1;
Przykład:
i = i + 1; //
i ++
j = j - 1;
//
j - -
operatory
inkrementacji
i
dekrementacji
mogą występować w dwóch odmianach:
przedrostkowej
i
przyrostkowej
;
i++
;
i--
;
++i
;
--i
;
operator
przedrostkowy
jest obliczany
przed przypisaniem;
operator
przyrostkowy
jest obliczany po
przypisaniu.
#include <iostream.h>
#include <conio.h>
void main
()
{
int
i=10, j=10;
clrscr();
cout
<<
"
i =
"
<<
i
<<
endl
<<
"
j =
"
<<
j
<<
endl
;
i++; ++j;
cout
<<
"
i =
"
<<
i
<<
endl
<<
"
j =
"
<<
j
<<
endl
;
cout
<<
"
i =
"
<<
i++
<< endl
<<
"
j =
"
<<
++j
<< endl
;
cout
<<
"
i =
"
<<
i
<< endl
<<
"
j =
"
<<
j
<< endl
;
}
Przykład:
i =
10
j =
10
i =
11
j =
11
i =
11
j =
12
i =
12
j =
12
Pozostałe operatory
Pozostałe operatory
przypisania:
przypisania:
Operator Zapis skrócony
Zapis rozwinięty
+=
a += b;
a = a + b;
- =
a - = b;
a = a - b;
*=
a *= b;
a = a * b;
/=
a /= b;
a = a / b;
%=
a %= b;
a = a % b;
<<=
a <<= b;
a = a << b;
>>=
a >>= b;
a = a >> b;
&=
a &= b;
a = a & b;
|=
a |= b;
a = a | b;
^=
a ^= b;
a = a ^ b;
Wyrażenie warunkowe:
Wyrażenie warunkowe:
(
warunek
) ?
wartość1
:
wartość2
( i > 5) ? 15 : 20
c = ( x > y ) ? 17 : 56;
Przykład:
Operator
Operator
sizeof
sizeof
:
:
sizeof
(
nazwa_typu
)
sizeof
(
nazwa_obiektu
)
Operator
Operator
rzutowania
rzutowania
:
:
(
nazwa_typu
)
obiekt
lub
nazwa_typu
(
obiekt
)
int
a = 85;
char
b;
b = (
char
) a; //
b =
‘U’
Przecinek to też operator
Przecinek to też operator
X = 1, 2, 3, 4;
// x == 1
Uwaga na konstrukcję Tab[i ,
j] !!!
To nie jest to samo co Tab[ i ]
[ j ]
Kiedy to się może przydac?
Tam gdzie możemy umieścić tylko jedną
instrukcję
for(
i=1, j=10
; i<=j;
i++, j+=2
)
cout << ”i=” << i << ”j=” << j <<
endl;
Funkcje
Funkcje
Funk_3
main
( )
{
instrukcja_1;
Funk_1
( );
instrukcja_2;
Funk_2
( );
instrukcja_3;
Funk_3
( );
instrukcja_4;
}
Program
return
return
return
Funk_4
( )
return
Funk_1
Funk_2
Funk_4
#include <iostream.h>
#include <conio.h>
int
kukulka (
int
ile);
//******************************************************************
*
main
()
{
int
m = 30;
clrscr ();
cout
<<
"Zaczynamy"
<<
endl
;
m = kukulka (2);
cout
<<
"\nNa koniec m = "
<<
m;
return
0;
}
//******************************************************************
*
int
kukulka (
int
ile)
{
int
i;
for
(i = 0; i < ile; i++)
cout
<<
"Ku-ku! "
;
return
77;
}
Zaczynamy
Ku-ku! Ku-ku!
Na koniec m =
77
Przykład:
Przykład:
Zdefiniuj funkcję:
3
2
2
)
,
(
y
x
y
x
F
i użyj do obliczeń wyrażeń:
abc
p
r
p
a
p
a
c
b
a
q
b
a
p
)
1
1
ln(
)
(
)
(
34
.
0
)
(
3
2
3
2
2
3
2
2
#include <iostream.h>
#include <conio.h>
#include <math.h>
float
F(
float
x,
float
y);
//--------------------------------------
void
main()
{
float
a, b, c, p, q, r;
clrscr();
cout
<<
"
a =
"; cin
>>
a;
cout
<<
"
b =
"; cin
>>
b;
cout
<<
"
c =
"; cin
>>
c;
p = F(a, b);
q = (a + b)*c + 0.34*F(a+p, a-p);
r = log(1 + F(1, p)) + a*b*c;
cout.width(10);
cout.precision(2);
cout
<<
"
\np =
"
<<
p
<<
"
\nq =
"
<<
q;
cout
<<
"
\nr =
"
<<
r;
}
//--------------------------------------
float
F(
float
x,
float
y)
{
return
pow(x*x + y*y, 1./3);
}
3
2
2
)
,
(
y
x
y
x
F
abc
p
r
p
a
p
a
c
b
a
q
b
a
p
)
1
1
ln(
)
(
)
(
34
.
0
)
(
3
2
3
2
2
3
2
2
Uwagi:
Uwagi:
Funkcja
ma swoją nazwę
, która ją
identyfikuje.
Przed odwołaniem się do nazwy wymagana
jest jej deklaracja
. Deklaracja, ale
niekoniecznie definicja.
Sama
funkcja może być zdefiniowana
później
;
Wywołanie funkcji, to
napisanie jej nazwy
wraz z listą argumentów przesyłanych do
funkcji
, ujętych w nawiasy okrągłe.
Przesyłanie
Przesyłanie
argumentów
argumentów
do
do
funkcji:
funkcji:
przez wartość
przez referencję
#include <iostream.h>
#include <conio.h>
void
Zamiana(
int
,
int
);
//--------------------------------
int
main()
{
int
a, b;
clrscr();
cout
<<
"
a =
"; cin
>>
a;
cout
<<
"
b =
"; cin
>>
b;
Zamiana (a, b);
cout
<<
"\nTeraz:
\n";
cout
<<
"
a =
"
<<
a
<<
endl
;
cout
<<
"
b =
"
<<
b
<<
endl
;
cout
<<
endl
;
return
0;
}
a =
10
b =
20
Przed
zamianą:
x =
10
y =
20
Po
zamianie:
x =
20
y =
10
Teraz:
a =
10
b =
20
//-- przesyłanie argumentów przez
wartość
!!!
void
Zamiana(
int
x,
int
y)
{
int
z;
cout
<<
"
\nPrzed zamianą:\n
";
cout
<<
"
x =
"
<<
x
<<
endl
;
cout
<<
"
y =
"
<<
y
<<
endl
;
z = x;
x = y;
y = z;
cout
<<
"
\nPo zamianie:\n
";
cout
<<
"
x =
"
<<
x
<<
endl
;
cout
<<
"
y =
"
<<
y
<<
endl
;
}
Przed
zamianą:
x =
10
y =
20
Po zamianie:
x =
20
y =
10
#include <iostream.h>
#include <conio.h>
void
Zamiana(
int
&,
int
&);
//--------------------------------
void
main
()
{
int
a, b;
clrscr();
cout
<<
"
a =
"; cin
>>
a;
cout
<<
"
b =
"; cin
>>
b;
Zamiana (a, b);
cout
<<
"
\nTeraz:\n
";
cout
<<
"
a = "
<<
a
<<
endl
;
cout
<<
"
b = "
<<
b
<<
endl
;
cout
<<
endl
;
}
a =
10
b =
20
Przed
zamianą:
x =
10
y =
20
Po
zamianie:
x =
20
y =
10
Teraz:
a =
20
b =
10
// przesyłanie argumentów przez
referencję
void
Zamiana(
int
&x,
int
&y)
{
int
z;
cout
<<
"
\nPrzed zamianĄ:\n
";
cout
<<
"
x =
"
<<
x
<<
endl
;
cout
<<
"
y =
"
<<
y
<<
endl
;
z = x;
x = y;
y = z;
cout
<<
"
\nPo zamianie:\n
";
cout
<<
"
x =
"
<<
x
<<
endl
;
cout
<<
"
y =
"
<<
y
<<
endl
;
}
Przed
zamianą:
x =
10
y =
20
Po zamianie:
x =
20
y =
10
Uwagi:
Uwagi:
Obiekt zdefiniowany na zewnątrz wszystkich
funkcji ma zasięg
globalny
.
Zmienne globalne
zakładane są w normalnym
obszarze pamięci, który przed uruchomieniem
programu jest zerowany.
Zmienne
lokalne
są
zmiennymi automatycznymi
.
W momencie, gdy kończymy blok, w którym
zmienne lokalne zostały powołane do życia,
automatycznie przestają istnieć
.
Obiekty automatyczne komputer przechowuje na
stosie
.
Należy pamiętać, że
zmienne
automatyczne nie
są zerowane
w chwili definicji.
Jeśli nie zainicjowaliśmy ich jakąś wartością, to
przechowują one wartości przypadkowe.
Funkcje biblioteczne
Funkcje obsługi ekranu i
klawiatury:
Nazwa funkcji
Składnia
Biblioteka
Znaczenie
clreol
void clreol (void);
conio.h
kasowanie linii, w
której znajduje
się kursor
poczynając od pozycji
kursora do
końca
clrscr
void clrscr (void);
conio.h
kasowanie ekranu
delline
void delline (void);
conio.h
usunięcie linii, w której
znajduje
kursor
gotoxy
void gotoxy (int x,
int y);
conio.h
pozycjonowanie
kursora
highvideo
void highvideo (void);
conio.h
zwiększenie
jaskrawości koloru
znaku
cdn.
insline
void insline (void);
conio.h
wstawienie nowego
wiersza w
miejscu aktualnego
położenia
kursora
lowvideo
void lowvideo (void);
conio.h
zmniejszenie
jaskrawości koloru
znaku
normvideo
void normvideo (void);
conio.h
ustalenie
koloru tła i znaku,
jakie
obowiązywały na początku
programu (białe znaki na
czarnym tle)
textattr
void textattr (int atr);
conio.h
ustawienie
atrybutów znaku
textbackground
void textbackground
(int kolor);
conio.h
ustawienie
koloru tła
cdn.
textcolor
void textcolor
(int kolor);
conio.h
ustawienie
koloru znaku
wherex
int wherex (void)
conio.h
określenie aktualnej
współrzędnej
X kursora
wherey
int wherey (void)
conio.h
określenie aktualnej
współrzędnej
Y kursora
window
void window (int xlg,
int ylg, int xpd,
int ypd );
conio.h
zdefiniowanie
okna tekstowego
Funkcje matematyczne:
abs
int abs (int x);
stdlib.h
wartość
bezwzględna
argumentu
całkowitego
acos
double acos (double x);
math.h
arccos x
asin
double asin (double x);
math.h
arcsin x
atan
double atan (double x);
math.h
arctg x
atof
double atof (const char *s);
math.h
konwersja
łańcucha
znaków na
liczbę
zmiennopozycyjną
cdn.
atoi
int atoi (const char *s);
math.h
konwersja
łańcucha
znaków na
liczbę
całkowitą
cos
double cos (double x);
math.h
cos x
cosh
double cosh (double x);
math.h
cosh x
div
div_t div (int licz, int mian);
stdlib.h
dzielenie dwóch liczb
całkowitych; jako
wynik otrzymuje się
iloraz oraz resztę z
dzielenia
exp
double exp (double x);
math.h
funkcja wykładnicza
e
x
cdn.
log
double log (double x);
math.h
logarytm naturalny
log10
double log10 (double x)
math.h
logarytm
dziesiętny
pow
double pow (double x,
double y);
math.h
x
y
pow10
double pow (int p);
math.h
10
p
random
int random (int N);
stdlib.h
generowanie
liczb
losowych z
zakresu od
0 do N-1
randomize
void randomize (void)
stdlib.h
time.h
inicjalizacja
generatora
liczb
losowych
cdn.
sin
double sin (double x)
math.h
sin
x
sinh
double sinh (double x);
math.h
sinh x
sqrt
double sqrt (double x);
math.h
pierwiastek
kwadratowy z x
tan
double tan (double x)
math.h
tg x
tanh
double tanh (double x);
math.h
tgh x