Ich muss ein Programm schreiben, das Daten aus einer txt Datei ausliest (ich habe In.open(..... .txt); verwendet) die erste Zahl in der Reihe ist die Anzahl wie viele Koordinaten pro Route gespeichert wurden. Mit der ersten Zahl muss ich die Dauer der Route berechnen und mit den Koordinaten, die dann folgen die durchschnittsgeschwindigkeit und die Länge der Route berechnen und ausgeben. so hätte ich mir das gedacht.
Die Länge würde ich mit einer Schleife machen
und die Durschnittsgeschwindigkeit und die Länge auch in einer eigenen SChleife.
Mein Problem ist jetzt jedoch folgendes:
Wie erkennt jetzt das Programm die erste Zahl bzw die Koordinaten als x- und y-Koordinate da die einfach in einer zeile sind? ???:L
Alternativ so lange lesen bis du zu einen Leerzeichen kommst. Das schont den Speicher, ist aber nicht mehr so einfach zu lesen. Je nach dem was deine API hergibt.
Ich (und wahrscheinlich der Rest hier) hab keine Ahnung was read überhaupt macht. Liest das einen char?
Erstell dir erstmal eine Schritt-für-Schritt-Anleitung, was du nacheinander machen musst. Das kannst du dann runterschreiben. Erzeugt nicht die schönsten aber die einfachsten Codes.
ich bin jetzt schon fast fertig mit meinem Programm und mir fehlt jetzt nur noch ein Befehl mit dem ich neue werte einer int variablen zuweisen kann und dass es wieder von vorne beginnt.
Hat jemand eine Idee?
Java:
publicclassRoute{publicstaticvoidmain(String[] args){In.open("Tracks.txt");int x2;int y2;int differencex;int differencey;int duration;int lenght;int wurzel;int sumlenght;int convertedsumlenght;int middlespeed;int position =In.read();while(In.done()){int x0 =In.read();int y0 =In.read();for(int index =1; index < position; index++){int x1 =In.read();int y1 =In.read();//nach den ganzen Berechnungen wieder die Koordinaten neu zuweisen und von vorne anfangen
differencex = x0 - x1;
differencey = y0 - y1;
x2 =(int)Math.pow(differencex,2);
y2 =(int)Math.pow(differencey,2);
lenght = x2 + y2;
wurzel =(int)Math.sqrt(lenght);
sumlenght = sumlenght + wurzel;}
duration =(position-1)*5;
convertedsumlenght = sumlenght /100;
middlespeed = convertedsumlenght / duration;Out.println(Strig.format("duration = %d, sumlenght = %d, convertedsumlenght = %d, middlespeed = %d", duration, sumlenght, convertedsumlenght, middlespeed));Out.println();
position =In.readInt();}In.close();}}