Operatoren

Zuerst ein +

//plus.cpp
#include <iostream>
using namespace std;
int main()
{
    int erste;
    cout << "Gib mir eine ganze Zahl: ";
    cin >> erste;
    int zweite;
    cout << "Gib mir eine zweite ganze Zahl: ";
    cin >> zweite;
    cout << "Summe von " << erste << " und " << zweite << " ist " << erste + zweite;
    return 0;
}


Die Operatoren +, - und * und der Datentyp bool

//logic.cpp

#include <iostream>

#include <conio.h> //getch()

using namespace std;

 

int main()

{

int a = 1;

int b = 100;

cout << "Die binomischen Formeln testen und ein Pythagoras-Test:";

cout << endl << "-------------------------------------------------------";

bool bool1 = (a*a + 2*a*b + b*b == (a + b) * (a + b));

bool bool2 = (a*a - 2*a*b + b*b == (a - b) * (a - b));

bool bool3 = (a*a - b*b == (a + b) * (a - b));

cout << endl << bool1;

cout << endl << bool2;

cout << endl << bool3;

a = 3; b = 4;

int c = 5;

bool boolpyth = (a*a + b*b == c*c);

cout << endl << boolpyth;

getch();

}

Der an Mathematik erinnernde Operator / (geteilt durch) ist auch bekannt, jedenfalls kann man mit ihm rechnen wie früher in der Schule.


Mehr Operatoren

Da gibt es zuerst einmal die Operatoren, die aus der arithmetischen Welt bekannt sind: + (plus), - (minus), * (mal), / (geteilt).

Aber es gibt noch eine Menge mehr Operatoren. Der Restoperator z. B. (%) ergibt den Rest einer Division (einer Ganz-Zahl-Division).

Auch gibt es noch die "unären" Operatoren: ! (NICHT), - (Vorzeichen minus), ++ und --.

Damit nicht genug: Es gibt für Vergleiche die Operatoren: < (kleiner), > (größer), <=, >=, == (gleich), != (ungleich).

Für die Logik gibt es dann noch && (das logische Und) und || (das logische Oder).

Der Bedingungs-Operator ist auch ein Operator, obwohl es ja eine Bedingung ist. Ein schönes Beispiel:

return (i<100)?true:false; was bedeutet: Wenn i < 100 ist, dann gib true zurück, sonst false.

Last, not least: die Zuweisung = und der Operator, der mit der Zuweisung verbunden werden kann, zum Beispiel +=, -= usw.


Restoperator oder Modulo

% - um das % geht es hier. Man nennt ihn im Deutschen auch den Restoperator. Er gibt als Ergebnis den Rest einer Division zweier Zahlen wie zum Beispiel in: int var = 9 % 2; cout << var; Hier wird zunächst 9 / 2 geteilt, aber das erste Ergebnis ist eine ganze Zahl, das zweite Ergebnis ist der Rest. Und nur der Rest wird betrachtet.

Der Rest einer Division ist auch so erklärt: Wenn Du durch 5 teilst, sind die Reste 0, 1, 2, 3 oder 4.

Beispiele: 4 durch 5 ist 0 Rest 4. 9 durch 5 ist 1 Rest 4. 10 durch 5 ist 2 Rest 0.


Die Operatoren ++ und --

Um es vorweg zu sagen: ++ und -- sind ähnlich. ++ ist der Inkrementierer, -- der Dekrementierer. Zu deutsch: ++ zählt eins rauf, -- zählt eins runter.

++

Einfach

Ziemlich einfach und wie in BASIC ist diese Operatoren-Anordnung: i = i + 1;

In diesem Programmstück wird i um 1 erhöht. In BASIC heißt es genauso: I = I + 1.

Mittelschwer

Die Stufe in C/C++ nach i=i+1 geht so: i += 1; Dies ist nun wieder typisch C und C++. So wie auch x += 100; (dies steht für: x = x + 100;) - Diese Codezeile bewirkt, dass eine Variable um einen festen Betrag erhöht wird. Wenn Du einmal diese Variable erniedrigen möchtest, dann so: x -= 100. Das steht für x=x-100. Dies ist eine Subtraktion (minus; hier um 100). Oder die Multiplikation mit 5:

x *= 5; (für x=x*5; Oder auch: x /= 2;(für x=x/2); dies ist eine Division durch 2.

Typisch C und C++ ist nun diese "Verkürzung": i++; es wird hier sozusagen in Kurzform i um 1 erhöht.

Typischer Anwendungsfall:

for (int j=0; j<MAX; j++)

{}

Schwer

Was Du nicht wissen musst, wenn du nicht richtig in C, C++, Java oder in einer verwandten Sprache programmieren möchtest: In C++ gibt es die Operator-Konstruktion nach dem Muster x++ und ++x. Darum soll es hier gehen.

cout << i++;

cout << ++i;

Das cout << i++; bewirkt, dass zuerst i ausgegeben wird, danach aber wird i um eins erhöht.

cout << ++i; nun bewirkt, dass zuerst i um eins erhöht wird, danach wird es ausgegeben! Also Achtung!


Rangfolge von Operatoren

Bei Operatoren muss man eine Reihenfolge festlegen. Das liegt daran, weil man nicht weiß, wozu bestimmte Variablen oder Zahlen gehören, wenn es keine Reihenfolge gäbe. Ein Beispiel: a = b || c && d;. Wozu gehört die Variable c? Zu b || c oder eben zu c && d ??? Das regelt nun die "Rangfolge der Operatoren"! Dazu ist sie da. Und um einen Einstieg in dieses Gebiet zu geben, hier eine einfache Tabelle (siehe hier unten). Die wichtigste Rangfolge ist oben in der Tabelle zu suchen.

Kleine vorerst unvollständige Tabelle:

Zum Vergrößern klick mal!

Zum Weitermachen bei diesem Thema (Operatoren und deren Rangfolge): Klick! (englisch)