Marathonlauf Java
lima-city → Forum → Programmiersprachen → Java
ausgabe
berechnen
code
double
eingabe
final double
helfen
http
import
lang string
marathonlauf
marathonstrecke
sekunde
sequenz
strecke
string
support
trainingszeit
url
verarbeitung
-
Hallo !
Ich soll bis morgen ein Marathonlauf Java Programm schreiben.
Angefangen habe ich so:
package sequenz; import java.io.IOException; import support.Console; public class Marathonlauf { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // Deklaration double M_Strecke, M_Zeit, M_Sekunden; final double M_Distanz=42195; //Eingabe Console.print("Trainingsstrecke= "); M_Strecke=Console.readDouble(); Console.print("Trainingszeit= "); M_Zeit=Console.readDouble(); //Verarbeitung M_Sekunden = (int) (M_Strecke*4,2195); //Ausgabe Console.println("Die Marathonstrecke wird in folgender Zeit zurückgelegt: ); } }
Eingeben soll man die Trainingsstrecke in km und die Trainingszeit im Format h:m:s.
Die Marathondistanz ist immer 42195 m und soll als Konstante gespeichert werden.
Die Ausgabe soll dann die Zeit in h:m:s sein, die der Läufer für die Strecke braucht.
Könnt Ihr mir da helfen?
EDIT: Mir würde schonmal helfen, wenn ich wüßte, wie ich bei der Eingabe, die Zeit (z.B. 0:50:0) in Sekunden umrechne?
Wie kann ich das machen?
Beitrag zuletzt geändert: 29.9.2011 16:16:36 von davy -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Okay, dann hier mal die erste Hilfestellung:
Die Eingabe 0:50:0 kannst du mit String.split zerlegen: http://download.oracle.com/javase/7/docs/api/java/lang/String.html#split(java.lang.String) (mit dem Doppelpunkt als Trennzeichen).
Und die Zahlen lassen sich einfach mit Integer.parseInt() lesen: http://download.oracle.com/javase/7/docs/api/java/lang/Integer.html#parseInt(java.lang.String) (in einer Schleife verwenden)
Und mit *60 kommt man immer auf die nächste Zeitebene. -
Mein Programm sieht jetzt so aus:
package sequenz; import java.io.IOException; import support.Console; public class Marathonlauf2 { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub // Die Marathon Distanz: final double MDISTANZ = 42195; //Konstante // Variablen für Benutzereingaben: int l_strecke, l_zeit, trainingszeit ; String[] zeit; // Variablen für Zeit: int h,m,s; // Zur Berechnung: double factor; int m_zeit; //Eingabe Console.print("Trainingsstrecke (in m)= "); l_strecke=Console.readInt(); Console.print("Trainingszeit (h:m:s)= "); trainingszeit=Console.readInt(); l_strecke = Integer.parseInt(System.console().readLine("Trainingsstrecke (in m)= ")); zeit = System.console().readLine("Trainingszeit (h:m:s)= ").split(":"); // Einlesen in Array l_zeit = Integer.parseInt(zeit[0]) * 3600 + Integer.parseInt(zeit[1]) * 60 + Integer.parseInt(zeit[2]); //Verarbeitung factor = MDISTANZ/l_strecke; // Den Faktor für die Zeit berechnen m_zeit = (int) (l_zeit * factor); // Die Zeit berechnen s = m_zeit % 60; // Die Sekunden berechnen m = ((m_zeit - s)/60)%60; // Die Minuten berechnen h = (m_zeit - m*60 - s) / 3600; // Die Stunden berechnen //Ausgabe Console.println("Die Marathonstrecke wird in folgender Zeit zurückgelegt: " + h + ":" + m + ":" + s); } }
Aber irgendwas ist noch falsch. Wenn ich beim Ausführen die Strecke und die Zeit eingebe, kommt "Error in number, try again.".
Ist irgendwo ein Fehler? -
Einen direkten Fehler seh ich so nicht, aber ein Haufen Kauderwelsch.
Warum weißt du l_strecke zweimal einen Wert zu?
Und was bei:
Console.print("Trainingszeit (h:m:s)= "); trainingszeit=Console.readInt();
rauskommen soll bleibt auch im Dunkeln.
Das sieht mir schlimm danach aus, dass du viel einfach durcheinander haust.
Beitrag zuletzt geändert: 3.10.2011 12:05:35 von reimann -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage