Lektion 5:

Variablen

 Variablen sind Plätze, in denen der Computer Werte speichern kann. Diese gespeicherten Werte können dann jederzeit wieder ausgelesen und weiter (für irgendwas) verwendet werden. Das folgende Programm berechnet nach Eingabe des Radius den Umfang eines Kreises:

#include <iostream.h>
void main()
{
   float radius;
   cout<<"Bitte geben Sie den Radius ein: ";
   cin>>radius;
   cout<<"Der Umfang betraegt: "<<2*3.14*radius<<endl;
};

Die Zeile

   float radius;

 ist eine Variablendefinition. Sie sagt dem Compiler, daß er einen Speicherplatz reservieren soll, der ab jetzt unter dem Namen radius ansprechbar ist. Durch das Wort "float" wird ausgedrückt, daß der Wert in dieser Speicherzelle eine Kommazahl ist. Es ist noch nicht gesagt, welcher Wert dort zu finden ist, sondern nur, daß dort ein Wert zu finden ist. Würde man den Wert jetzt ausgeben, dann käme eine völlig zufällige Zahl heraus.

Die Zeile

   cin>>radius;

sagt, daß die Variable radius von der Tastatur eingelesen werden soll. Jetzt gibt der Benutzer eine Zahl ein, die dann in diese Variable eingetragen wird.

Und der Ausdruck

   2*3.14*radius

berechnet den Umfang des Kreises.

Die sinnvolle Verwendung von Variablen ist einer der wichtigsten Aspekte, um verständliche Programme zu schreiben, wie folgendes Beispiel nahezulegen versucht:

#include <iostream.h>
void main()
{
   float a;
   float b;
   cout<<"Bitte geben Sie den Radius ein: ";
   cin>>a;
   cout<<"Bitte geben Sie die Hoehe ein: ";
   cin>>b;
   cout<<"Das Volumen betraegt: "<<3.14*a*a*b/3<<endl;
};

Dieses Programm ist nicht schön. Es berechnet nach Eingabe von Radius und Höhe das Volumen eines Kegels. Das läßt sich aber nicht so ohne weiteres Erkennen.

Vor allem ist die Formel

   3.14*a*a*b/3

ein wenig unverständlich.

Ich halte folgendes Programm für viel einfacher, obwohl es genau das Gleiche macht:

#include <iostream.h>
void main()
{
   float radius;
   float hoehe;
   cout<<"Bitte geben Sie den Radius ein: ";
   cin>>radius;
   cout<<"Bitte geben Sie die Höhe ein: ";
   cin>>hoehe;
   const float PI=3.14f;
   float grundflaeche=PI*radius*radius;
   float volumen=(grundflaeche*hoehe)/3;
   cout<<"Das Volumen betraegt: "<<volumen<<endl;
};

Man kann direkt hinter eine Variablendefinition gefolgt von einem Gleichheitszeichen einen Wert (oder sogar einen Ausdruck) schreiben. Es wird dabei nicht nur Speicherplatz reserviert, sondern in diesen Speicher wird gleich auch noch ein Wert geschrieben. Im allgemeinen sind solche Definitionen den einfachen Definitionen vorzuziehen, weil es dann nicht mehr passieren kann, daß man aus Versehen den anfangs undefinierten (also zufälligen) Wert verwendet.

   Vor eine Variablendefinition darf man das Wort "const" schreiben. Diese Variable ist dann eine Konstante. Die Konstante PI hat in unserem Beispiel den Wert 3.14f (dabei steht das 'f' für "Dies ist eine float-Zahl"). Versuche, einer Konstanten später einen anderen Wert zuzuweisen, werden vom Compiler abgewiesen. Der Typ von "hoehe" ist "float". Der Typ von "PI" ist "const float". Es hat sich in der C++-Gemeinde eingebürgert, Konstanten nur mit Großbuchstaben zu schreiben. Das hat den Vorteil, daß man in eigenen und in fremden Programmen sofort erkennt, daß es sich um eine Konstante handelt, und man muß weniger nachdenken, wenn man versucht, den Code zu verstehen.

Das Einführen der Variablen grundflaeche hat offensichtlich dazu geführt, daß das Programm einfacher zu verstehen ist. Sie sollten immer, wenn eine Formel unübersichtlich ist, versuchen, mit dem Einführen eines aussagekräftigen Zwischenergebnisses den Code einfach zu halten.

Einsendungen:

Ich bekomme die Warnung: possible loss of data.
Welche Bedeutung hat des 'f' hinter 3.14?
Warum geht 1/3f nicht?
Und warum geht (1/3)f nicht?
Und wie mache ich es dann?


Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern.
[aktuelle Version] [inhalt] [index]      [Fehlerkorrektur, Verbesserungsvorschlag]

© Volkard Henkel <volkard@normannia.de>, last update: 08/25/00