kostenloser Webspace werbefrei: lima-city


Marathonlauf Java

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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.
  4. Autor dieses Themas

    davy

    Kostenloser Webspace von davy

    davy hat kostenlosen Webspace.

    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?
  5. Einen direkten Fehler seh ich so nicht, aber ein Haufen Kauderwelsch.:wink:
    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.:confused:

    Beitrag zuletzt geändert: 3.10.2011 12:05:35 von reimann
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!