Aufgabe 1 - Ergänzungen zum Quelltext

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Aufgabe 1 - Ergänzungen zum Quelltext

    Hallo Leute,

    Ich hab hier einige Aufgaben zu denen ich dringend Hilfe benötige.. Wäre super nett wenn mir da einer weiter Helfen könnte..

    a) Ergänze das Programm so, dass die Ausgabe nach jeweils 40 Zeichen auf eine neue Zeile umgebrochen wird.
    b) Führe neue Variablen ein, damit die Häufigkeit der einzelnen Ziffern festgestellt werden kann.
    c) Führe den Zählvorgang mit deinem Programm durch. Die Ausgabe soll dokumentiert werden.
    d) Ändere das Programm so ab, dass die relativen Häufigkeiten in einer geeigneten Tabelle ausgegeben werden.

    a) habe ich bereits mit Hilfe von d0nut lösen können Fehlen mir aber noch die anderen drei..

    Quellcode

    1. import java.io.*;
    2. public class Lies01 {
    3. public static void main(String args[]) {
    4. FileReader f;
    5. int c, col = 0;
    6. try {
    7. f = new FileReader("c:\\PI10000.txt"); // Die Datei PI10000.txt wird gelesen
    8. while ((c = f.read()) != -1) {
    9. System.out.print((char)c);
    10. col++; // Spalte erhöhen
    11. if (col % 1 == 0) // Nach 40 Zeichen wird ein Zeilenumbruch gemacht
    12. {
    13. System.out.println();
    14. }
    15. }
    16. f.close();
    17. } catch (IOException e) {
    18. System.out.println("Fehler beim Lesen der Datei"); // Wenn der Pfad der Datei die gelesen werden soll nicht stimmt kommt der Text "Fehler beim Lesen der Datei"
    19. }
    20. }
    21. }
    Alles anzeigen
  • na da hast du dir echt nicht wenige aufgaben aufgehoben..

    hier nochmal WordCount mit Vector..
    (wie in diesem Thread)

    Quellcode

    1. import java.io.*;
    2. import java.util.Iterator;
    3. import java.util.Vector;
    4. public class A1 {
    5. static Vector words = new Vector();
    6. @SuppressWarnings("unchecked")
    7. public static void main(String args[]) {
    8. FileReader f;
    9. int c, col = 0;
    10. String output = "";
    11. try {
    12. f = new FileReader("bitcount.dat"); // Die Datei PI10000.txt wird gelesen
    13. while ((c = f.read()) != -1) {
    14. System.out.print((char)c);
    15. output += c;
    16. col++; // Spalte erhöhen
    17. if (col % 40 == 0) // Nach 40 Zeichen wird ein Zeilenumbruch gemacht
    18. {
    19. System.out.println();
    20. }
    21. }
    22. f.close();
    23. char[] a = output.toCharArray();
    24. for(char dot : a)
    25. words.addElement(dot+"");
    26. printTable();
    27. } catch (IOException e) {
    28. System.out.println("Fehler beim Lesen der Datei"); // Wenn der Pfad der Datei die gelesen werden soll nicht stimmt kommt der Text "Fehler beim Lesen der Datei"
    29. }
    30. }
    31. /**
    32. * Zählt die Vorkommen des Wortes
    33. * löscht das Element aus dem Vector, nachdem es gezählt wurde
    34. * @param word
    35. * @param tmp
    36. * @return
    37. */
    38. static int countWord(String word, Vector tmp) {
    39. int n=0;
    40. while(tmp.contains(word))
    41. {
    42. tmp.remove(tmp.indexOf(word));
    43. n++;
    44. }
    45. return n;
    46. }
    47. /**
    48. * gibt die fertige Hashtable aus
    49. *
    50. */
    51. static void printTable() {
    52. Iterator it = words.iterator();
    53. Vector tmp = new Vector();
    54. tmp.addAll(words);
    55. while(it.hasNext()) {
    56. String word = (String)it.next();
    57. if(tmp.contains(word))
    58. System.out.println(word + ":\t" + countWord(word, tmp) + "mal");
    59. }
    60. }
    61. }
    Alles anzeigen


    Ausgabe folgender Datei
    34561238125354126388123416253123756418233456123812535412638812341625123681265361235123612354218653686123648197286097378123465129763512537867589123415842635961238752193861523846


    5: 155mal
    1: 30mal
    2: 13mal
    3: 21mal
    4: 52mal
    9: 28mal
    0: 29mal
    6: 19mal
    7: 6mal
    8: 1mal

    komischerweise stimmen die werte nicht.. hmm
  • Also erneut die Frage: Welche Java Version besitzt du?

    http://www.galileocomputing.de/openbook/javainsel5/javainsel08_006.htm#Rxx747java080060400029F1F0401BD
    Die Annotation @SuppressWarnings steuert Compiler-Warnungen. Unterschiedliche Werte bestimmten genauer, welche Hinweise unterdrückt werden. Beliebt ist die Annotation bei der Umstellung von älterem Quellcode mit nicht-typisierten Datenstrukturen, um die Anzahl der Warnungen zu minimieren. Da sich mit Java 5.0 das Klassenformat änderte, gibt der Compiler beim Übersetzen älterer Klassen schnell eine »unchecked« Meldung.


    http://weblogs.java.net/blog/ddevore/archive/2006/01/java_with_gener_1.html
    @SupressWarnings will provide a cleaner build and not remove warnings which are needed. [..]
    1.5 update 5 does not support the @SupressWarnings which is what I was using. It was fixed in 1.5 update 6 4986256 when I first read this I did not see the release fix note for 5.0u6. I have since upgraded to update 6 and it seems to be working.