zur vorherigen Seite   zum Inhaltsverzeichnis   zur nächsten Seite

Antwort:

Das fertige Programm steht unten.

Vollständiges Programm

Das vollständige Programm kann kopiert, in einen Editor eingefügt und auf die übliche Weise ausgeführt werden.

import java.util.Scanner;

// Anwender wählt den Endwert für die Zeit, t
// Das Programm berechnet und gibt die Entfernung aus,
// die der Ziegelstein in der Zeit t zurückgelegt hat
//
class FallenderZiegelstein
{
  public static void main (String[] args )
  {
    final double G = 9.80665;  // Konstante für Gravitationsbeschleunigung
    int    t, zeit;            // Zeit in Sekunden und Endwert der Zeit
    double entfernung;         // die Entfernung, die der Ziegelstein
                               // zurückgelegt hat
    Scanner scan = new Scanner( System.in );

    System.out.println( "Zeit in Sekunden:" );
    zeit = scan.nextInt();

    // Übschrift ausgeben
    System.out.println( "Sekunden\tEntfernung"  );
    System.out.println( "-------\t--------"  );

    t         = 0 ;
    while (  t <= zeit )
    {
      entfernung = (G * t * t)/2 ;
      System.out.println( t + "\t" + entfernung );

      t = t + 1 ;
    }
  }
}

Sie könnten ebenfalls schreiben entfernung = 0.5 * G * t * t ; bzw.
entfernung = (1.0 / 2.0) * G * t * t ;.

Was waren die zwei Fallen beim Übersetzen der Formel? Wenn Sie sie mit (1/2) * G * t * t übersetzt hätten, wären Sie in die erste Falle gegangen. (1/2) fordert eine Ganzzahl-Division von 1 durch 2, Ergebnis 0.

Wenn Sie die Formel mit 1/2 * G * t * t, übersetzt hätten, wären Sie in die zweite Falle gegangen. Für den Compiler, sieht das aus wie die erste falsche Formel (da "/" die gleiche Präzedenz wie "*" hat).

Ein drittes Problem ist die Berechnung des Quadrats. Multiplizieren Sie t mit t.

FRAGE 15:

Jetzt angenommen Sie wollen eine Tabelle, um die Erhöhung der Zeit in 0.1 Sekundenschritten zu zeigen. Modifizieren Sie das Programm, so dass es das mit einem Maximum an Genauigkeit tut. Der Anwender wird immer noch den Endwert in Sekunden eingeben.