menu

darmowe eBooki

Efekt Motyla

okładka

Książka, która wywróci Twoje życie do góry nogami

Sprawdź sam, czytając darmowy fragment eBooka Efekt Motyla.

Czy ta wiedza okazała się dla Ciebie przydatna? Chcesz wiedzieć więcej? Zobacz tutaj.

Google Adsense

migawka z forum

Dowcipy o programistach/informatykach

Witam, grunt to potrafić śmiać sie z samego siebie  ;DPrzychodzi informatyk do domu po pra...

Rysiek z "Klanu"

W związku z ogromnym poruszeniem we wszystkich mediach w naszym kraju, dotyczącym tak kultowej postaci jak Rysiek z &quo...

Propozycje zmian w serwisie Guide C++

Witam, ze względu na to że nie znalazłem podobnego tematu na forum, a mam kilka sugestii   ;) postanowiłem je ...

buttony

SDJ
vortal programistów
Vademecum sieci komputerowych
Soldiers'04 - fan klub Legii Warszawa
www.katalog.bajery.pl
katalog stron
katalog najlepszych stron
jestem w katalogu
Wszystko o C++
[zamknij]

Korzystamy z plików cookies i umożliwiamy zamieszczanie ich osobom trzecim. Pliki cookie pozwalają na poznanie twoich preferencji na podstawie zachowań w serwisie.
Uznajemy, że jeżeli kontynuujesz korzystanie z serwisu, wyrażasz na to zgodę.

jesteś w: Kurs C++ / Operatory arytmetyczne
Szkoła Hakerów - Kurs Hackingu Bez Cenzury

Operatory arytmetyczne

nazwa symbol
dodawanie +
odejmowanie -
mnożenie *
dzielenie /
podstawienie =
pre-inkrementacja ++x
pre-dekrementacja --x
post-inkrementacja x++
post-dekrementacja x--
dzielenie modulo %

Właściwie pierwsze pięć operatorów doskonale znasz ze szkoły. No ale od czegoś musiałem zacząć :)

operator + to operator służący do dowania do siebie dwóch wartości stojących po obu stronach tego operatora.

  1. 3 + 5;
  2. zmienna + 6;
  3. zmienna + zmienna;

operator - działa analogicznie jak jego poprzednik, tyle że w drugą stronę :) Od wartości leżącej po lewej stronie operatora zostaje odjęta wartości stojąca po jego prawej stronie.

  1. 9 - 1;
  2. zmienna - 15;
  3. zmienna - zmienna;

operator * jest również operatorem dwu-argumentowym i mnoży dwie wartości znajdujące się po jego obu stronach.

  1. 1 * 3;
  2. zmienna * 4;
  3. zmienna * zmienna;

operator / jest odwrotnością poprzednika i powoduje podzielenie wartości stojącej po jego lewej stronie przez wartość będącą po stronie prawej.

  1. 2 / 5;
  2. zmienna / 51;
  3. zmienna / zmienna;

operator = działa nieco inaczej niż operatory wspomniane wcześniej. Służy on do przypisania wartości leżącej po jego prawej stronie do wartości [tutaj zmiennej] stojącej po stronie lewej.

  1. zmienna = 5;
  2. zmienna = zmienna;
  3. //34 = zmienna;

Dotychczas można było stosować po obu stronach operatów zarówno zmienne jak i wartości. W przypadku operatora przypisania tej swobody nie ma. Zmienne mogą wystąpić po obu stronach, lecz wartości tylko po prawej. Ma to sens. Bo przecież co miałby oznaczać zapis: 34 = zmienna. Sam widzisz, że jest to dość dziwaczne. Kompilator też to zauważa i zgłasza błąd.
Mimo wszystko mam nadzieję, że powyższy tekst był jedynie przypomnieniem. Jednak postanowiłem go zamieścić, bo czasem najprostsze przychodzi najtrudniej :) Pora teraz na nieco bardziej ciekawsze operatory.

operator ++ to operator inkrementacji, czyli zwiększania o jeden. Operator ten występuje w dwóch wersjach:

  1. zmienna++; //post-inkrementacja
  2. ++zmienna; //pre-inkrementacja

Oba powyższe zapisy powodują zwiększenie o jeden wartości zmiennej. Jest jednak pewna subtelna różnica, o której na razie nie chciałbym mówić. Przyjmijmy, że oba zapisy są równoznaczne z: zmienna = zmienna + 1. Skoro jest zwiększanie o jeden to powinno też być zmniejszanie o tę wartość. Oczywiście jest. Nazywa się dekrementacja.

operator -- jest operatorem dekrementacji, czyli zmniejszania o jeden. Tutaj też wyróżniamy dwie wersje:

  1. zmienna--; //post-dekrementacja
  2. --zmienna; //pre-dekrementacja

Analogicznie jak wyżej. Tyle, że tutaj zmniejszamy o jeden wartość zmiennej. A zatem powyższe zapisy są uproszczeniem: zmienna = zmienna - 1.

Jak zapewne zdążyłeś się zorientować powyższe cztery operatory zostały wprowadzone do języka, aby ułatwić programowanie. Jeśli są dla Ciebie nie jasne to możesz ich wcale nie używać. Dobrym przykładem na to jest fakt, iż w innych językach nie ma operatorów inkrementacji i dekrementacji. Jednak zachęcam do ich stosowania, bo jest to wygodne i praktyczne.
Teraz będzie operator, którego działania pewnie nie znasz jeśli wcześniej nie miałeś styczności z programowaniem. Mowa o dzieleniu modulo. A co to takiego? Sprawa jest prostsza, niż się wydaje.

operator % zwraca resztę z dzielenia :-/ A miało być prosto :) Chyba najlepiej jest to wyjaśnić na przykładzie, więc looknij sobie:

  1. 10 % 3; // = 1
  2. 20 % 5; // = 0
  3. 30 % 6; // = 0
  4. 32 % 5; // = 2

Zacznijmy od pierwszego wyrażenia. Działa to tak. Jeśli podzielimy 10 przez 3 to otrzymamy 3.(33). Oznacza to, że liczba 3 mieści się w całości w liczbie 10 trzy razy [co za zbieg okoliczności :) ] Powiedziałam w całości bo zostaje jeszcze reszta, która przy normalnym dzieleniu wynosi 0.33. Nas jednak nie interesuje zwykłe dzielenie. Zauważ, że gdy dodasz do siebie powstałe trzy liczby 3 to wyjdzie liczba 9. Zatem do okrągłej 10 brakuje 1. No i mamy rozwiązanie. Teraz jest bardzo prosto. 20 podzielone na 5 to równe 4. Więc reszty nie ma :( Zatem wynikiem jest 0. Analogicznie wygląda sytuacja w trzecim przypadku. Nieco ciekawiej jest na końcu. Jak podzielisz 32 przez 5 to otrzymasz dokładnie 6.4. Już wiemy, że w liczbie 32 liczba 5 mieści się w całości 6 razy. Teraz wystarczy pomnożyć ilość wystąpień liczby 5 w liczbie 32 przez wspomnianą 5. Wiem, że namieszałem, ale przeczytaj to raz jeszcze na spokojnie. Zatem mamy prosty rachunek 5 * 6 [skłamałem, do tych prostszych on jednak nie należy :) ] W wyniku otrzymamy 30. Następnie trzeba wykonać proste odejmowanie liczby 30 od liczby 32. Tym oto sposobem otrzymaliśmy liczbę 2, która jest resztą z dzielenia modulo.
Nie martw się jeśli nie bardzo to rozumiesz. Dzielenie modulo jest stosowane raczej sporadycznie. Na pewno na początku nie będziesz go potrzebował. Bo i po co. No właśnie: Do czego może służyć taki operator?. Są pewne bardzo specyficzne zastosowania. Jednak potrzymam Cię trochę w niepewności. Po prostu wszystko w swoim czasie :) Tym oto sposobem omówiliśmy wszystkie [chyba] operatory arytmetyczne. Pora na omówienie innych operatorów, które są znacznie częściej stosowane niż omówione wcześniej. Mowa tutaj o operatorach relacji.