Das fertige Programm steht unten.
Das vollständiges Programm kann kopiert, in einen Editor eingefügt und auf die übliche Weise ausgeführt werden.
import java.io.*;
// 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 ) throws IOException
{
final double G = 9.80665; // Konstante für Gravitationsbeschleunigung
int t, limit; // Zeit in Sekunden und Endwert der Zeit
double entfernung; // die Entfernung, die der Ziegelstein zurückgelegt hat
BufferedReader userIn = new BufferedReader (new InputStreamReader(System.in));
String inputData;
System.out.println( "Geben Sie den Grenzwert ein:" );
inputData = userIn.readLine();
limit = Integer.parseInt( inputData );
// Übschrift ausgeben
System.out.println( "Sekunden\tEntfernung" );
System.out.println( "-------\t--------" );
t = 0 ;
while ( t <= limit )
{
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 Null.
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 dies 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.