bitte mal compelieren+testen
-
hi leute! mein compiler spinnt;-(
kann den code mal einer compelieren und schau ob alles passt: also mit sortieren und speichern in textdatei?? pleaseimport java.io.*; import java.util.*; /* Laufwettbewerb.java */ public class Laufwettbewerb { public static void main(String[] args) { /* für Textdatei schreiben */ FileWriter f1; int anzahlDerLaufer_input = 0; // es soll ja die Anzahl der läuferinnen eingegeben werden Random r = new Random(); System.out.println("Laufwettbewerb\n"); System.out.println("Wie viele Laufer: "); /* Anzahl der Läufer von der Konsole einlesen*/ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); anzahlDerLaufer_input = Integer.parseInt(in.readLine()); /* Spalte 1: Laufnummer */ /* Spalten 2-5: Zwischenzeiten */ /* Spalte 6: Endzeit */ /* Spate 7: Durschnittsgeschwindigkeit */ /* Spalte 8: Maximalgeschwindigkeit */ double [][] times = new double [anzahlDerLaufer_input][1+4+3]; /* Die Zufallszahl für time1 soll im Bereich 300 bis 600 Sekunden liegen. */ /* Bei jeder weiteren Zeitmessung erhöht sich die Zwischenzeit im Bereich von 300 bis 900 Sekunden. */ /* Es werden 4 Zwischenzeiten gemessen */ int spalte = 0; int endzeit = 0; int geschwindigkeit = 0; int geschwindigkeit_max = 0; int geschwindigkeit_durchschnitt = 0; for (int i=0; i<=anzahlDerLaufer_input; i++) { /* Startnummer speichern */ spalte = 0; times[i][spalte] = i; spalte++; endzeit = 0; geschwindigkeit = 0; geschwindigkeit_max = 0 /* 4 Zwischenzeiten für jeden Läufer*/ while (spalte < 6) { if(spalte==1) times[i][spalte] = times[i][spalte] = (int) Math.random()*(600-300+1));; else times[i][spalte] = time[i][spalte-1] + (int) Math.random()*(900-300+1));; /* Endzeit aufsummieren */ endzeit+=times[i][spalte]; /* Geschwindigkeit_max ermitteln */ geschwindigkeit = 2000 / (times[i][spalte] - time[i][spalte-1]); if (geschwindkeit >= geschwingkeit_max) geschwingkeit_max = geschwindigkeit; /* Zwischenzeit + 1 */ spalte++; } /* Endzeit berechnen */ times[i][spalte++] = endzeit; /* Durschschnittsgeschwingkeit berechnen */ geschwindigkeit_durchschnitt = (4*2000) / endzeit; times[i][spalte++] = geschwindigkeit_durchschnitt; /* Geschwindigkeit_max in Array schreiben */ times[i][spalte++] = geschwindigkeit_max; } /* nach durchschnittlicher Laufgeschwindigkeit sortieren */ /* die Laufgeschwindigkeit ist im Array in Spalte 7 */ sort(times); /* In die Textdatei schreiben */ try { f1 = new FileWriter("Ausgabe.txt"); /* Schreiben aller Läufer in Textdatei*/ for (i=0; i<=anzahlDerLaufer_input; i++) { spalte = 0; /* Das Array hat 8 Spalten */ while (spalte < 9) { f1.write(times[i][spalte++]+" "); } f1.write("\n"); } f1.close(); } catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } } /* Quicksort: */ /* Im Folgenden sind die wichtigsten Schritte des Quicksort Algorithmus aufgelistet: */ /* 1. Man wähle ein willkürliches (!) Element aus dem Array (wird Pivot, oder Partition Element genannt) */ /* 2. Man sortiere das Array so, dass alle Werte, die kleiner als das Partition Element sind links */ /* davon stehen und alle die größer sind, rechts davon. (Vorausgesetzt, wir sortieren aufsteigend) */ /* 3. Das Array ist nun in 2 Hälften geteilt. Das Partition Element steht dabei schon an seiner finalen */ /* Position (schließlich wurde das Array ja nach ihm sortiert) */ /* 4. Für jede der beiden so entstandenen Hälften werden nun Schritte 1 - 4 ausgeführt. */ public static void sort (int [][] array) { quickSort (array,0,array.length - 1); } private static void quickSort(int in_array[][], int left, int right) { int current, last; if (left >= right) return; swap(in_array, left, (left+right)/2); last = left; for (current = left + 1; current <= right; current++) { if (in_array[current][7] < in_array[left][7]) swap(in_array, ++last, current); } swap(in_array, left, last); quickSort(in_array, left, last-1); quickSort(in_array, last+1, right); } private static void swap(int in_array[][], int i, int j) { int[] temp; // "unter"-array vertauschen temp = in_array[i]; in_array[i] = in_array[j]; in_array[j] = temp; } }
cu
-
hi
du schreibst mal time und mal times.. da fehlen semikolons und einige zeichen sind zuviel.
fahr doch einfach mal mit deinem java drüber.
sowas geht auch auf konsole, wenn die vermeintliche ide spinnt.
und geschwindigkeit schreibste auch jedesmal anders... nö, erstmal den code bereinigen.. wie wärs mit copy and paste? ist eine sichere methode.
-
hi! hab den code no mal überarbeitet!!
bitte no mal compelieren die semicolons sind weg, times in nun in ordnung!!
das mit geschwindigkeit passt so....
bitte mal compeliern+testen! danke!! cuimport java.io.*; import java.util.*; /* Laufwettbewerb.java */ public class Laufwettbewerb { public static void main(String[] args) { /* für Textdatei schreiben */ FileWriter f1; int anzahlDerLaufer_input = 0; // es soll ja die Anzahl der Läufer eingegeben werden Random r = new Random(); System.out.println("Laufwettbewerb\n"); System.out.println("Wie viele Laufer: "); /* Anzahl der Läufer von der Konsole einlesen */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); anzahlDerLaufer_input = Integer.parseInt(in.readLine()); /* Spalte 1: Startnummer */ /* Spalten 2-5: Zwischenzeiten */ /* Spalte 6: Endzeit */ /* Spate 7: Durschnittsgeschwindigkeit */ /* Spalte 8: Maximalgeschwindigkeit */ double [][] times = new double [anzahlDerLaufer_input][1+4+3]; /* Die Zufallszahl für time1 soll im Bereich 300 bis 600 Sekunden liegen. */ /* Bei jeder weiteren Zeitmessung erhöht sich die Zwischenzeit im Bereich von 300 bis 900 Sekunden. */ /* Es werden 4 Zwischenzeiten gemessen */ int spalte = 0; int endzeit = 0; int geschwindigkeit = 0; int geschwindigkeit_max = 0; int geschwindigkeit_durchschnitt = 0; for (int i=0; i<=anzahlDerLaufer_input; i++) { /* Startnummer speichern */ spalte = 0; times[i][spalte] = i; spalte++; endzeit = 0; geschwindigkeit = 0; geschwindigkeit_max = 0; int max = 600; int min = 300; /* 4 Zwischenzeiten für jeden Läufer*/ while (spalte < 6) { if( spalte > 1 ) { max = 900; } times[i][spalte] = times[i][spalte-1] + min + (int) Math.random()*(max-min+1)); /* Endzeit aufsummieren */ endzeit+=times[i][spalte]; /* Geschwindigkeit_max ermitteln */ geschwindigkeit = 2000 / (times[i][spalte] - times[i][spalte-1]); if (geschwindkeit >= geschwingkeit_max) geschwingkeit_max = geschwindigkeit; /* Zwischenzeit + 1 */ spalte++; } /* Endzeit berechnen */ times[i][spalte++] = endzeit; /* Durschschnittsgeschwingkeit berechnen */ geschwindigkeit_durchschnitt = (4*2000) / endzeit; times[i][spalte++] = geschwindigkeit_durchschnitt; /* Geschwindigkeit_max in Array schreiben */ times[i][spalte++] = geschwindigkeit_max; } /* nach durchschnittlicher Laufgeschwindigkeit sortieren */ /* die Laufgeschwindigkeit ist im Array in Spalte 7 */ sort(times); /* In die Textdatei schreiben */ try { f1 = new FileWriter("Ausgabe.txt"); /* Schreiben aller Läufer in Textdatei*/ for (i=0; i<=anzahlDerLaufer_input; i++) { spalte = 0; /* Das Array hat 8 Spalten */ while (spalte < 9) { f1.write(times[i][spalte++]+" "); } f1.write("\n"); } f1.close(); } catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } } /* Quicksort: */ /* Im Folgenden sind die wichtigsten Schritte des Quicksort Algorithmus aufgelistet: */ /* 1. Man wähle ein willkürliches (!) Element aus dem Array (wird Pivot, oder Partition Element genannt) */ /* 2. Man sortiere das Array so, dass alle Werte, die kleiner als das Partition Element sind links */ /* davon stehen und alle die größer sind, rechts davon. (Vorausgesetzt, wir sortieren aufsteigend) */ /* 3. Das Array ist nun in 2 Hälften geteilt. Das Partition Element steht dabei schon an seiner finalen */ /* Position (schließlich wurde das Array ja nach ihm sortiert) */ /* 4. Für jede der beiden so entstandenen Hälften werden nun Schritte 1 - 4 ausgeführt. */ public static void sort (int [][] array) { quickSort (array,0,array.length - 1); } private static void quickSort(int in_array[][], int left, int right) { int current, last; if (left >= right) return; swap(in_array, left, (left+right)/2); last = left; for (current = left + 1; current <= right; current++) { if (in_array[current][7] < in_array[left][7]) swap(in_array, ++last, current); } swap(in_array, left, last); quickSort(in_array, left, last-1); quickSort(in_array, last+1, right); } private static void swap(int in_array[][], int i, int j) { int[] temp; // "unter"-array vertauschen temp = in_array[i]; in_array[i] = in_array[j]; in_array[j] = temp; } }
-
import java.io.*; import java.util.*; /* Laufwettbewerb.java */ public class Laufwettbewerb { public static void main(String[] args) { /* für Textdatei schreiben */ FileWriter f1; int anzahlDerLaufer_input = 0; // es soll ja die Anzahl der Läufer eingegeben werden Random r = new Random(); System.out.println("Laufwettbewerb\n"); System.out.println("Wie viele Laufer: "); /* Anzahl der Läufer von der Konsole einlesen */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); anzahlDerLaufer_input = Integer.parseInt(in.readLine()); /* Spalte 1: Startnummer */ /* Spalten 2-5: Zwischenzeiten */ /* Spalte 6: Endzeit */ /* Spate 7: Durschnittsgeschwindigkeit */ /* Spalte 8: Maximalgeschwindigkeit */ int [][] times = new double [anzahlDerLaufer_input][1+4+3]; /* Die Zufallszahl für time1 soll im Bereich 300 bis 600 Sekunden liegen. */ /* Bei jeder weiteren Zeitmessung erhöht sich die Zwischenzeit im Bereich von 300 bis 900 Sekunden. */ /* Es werden 4 Zwischenzeiten gemessen */ int spalte = 0; int endzeit = 0; int geschwindigkeit = 0; int geschwindigkeit_max = 0; int geschwindigkeit_durchschnitt = 0; for (int i=0; i<=anzahlDerLaufer_input; i++) { /* Startnummer speichern */ spalte = 0; times[i][spalte] = i; spalte++; endzeit = 0; geschwindigkeit = 0; geschwindigkeit_max = 0; int max = 600; int min = 300; /* 4 Zwischenzeiten für jeden Läufer*/ while (spalte < 6) { if( spalte > 1 ) { max = 900; } times[i][spalte] = times[i][spalte-1] + min + (int) Math.random()*(max-min+1); /* Endzeit aufsummieren */ endzeit+=times[i][spalte]; /* Geschwindigkeit_max ermitteln */ geschwindigkeit = 2000 / (times[i][spalte] - times[i][spalte-1]); if (geschwindkeit >= geschwingkeit_max) geschwingkeit_max = geschwindigkeit; /* Zwischenzeit + 1 */ spalte++; } /* Endzeit berechnen */ times[i][spalte++] = endzeit; /* Durschschnittsgeschwingkeit berechnen */ geschwindigkeit_durchschnitt = (4*2000) / endzeit; times[i][spalte++] = geschwindigkeit_durchschnitt; /* Geschwindigkeit_max in Array schreiben */ times[i][spalte++] = geschwindigkeit_max; } /* nach durchschnittlicher Laufgeschwindigkeit sortieren */ /* die Laufgeschwindigkeit ist im Array in Spalte 7 */ sort(times); /* In die Textdatei schreiben */ try { f1 = new FileWriter("Ausgabe.txt"); /* Schreiben aller Läufer in Textdatei*/ for (i=0; i<=anzahlDerLaufer_input; i++) { spalte = 0; /* Das Array hat 8 Spalten */ while (spalte < 9) { f1.write(times[i][spalte++]+" "); } f1.write("\n"); } f1.close(); } catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } } /* Quicksort: */ /* Im Folgenden sind die wichtigsten Schritte des Quicksort Algorithmus aufgelistet: */ /* 1. Man wähle ein willkürliches (!) Element aus dem Array (wird Pivot, oder Partition Element genannt) */ /* 2. Man sortiere das Array so, dass alle Werte, die kleiner als das Partition Element sind links */ /* davon stehen und alle die größer sind, rechts davon. (Vorausgesetzt, wir sortieren aufsteigend) */ /* 3. Das Array ist nun in 2 Hälften geteilt. Das Partition Element steht dabei schon an seiner finalen */ /* Position (schließlich wurde das Array ja nach ihm sortiert) */ /* 4. Für jede der beiden so entstandenen Hälften werden nun Schritte 1 - 4 ausgeführt. */ public static void sort (int [][] array) { quickSort (array,0,array.length - 1); } private static void quickSort(int in_array[][], int left, int right) { int current, last; if (left >= right) return; swap(in_array, left, (left+right)/2); last = left; for (current = left + 1; current <= right; current++) { if (in_array[current][7] < in_array[left][7]) swap(in_array, ++last, current); } swap(in_array, left, last); quickSort(in_array, left, last-1); quickSort(in_array, last+1, right); } private static void swap(int in_array[][], int i, int j) { int[] temp; // "unter"-array vertauschen temp = in_array[i]; in_array[i] = in_array[j]; in_array[j] = temp; } } [klamath] /tmp>javac Laufwettbewerb.java Laufwettbewerb.java:68: possible loss of precision found : double required: int geschwindigkeit = 2000 / (times[i][spalte] - times[i][spalte-1]); ^ Laufwettbewerb.java:69: cannot resolve symbol symbol : variable geschwindkeit location: class Laufwettbewerb if (geschwindkeit >= geschwingkeit_max) ^ Laufwettbewerb.java:69: cannot resolve symbol symbol : variable geschwingkeit_max location: class Laufwettbewerb if (geschwindkeit >= geschwingkeit_max) ^ Laufwettbewerb.java:70: cannot resolve symbol symbol : variable geschwingkeit_max location: class Laufwettbewerb geschwingkeit_max = geschwindigkeit; ^ Laufwettbewerb.java:89: sort(int[][]) in Laufwettbewerb cannot be applied to (do uble[][]) sort(times); ^ Laufwettbewerb.java:96: cannot resolve symbol symbol : variable i location: class Laufwettbewerb for (i=0; i<=anzahlDerLaufer_input; i++) ^ Laufwettbewerb.java:96: cannot resolve symbol symbol : variable i location: class Laufwettbewerb for (i=0; i<=anzahlDerLaufer_input; i++) ^ Laufwettbewerb.java:96: cannot resolve symbol symbol : variable i location: class Laufwettbewerb for (i=0; i<=anzahlDerLaufer_input; i++) ^ Laufwettbewerb.java:103: cannot resolve symbol symbol : variable i location: class Laufwettbewerb f1.write(times[i][spalte++]+" "); ^ 9 errors
hab da paar error..was falsch?
das hab ich schon geändert:
double [][] times = new double [anzahlDerLaufer_input][1+4+3]; auf:
int [][] times = new double [anzahlDerLaufer_input][1+4+3];cu
-
BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); anzahlDerLaufer_input = Integer.parseInt(in.readLine());
Hier fehlt das Exception Handling
int [][] times = new double [anzahlDerLaufer_input][1+4+3];
das wird so auch nicht gehen
schnapp dir doch mal z.b. eclipse und compiliere das mal und testen testen testen
-
boah sind da viele fehler drin.
willst nicht mit was leichterm anfangen^^
-
ich find das schon nicht schlecht so ne herausforderung, aber er sollte mal die komponenten einzeln auf funktionsfähigkeit testen
-
mein erstes java programm is fertig;-)
was sagt ihr?import java.io.*; import java.util.*; /* Laufwettbewerb.java */ public class Laufwettbewerb { public static void main(String[] args) { /* für Textdatei schreiben */ FileWriter f1; int anzahlDerLaufer_input = 0; // es soll ja die Anzahl der Läufer eingegeben werden Random r = new Random(); System.out.println("Laufwettbewerb\n"); System.out.println("Wie viele Laufer: "); /* Anzahl der Läufer von der Konsole einlesen */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { anzahlDerLaufer_input = Integer.parseInt(in.readLine()); } catch (IOException e) { System.out.println("Fehler beim Einlesen"); } /* Spalte 0: Startnummer */ /* Spalten 1-4: Zwischenzeiten */ /* Spalte 5: Gesamtzeit */ /* Spate 6: Durschnittsgeschwindigkeit */ /* Spalte 7: Maximalgeschwindigkeit */ int [][] times = new int [anzahlDerLaufer_input][1+5+2]; /* Die Zufallszahl für time1 soll im Bereich 300 bis 600 Sekunden liegen. */ /* Bei jeder weiteren Zeitmessung erhöht sich die Zwischenzeit im Bereich von 300 bis 900 Sekunden. */ /* Es werden 4 Zwischenzeiten gemessen */ int spalte = 0; int endzeit = 0; int geschwindigkeit = 0; int geschwindigkeit_max = 0; int geschwindigkeit_durchschnitt = 0; for (int i=0; i < anzahlDerLaufer_input; i++) { /* Startnummer speichern */ spalte = 0; times[i][spalte] = i+1; spalte++; endzeit = 0; geschwindigkeit = 0; geschwindigkeit_max = 0; int max = 600; int min = 300; /* 4 Zwischenzeiten für jeden Läufer*/ while (spalte < 5) { if (spalte == 2) max = 900; times[i][spalte] = min + Math.abs(r.nextInt()) % (max-min+1); /* Endzeit aufsummieren */ endzeit += times[i][spalte]; /* Geschwindigkeit_max ermitteln */ geschwindigkeit = (int)(200000 / (times[i][spalte])); if (geschwindigkeit >= geschwindigkeit_max) geschwindigkeit_max = geschwindigkeit; /* Zwischenzeit + 1 */ spalte++; } /* Endzeit berechnen */ times[i][spalte++] = endzeit; /* Durschschnittsgeschwingkeit berechnen */ geschwindigkeit_durchschnitt = (4*200000) / endzeit; times[i][spalte++] = geschwindigkeit_durchschnitt; /* Geschwindigkeit_max in Array schreiben */ times[i][spalte++] = geschwindigkeit_max; } /* nach durchschnittlicher Laufgeschwindigkeit sortieren */ /* die Laufgeschwindigkeit ist im Array in Spalte 7 */ sort(times); System.out.println("\nLaufer wurden sortiert"); /* In die Textdatei schreiben */ try { f1 = new FileWriter("Ausgabe.txt"); /* Tabellenkopf schreiben */ f1.write("NR.\tT1\tT2\tT3\tT4\tTGes.\tvAvg.\tvMax\r\n"); /* Tabellenkopf auf Konsole ausgeben*/ System.out.println("\nNR.\tT1\tT2\tT3\tT4\tTGes.\tvAvg.\tvMax\r"); /* Schreiben aller Läufer in Textdatei */ for (int i=0; i < anzahlDerLaufer_input; i++) { spalte = 0; /* Das Array hat 8 Spalten */ while (spalte < 8) { /* Ausgabe auf Konsole */ System.out.print(times[i][spalte]+"\t"); /* In Textdatei schreiben */ f1.write(times[i][spalte++]+"\t"); } f1.write("\r\n"); System.out.println("\r"); } f1.close(); } catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } System.out.println("\nDie Tabelle erfolgreich in die Textdatei: Ausgabe.txt gespeichert"); } /* Quicksort: */ /* Im Folgenden sind die wichtigsten Schritte des Quicksort Algorithmus aufgelistet: */ /* 1. Man wähle ein willkürliches (!) Element aus dem Array (wird Pivot, oder Partition Element genannt) */ /* 2. Man sortiere das Array so, dass alle Werte, die kleiner als das Partition Element sind links */ /* davon stehen und alle die größer sind, rechts davon. (Vorausgesetzt, wir sortieren aufsteigend) */ /* 3. Das Array ist nun in 2 Hälften geteilt. Das Partition Element steht dabei schon an seiner finalen */ /* Position (schließlich wurde das Array ja nach ihm sortiert) */ /* 4. Für jede der beiden so entstandenen Hälften werden nun Schritte 1 - 4 ausgeführt. */ public static void sort (int [][] array) { quickSort (array,0,array.length - 1); } private static void quickSort(int in_array[][], int left, int right) { int current, last; if (left >= right) return; swap(in_array, left, (left+right)/2); last = left; for (current = left + 1; current <= right; current++) { if (in_array[current][5] < in_array[left][5]) swap(in_array, ++last, current); } swap(in_array, left, last); quickSort(in_array, left, last-1); quickSort(in_array, last+1, right); } private static void swap(int in_array[][], int i, int j) { int[] temp; // "unter"-array vertauschen temp = in_array[i]; in_array[i] = in_array[j]; in_array[j] = temp; } }
nur ein fehler is!!!
} catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } System.out.println("\nDie Tabelle erfolgreich in die Textdatei: Ausgabe.txt gespeichert");
wenn ich keine rechte hab eine textdatei zu erstellen dann wird auch geschrieben textfile wurde erfolgreich erstellt, wie kann man das umgehen??? helft mir!!!
cu
-
mein erstes java programm is fertig;-)
was sagt ihr?import java.io.*; import java.util.*; /* Laufwettbewerb.java */ public class Laufwettbewerb { public static void main(String[] args) { /* für Textdatei schreiben */ FileWriter f1; int anzahlDerLaufer_input = 0; // es soll ja die Anzahl der Läufer eingegeben werden Random r = new Random(); System.out.println("Laufwettbewerb\n"); System.out.println("Wie viele Laufer: "); /* Anzahl der Läufer von der Konsole einlesen */ BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try { anzahlDerLaufer_input = Integer.parseInt(in.readLine()); } catch (IOException e) { System.out.println("Fehler beim Einlesen"); } /* Spalte 0: Startnummer */ /* Spalten 1-4: Zwischenzeiten */ /* Spalte 5: Gesamtzeit */ /* Spate 6: Durschnittsgeschwindigkeit */ /* Spalte 7: Maximalgeschwindigkeit */ int [][] times = new int [anzahlDerLaufer_input][1+5+2]; /* Die Zufallszahl für time1 soll im Bereich 300 bis 600 Sekunden liegen. */ /* Bei jeder weiteren Zeitmessung erhöht sich die Zwischenzeit im Bereich von 300 bis 900 Sekunden. */ /* Es werden 4 Zwischenzeiten gemessen */ int spalte = 0; int endzeit = 0; int geschwindigkeit = 0; int geschwindigkeit_max = 0; int geschwindigkeit_durchschnitt = 0; for (int i=0; i < anzahlDerLaufer_input; i++) { /* Startnummer speichern */ spalte = 0; times[i][spalte] = i+1; spalte++; endzeit = 0; geschwindigkeit = 0; geschwindigkeit_max = 0; int max = 600; int min = 300; /* 4 Zwischenzeiten für jeden Läufer*/ while (spalte < 5) { if (spalte == 2) max = 900; times[i][spalte] = min + Math.abs(r.nextInt()) % (max-min+1); /* Endzeit aufsummieren */ endzeit += times[i][spalte]; /* Geschwindigkeit_max ermitteln */ geschwindigkeit = (int)(200000 / (times[i][spalte])); if (geschwindigkeit >= geschwindigkeit_max) geschwindigkeit_max = geschwindigkeit; /* Zwischenzeit + 1 */ spalte++; } /* Endzeit berechnen */ times[i][spalte++] = endzeit; /* Durschschnittsgeschwingkeit berechnen */ geschwindigkeit_durchschnitt = (4*200000) / endzeit; times[i][spalte++] = geschwindigkeit_durchschnitt; /* Geschwindigkeit_max in Array schreiben */ times[i][spalte++] = geschwindigkeit_max; } /* nach durchschnittlicher Laufgeschwindigkeit sortieren */ /* die Laufgeschwindigkeit ist im Array in Spalte 7 */ sort(times); System.out.println("\nLaufer wurden sortiert"); /* In die Textdatei schreiben */ try { f1 = new FileWriter("Ausgabe.txt"); /* Tabellenkopf schreiben */ f1.write("NR.\tT1\tT2\tT3\tT4\tTGes.\tvAvg.\tvMax\r\n"); /* Tabellenkopf auf Konsole ausgeben*/ System.out.println("\nNR.\tT1\tT2\tT3\tT4\tTGes.\tvAvg.\tvMax\r"); /* Schreiben aller Läufer in Textdatei */ for (int i=0; i < anzahlDerLaufer_input; i++) { spalte = 0; /* Das Array hat 8 Spalten */ while (spalte < 8) { /* Ausgabe auf Konsole */ System.out.print(times[i][spalte]+"\t"); /* In Textdatei schreiben */ f1.write(times[i][spalte++]+"\t"); } f1.write("\r\n"); System.out.println("\r"); } f1.close(); } catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } System.out.println("\nDie Tabelle erfolgreich in die Textdatei: Ausgabe.txt gespeichert"); } /* Quicksort: */ /* Im Folgenden sind die wichtigsten Schritte des Quicksort Algorithmus aufgelistet: */ /* 1. Man wähle ein willkürliches (!) Element aus dem Array (wird Pivot, oder Partition Element genannt) */ /* 2. Man sortiere das Array so, dass alle Werte, die kleiner als das Partition Element sind links */ /* davon stehen und alle die größer sind, rechts davon. (Vorausgesetzt, wir sortieren aufsteigend) */ /* 3. Das Array ist nun in 2 Hälften geteilt. Das Partition Element steht dabei schon an seiner finalen */ /* Position (schließlich wurde das Array ja nach ihm sortiert) */ /* 4. Für jede der beiden so entstandenen Hälften werden nun Schritte 1 - 4 ausgeführt. */ public static void sort (int [][] array) { quickSort (array,0,array.length - 1); } private static void quickSort(int in_array[][], int left, int right) { int current, last; if (left >= right) return; swap(in_array, left, (left+right)/2); last = left; for (current = left + 1; current <= right; current++) { if (in_array[current][5] < in_array[left][5]) swap(in_array, ++last, current); } swap(in_array, left, last); quickSort(in_array, left, last-1); quickSort(in_array, last+1, right); } private static void swap(int in_array[][], int i, int j) { int[] temp; // "unter"-array vertauschen temp = in_array[i]; in_array[i] = in_array[j]; in_array[j] = temp; } }
nur ein fehler is!!!
} catch (IOException e) { System.out.println("Fehler beim Erstellen der Datei"); } System.out.println("\nDie Tabelle erfolgreich in die Textdatei: Ausgabe.txt gespeichert");
wenn ich keine rechte hab eine textdatei zu erstellen dann wird auch geschrieben textfile wurde erfolgreich erstellt, wie kann man das umgehen??? helft mir!!!
cu