Beispiel 4: Kurzformen

24.10.2016 07:31 Uhr
#include <iostream>

using namespace std;

int main()
{
char roemisch[10];
int arabisch;


cout << "Bitte geben Sie eine Römische Zahl ein: ";
cin >> roemisch;

arabisch = 0;
for (int i = 0; roemisch[i]!='\0'; i++)
    {
    if (roemisch[i] == 'i') arabisch += 1;
    else if (roemisch[i] == 'v') arabisch += 5;
    else if (roemisch[i] == 'x') arabisch += 10;
    else if (roemisch[i] == 'l') arabisch += 50;
    else if (roemisch[i] == 'c') arabisch += 100;
    else if (roemisch[i] == 'd') arabisch += 500;
    else if (roemisch[i] == 'm') arabisch += 1000;
    }

cout << roemisch << " in roemischer Notation entspricht " <<
        arabisch << " in arabischer." << endl;

return 0;
}

C++ kennt eine Reihe von Möglichkeiten, um Programme kompakter zu schreiben.
Die beiden wichtigsten:

1.

Da eine der häufigsten Anweisungen überhaupt darin besteht, eine Variable um eins zu erhöhen oder zu vermindern, um eine Schleife zu durchlaufen, gibt es die Operatoren ++ und .

Für sie gilt:

Variable++ identisch mit Variable = Variable + 1

Variable-- identisch mit Variable = Variable - 1

2.

Eine weitere extrem häufige Anweisung besteht darin, den Wert eine Variablen um einen anderen zu verändern. Auch dafür stehen abkürzende, kompaktere Operatoren zur Verfügung.

Für sie gilt:

Variable += Wert identisch mit Variable = Variable + Wert

Variable -= Wert identisch mit Variable = Variable - Wert

Variable *= Wert identisch mit Variable = Variable * Wert

Variable /= Wert identisch mit Variable = Variable / Wert

Merke: Verwende nie eine abgekürzte Notationsform, die Du nicht wirklich verstehst.

(Deshalb bleibt es Ihnen überlassen, herauszufinden, was der Unterschied zwischen Variable++ und ++Variable ist.)


#include <iostream>

using namespace std;

int main()
{
char roemisch[10];
int arabisch;


cout << "Bitte geben Sie eine Römische Zahl ein: ";
cin >> roemisch;

arabisch = 0;
for (int i = 0; roemisch[i]!='\0'; i++)
    {
    if (roemisch[i] == 'i') arabisch += 1;
    else if (roemisch[i] == 'v') arabisch += 5;
    else if (roemisch[i] == 'x') arabisch += 10;
    else if (roemisch[i] == 'l') arabisch += 50;
    else if (roemisch[i] == 'c') arabisch += 100;
    else if (roemisch[i] == 'd') arabisch += 500;
    else if (roemisch[i] == 'm') arabisch += 1000;
    }

cout << roemisch << " in roemischer Notation entspricht " <<
        arabisch << " in arabischer." << endl;

return 0;
}

Eine weitere Möglichkeit der Kürzung erfordert eine Erläuterung.

Grundsätzlich gilt, wie Sie aus der BIT wissen, in der gesamten Rechnertechnologie:

Wahr == 1

Falsch == 0

Wenn C++ eine Bedingung, wie „roemisch[i] != 0“ bewertet, so wird zunächst versucht, die Bedingung nach den Bool’schen Regeln auf „wahr“ oder „falsch“ zu reduzieren. Ist sie wahr, wird die entsprechende Anweisung ausgeführt, sonst nicht.

Da nach unseren Aussagen zu Zeichenketten das letzte Element einer Zeichenkette immer Null ist, läßt sich dies also auch abkürzen, indem wir schreiben:

for (int i = 0; roemisch[i]; i++)

– und da In sehr vielen Anwendungen, zwischen einem Fall unterschieden wird, in dem eine Variable „Null oder Nicht-Null“ ist, ist dies eine sehr häufige Kürzungsmöglichkeit.

Am Anfang empfehlen wir aber nicht nur, diese nicht wahrzunehmen, sondern sich sogar explizit vor Augen zu halten, mit welchen Daten man gerade arbeitet.

Hierbei gilt:

'\0' „ein Zeichen mit dem Zahlenwert
Null“,

0 „die Zahl Null“.

Übrigens:

'0' „der Zahlenwert des Zeichens ‚0‘“ — etwas völlig anderes.