Index

Erstellen einfacher Programme

3. Programmieren mit JavaTM (b)


b) Sequenz

Im Folgenden wollen wir einige linear ablaufende Programme, also Sequenzen betrachten. Hierbei werden wir einige grundlegende Anweisungen kennen lernen. Da hierbei auch Daten verarbeitet werden sollen, müssen wir uns auch mit verschiedenen Datentypen befassen.
Zahlen bedürfen einer anderen Speichertechnik, als etwa Texte.
Wir arbeiten hierbei mit der DOS-Konsole, um uns von anderen Problemen, wie die Verwaltung von Fenstern etc., zunächst zu befreien. Die DOS-Ausgabe haben wir bereits mit dem Einführungsbeispiel HalloWelt1 kennengelernt.

Programm Kasse1

Problemstellung:

Ein Kassierer möchte den Inhalt seiner Kasse mit einem Java-Programm unterstützt ermitteln. Hierzu werden die Scheine und Münzen gezählt und die Werte dem Programm übermittelt. Dieses bestimmt damit die Beträge und summiert alles auf. Der Gesamtbetrag wird danach ausgegeben.

Variable

Die erste Frage ist, wie werden die Anzahlen im Programm notiert, bzw. während des Ablaufs festgehalten und verwendet?

Alle Daten, die in irgend einer Weise in einem Programm verarbeitet werden und evtl. Änderungen unterliegen, werden in Variablen gespeichert. Diese sind eine Art Behälter, die Namen tragen und die Daten aufbewahren können. Der Name ist nötig, damit ein Datum wiedergefunden bzw. verwendet werden kann. Die Beschaffenheit des "Behälters" hängt von der Datenart, dem sogenannten Datentyp ab, also ob Zahlen, Texte, Bilder usw. gespeichert werden sollen. Dieser Typ muss bei der ersten Angabe oder Verwendung der Variablen festgelegt werden. In einer Variablen kann immer nur ein einziges Datum des vereinbarten Typs gespeichert werden. Ein erneutes Abspeichern in dieselbe Variable vernichtet den vorherigen Inhalt.

Variable

So geht's:

Den Datentyp geben wir vor dem Variablennamen, den wir selbst wählen können, an:
Datentyp Variable;
Zum Beispiel int anz_100; für die Anzahl der Hundert-Euro-Scheine.
int ist hierbei ein Schlüsselwort für den Datentyp einer Ganzzahl (integer). Schlüsselwörter sind reserviert und dürfen nicht anderweitig verwendet werden.

Variablen können wir mit Werten belegen mit der Zuweisungs-Anweisung:
Variable = Wert/Ausdruck;
Wenn ein Ausdruck angegeben ist, wird dieser ausgewertet und das Ergebnis, das dem Typ der Variablen entsprechen muss, zugewiesen.
anz_100 = 5; weist der Variablen für die Anzahl der Hunderter-Scheine die 5 zu.

Man kann auch die Deklaration des Datentyps und die Zuweisung als eine Anweisung formulieren:
int anz_100 = 5;

Mit Variablen und Zahlen können Terme nach den mathematischen Grundrechenregeln gebildet werden. Die Grundrechenarten werden mit den Zeichen: +, -, * und / dargestellt. Um den Wert der Hundert-Euro-Scheine zu ermitteln, wid also der Term anz_100 * 100 gebildet.

Schreibe nun einen Quelltext zur Lösung des gestellten Problems und speichere ihn im Homeverzeichnis unter dem Namen Kasse1.
Das Ergebnis des Gesamtbetrages (in Euro) soll einer Variablen summe zugewiesen werden. Da hierbei auch Dezimalzahlen auftreten muss summe z.B. vom Typ double, einem Dezimalzahlentyp sein.
Die Bildschirm-Ausgabe selbst erfolgt mit der bereits bekannten Anweisung System.out.println(...);

public class Kasse1{
   public static void main(String[] args){
      ... // Deklaration der Variablen und Zuweisung von Werten
      ... // Berechnung des Gesamtbetrages und Zuweisung an die Variable summe
      System.out.print("In der Kasse befinden sich ");
      System.out.print(summe);
      System.out.println(" Euro.");
   }
}

Beachte den Unterschied zwischen print() und println().

DOS-Ausgabe

Man sieht, dass die Berechnung Rundungsfehler aufweist.

Teste auch die Anweisung
System.out.println("In der Kasse befinden sich " + summe + " Euro.");
Hierbei wird die Zahl Summe in eine Zeichenkette (String) umgewandelt und zur vorherigen Zeichenkette angehängt. Das + - Zeichen hat also unterschiedliche Bedeutung. Man sagt es wurde überladen, wobei der Compiler am Kontext erkennt, wie das Zeichen zu interpretieren ist.

 

Zahlendatentypen im Überblick

Typ Beschreibung Wertebereich
byte 8-Bit-Ganzzahl
Zweierkomplement
-128 ... 0 ... 127
short 16-Bit-Ganzzahl -32 768 ... 0 ... 32 767
int 32-Bit-Ganzzahl -2 147 483 648 ... 0 ... 2 147 483 647
long 64-Bit-Ganzzahl ca. -9·1018 ... 9·1018
float 32-Bit-Gleitkommazahl ca. -3.402823·1038 ... 0 ... 3.402823·1038
kleinste Zahl > 0: 1.4·10-45
double 64-Bit-Gleitkommazahl ca. -1.797639·10308 ... 0 ... 1.797639·10308
kleinste Zahl > 0: 4.9·10-324

[Index] [Zurück/Java a)] [Fortsetzung/Java b.ii)]


Autor: Jürgen Dehmer
Letzte Änderung: 10. Dezember 2002