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.

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.

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

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

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.

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:

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:

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:

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.

Autor: Kesay

[Artykuł pochodzi ze strony guidecpp.prv.pl, autor wyraził zgodę na publikację] 18