1. Czym są instrukcje?
W C++ instrukcje ustanawiają kolejność wykonywania kodu. Każda instrukcja kończy się średnikiem -
‘’;’’.Oto przykład instrukcji przypisania:
Kod:
c = a + b;
Mimo, że w matematyce taki zapis można potraktować jako: c jest równa sumie a i b, to jednak w C++
taki zapis oznacza, że do zmiennej c wprowadzamy wartość równą sumie a i b.
1. Operatory
Operatory to symbole informujące kompilator o konieczności wykonania działania. Oto lista podstawowych operatorów:
a) operator przypisania "="
Operator przypisania powoduje, że operand (obiekt, zmienna itp.) z prawej strony zostaje przypisany operandowi z lewej strony.
b) Operatory matematyczne: odejmowanie "-", dodawanie "+", mnożenie "*", dzielenie "/", reszta z dzielenia całkowitego "%"
Są to podstawowe operatory matematyczne służące do wykonywania działań. Chyba każdy wie do czego służą, bo to są podstawy matematyki których uczymy się w klasie podstawowej :). Pamiętajmy jednak o pewnych zasadach takich jak nie dzielenie przez zero. Innym wyjątkiem może być np.
odejmowanie liczby całkowitej bez przecinka (unsigned int) od większej liczby całkowitej bez przecinka. Taka próba może dać nam niezrozumiały wynik. Oto przykład takiego błędu: Kod:
unsigned int liczba1 = 25;
unsigned int liczba2 = 60;
std::cout << liczba1 - liczba2;
Wynikiem nie będzie -45, a 4294967256.
Dzielenie i reszta z dzielenia to także podstawowe działania matematyczne. W przypadku dzielenia całkowitego nie ma chyba problemów ze zrozumieniem działania : 21/5 = 4. Resztę z dzielenia uzyskujemy w ten sposób : 21%5 = 1. Z liczbami zmiennoprzecinkowymi jest podobnie : 7.0/2.0 = 3.5.
Kod:
double liczba1 = 7.0;
double liczba2 = 2.0;
std::cout << "Dzielenie :" << liczba1/liczba2; std::cout << "Dzielenie całkowite:" << int(liczba1)/int(liczba2); std::cout << "reszta z dzielenia :" << liczba1%liczba2;
Pamiętajmy także o kolejności działań. Kolejność jest taka sama jak w przypadku działań matematycznych:
Kod:
int liczba1 = 7.0;
int liczba2 = 2.0;
int liczba3 = 4.5;
std::cout << "Wynik :" << liczba1 * 3 - liczba3 + liczba2/4.5; W działaniach możemy także użyć nawiasów:
Kod:
int liczba1 = 7.0;
int liczba2 = 2.0;
int liczba3 = 4.5;
std::cout << "Wynik :" << 6 * (liczba1 * 3 - (liczba3 + liczba2/4.5)); c) Inkrementacja "++" i dekrementacja "--"
Inkrementacja jest do zwiększanie wartości zmiennej o jeden wraz z przypisaniem jej, a dekrementacja działa na tej samej zasadzie, ale wartość jest zmniejszana o jeden.
Kod:
int C = 0;
C++ ;
ten kod stanowi odpowiednik :
Kod:
C = C + 1;
Oba operatory (inkrementacji i dekrementacji) mogą występować w formie przyrostka lub przedrostka.
Przedrostek zapisywany jest przed nazwą zmiennej (++zmienna) , a przyrostek za nazwą (zmienna++).Czym to się różni? Operator przedrostkowy jest obliczany przed przypisaniem wartości do zmiennej a przyrostek po przypisaniu. Różnica może nie jest wielka, ale może doprowadzić do błędów w programie np.:
Kod:
int liczba1 = 0;
int liczba2 = 1;
liczba1 = ++liczba2;
W tym wypadku liczba1 jest równa 2
Kod:
int liczba1 = 0;
int liczba2 = 1;
liczba1 = liczba2++;
Tym razem wartość liczba1 będzie równa 1 ponieważ, przypisanie wartości nastąpiło przed inkrementacją, dlatego też kompilator najpierw przypisał liczba1 do liczba2 a dopiero potem wrócił do zmiennej liczba2 i zwiększył jej wartość o jeden.
2. Operatory relacji
Operatory relacji są używane do sprawdzania, czy dwie liczby są równe, albo czy jedna z nich jest większa lub mniejsza od drugiej. Każdy operator relacji zwraca prawdę lub fałsz. W C++ występuje 6
operatorów relacji. Oto one:
a)operator równości "=="
Operator równości używany jest do sprawdzenia wartości operanda np: Kod:
int ocena = 6;
if (ocena==6) std::cout << "Brawo jesteś genialny :)"; b)operator nierówności "!="
Kod:
int ocena = 6;
if (ocena !=1) std::cout << "Nie jest tak źle :)"; c)operator większości ">"
Kod:
int ocena = 4;
if (ocena > 3) std::cout << "Dobrze ci idzie"; d)operator mniejszości "<"
Kod:
int ocena = 2;
if (ocena <3) std::cout << "Popraw się w nauce :("; e)operator mniejszości lub równości "<="
int ocena = 3;
if (ocena <=3) std::cout << "Na pewno stać cię na więcej :)"
f)operator większości lub równości ">="
Kod:
int ocena = 5;
if (ocena >=4) std::cout << "Jesteś dobrym uczniem"
3. Operatory logiczne
Operatory logiczne służą do łączenia kilku "pytań" operatorów relacji np. "Czy dzisiaj jest poniedziałek i czy świeci słońce" zamiast "Jeśli dzisiaj jest poniedziałek, sprawdź czy świeci słońce" : Kod:
if ((dzien=="poniedziałek") && (swieci_slonce)) ide_na_stadion = true;
W przeciwnym razie ten zapis musiałby wyglądać tak:
Kod:
if (dzien=="poniedziałek")
if(swieci_slonce)
ide_na_stadion = true;
Oto trzy operatory logiczne:
&& - i (AND)
|| - lub (OR)
! - nie (NOT)
A oto przykład ich wykorzystania:
Kod:
int main()
{
if( (dzisiaj="poniedźialek" || dzisiaj="środa") && !pada_desz) ide_na_spacer();
return 0;
}
Ten zapis można rozumieć jako "Jeśli dzisiaj jest poniedziałek lub środa i nie pada deszcz idę na
4. Operatory bitowe
Operatory bitowe służą do operowania na pojedynczych bitach zmiennej. W C++ występują następujące operatory bitowe :
<< przesuwa bity w lewo
>> przesuwa bity w prawo
& bitowy iloczyn logiczny (bitowa koniunkcja)
| bitowa suma logiczna (bitowa alternatywa)
^ bitowa różnica symetryczna (bitowe XOR)
~ bitowa negacja
5.Operator warunkowy
Operator warunkowy jest jedynym operatorem w C++ korzystającym z trzech wyrażeń. Zapisujemy go w następujący sposób: (wyrażenie1) ? (wyrażenie2) : (wyrażenie3) i odczytujemy go w sposób : jeśli wyrażenie1 jest prawdą to zwróć wyrażenie2, w przeciwnym razie wyrażenie3
Kod:
bool ide_na_spacer,pada_desz;
pada_deszcz = false;
ide_na_space = (!pada_desz) ? true : false;
if(ide_na_spacer)
std:cout << "Niema mnie w domu";