erstellt 29.07.99; übersetzt 01.03.03; überarbeitet 20.04.04, 29.09.06, 11.10.10; © Deutsche Übersetzung Heinrich Gailer


Kapitel 8 Programmieraufgaben


Wenn ich ein Student wäre und diese Aufgaben sähe, würde ich argwöhnen, dass sich jemand damit nicht allzu viel Mühe gegeben hat. Die Art von doofen Aufgaben, die nicht viel mehr tun als den Lernenden zu beschäftigen. Obwohl diese Aufgaben einfach und etwas langweilig sind, beabsichtigen sie in Wirklichkeit das Konzept der primitiven Datentypen zu verfestigen, das von entscheidender Bedeutung und aus diesem Grund genau an dieser Stelle ein bisschen der Übung wert ist. Bitte machen Sie die Aufgaben.


Aufgabe 1

Das folgende Programm verwendet den primitiven Datentyp short:

class ShortBsp
{
  public static void main ( String[] args )
  {
    short zahl = 32;
    System.out.println("Eine short-Variable: " +  zahl);
  }
}

Das Wort "zahl" ist in diesem Programm eine Variable — ein Name für einen Teil des Speichers, der Daten eines bestimmten Datentyps enthält. In diesem Fall ist "zahl" der Name von 16 Bits des Hauptspeichers, der den Datentyp short verwendet, um einen Integer (eine ganze Zahl) darzustellen. (Im weiteren Verlauf dieser Aufzeichnungen wird noch ausführlicher auf Variablen eingegangen.) Das Programm stellt den Wert 32 in die Variable zahl. Dann gibt es aus:

Eine short-Variable: 32

Mit anderen Worten: Das Programm kontrolliert in der nächsten Zeile die Variable und gibt den Inhalt der Variablen auf den Bildschirm aus.

Ihre Aufgabe
Erstellen Sie eine Datei mit dem Namen ShortBsp.java. Kompilieren Sie die Datei und führen Sie sie aus. Überprüfen Sie die Bildschirmausgabe. Verändern Sie das Programm, so dass anstatt 32 ein andere kleine Zahl, z.B. 356, ausgegeben wird. Kompilieren Sie die Datei und führen Sie sie aus. Es sollte alles okay sein.

Als nächstes ändern Sie die Zahl in 35000 und versuchen die Datei zu kompilieren und auszuführen. Diese Zahl ist zu groß für den Datentyp short. Mit anderen Worten, sie kann nicht mit dem 16-Bit Datentyp short dargestellt werden. Was passiert?

Verändern Sie jetzt das Programm (lassen Sie die Zahl 35000 unverändert), und nehmen Sie den Datentyp int. Kompilieren und führen Sie die Datei aus. Gibt es einen Unterschied?

Zurück zum Inhaltsverzeichnis.


Aufgabe 2

Das folgende Programm verwendet den primitiven Datentyp double:

class DoubleBsp
{
  public static void main ( String[] args )
  {
    double zahl = 32;
    System.out.println("Ein double: " +  zahl);
  }
}

Kompilieren und führen Sie die Datei aus. Unterscheidet sich die Ausgabe (das, was auf den Bildschirm ausgegeben wird) von der Ausgabe des ersten Programms aus der vorherigen Aufgabe? In diesem Programm ist "zahl" der Name von 64 Bits, die den Datentyp double verwenden, um Gleitpunktzahlen darzustellen.

Es ist absolut OK, den Variablennamen zahl in beiden Programmen zu verwenden. Die Verwendung von Namen auf diese Weise ist für uns eine Möglichkeit zu beschreiben, was der Computer tun soll. Die Reservierung eines Teils des Computerspeichers für eine bestimmte Verwendung ist nicht von Dauer und wird mit dem Ende Programms wieder aufgehoben.

Versuchen Sie jetzt das Programm zum Absturz zu bringen. Werfen Sie einen Blick auf die Tabelle der primitiven Datentypen mit ihren Wertebereichen. Ändern Sie die Zahl 32 in einem Wert, der für den Datentyp double zu groß ist. Sie möchten dafür vielleicht die wissenschaftliche Darstellung verwenden.

Zurück zum Inhaltsverzeichnis.


Aufgabe 3

Das folgende Programm verwendet ebenfalls den primitiven Datentyp double. Das Programm berechnet und gibt den Wert von exp( 32 ) aus. Das ist die 32. Potenz der Eulerschen Zahl e, also e 32. (Machen Sie sich keine weiteren Gedanken darüber. Worauf es hier ankommt ist nicht die Mathematik, sondern die Gleitpunktzahl.)

class DoubleCrash
{
  public static void main ( String[] args )
  {
    double zahl = 32;
    System.out.println("e hoch " + zahl + " ergibt: " +  Math.exp(zahl) );
  }
}
Kompilieren und führen Sie das Programm aus. Lässt es sich kompilieren und korrekt ausführen? Ersetzen Sie jetzt die Zahl 32 durch immer größere Zahlen, bis etwas schief geht.

Zurück zum Inhaltsverzeichnis.


Aufgabe 4

Das folgende Programm verwendet den primitiven Datentyp char:

class CharBsp
{
  public static void main ( String[] args )
  {
    char ch = 'A' ;
    System.out.println("Ein char: " +  ch );
  }
}

Die Variable "ch" repräsentiert 16-Bit des Hauptspeichers und verwendet ein Schema, um Zeichen (Character) darzustellen. Ihr wurde das Zeichen 'A' übergeben. Die Ausgabe des Programm ist:

Ein char: A

Machen Sie folgendes:

Zurück zum Inhaltsverzeichnis.


Ende der Aufgaben