Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 15 von 56 Treffern Seiten (4): [1] 2 3 nächste » ... letzte »
Autor Beitrag
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
31.07.2013 20:19 Forum: Praktische Informatik


Ok, ich habe das jetzt
Vielen Dank
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
31.07.2013 18:43 Forum: Praktische Informatik


Zitat:
Original von Airblader

Es ist uebrigens keine gute Idee, ein Objekt zu veraendern, ueber das du iterierst. Ebenfalls weniger gut ist, dass du Eintraege in topDatei nicht verschiebst, sondern klonst.


Ich habe versuch die Einträge zu verschieben, leider wird der Vector dann immer länger und länger(
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
 public void top20(){

        Zeichenkette tmp;
        Zeichenkette tmp2 = new Zeichenkette(null);
        for (int j = 0; j < topdatei.size(); j++) {
            tmp = this.topdatei.elementAt(j);
            if (tmp.größerAls(tmp2)) {
                Zeichenkette tmp3 = topdatei.elementAt(j);
                topdatei.add(j, tmp2);
                topdatei.add((j+1), tmp3);
            }
        }
    }

Oder funktioniert es anders?
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
22.07.2013 08:45 Forum: Praktische Informatik


Es sollten 20 Wörter sein aber, weil die Datei zu groß ist, habe ich eine kleine Testdatei gemacht( also alles gelöscht bis zwei Sätze) und es sind weniger Wörter als 20, deswegen auch auf fünf abgeändert.

Zu meinen Gedankengang:
Die Methode besserAls soll true zurückgeben, wenn das erste "Wort" häufiger vorkommt als das zweiten "Wort".
Dann habe ich bei der Methode top20 zwei Variable angelegt. In der zweiten Variabel(tmp2) steht nichts( also "null" und die Zahl ist 1) und die erste Variabel(tmp) wird durch die for-Schleife gefühlt.
Wenn die erste Variabel besser ist als die zweite, dann soll die in der zweiten Variabel gespeichert und gleichzeitig im Vector auf die Position 1 gerückt.

Und wenn der Vector sortiert ist, sollen die ersten fünf "Wörter" ausgegeben werden.

Wenn ich die funktion abrufe, dann bekomme ich diese Meldung
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 >= 0
und damit kann ich nichts anfangen(
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
21.07.2013 18:44 Forum: Praktische Informatik


Vielen Dank
Man darf doch ein Vector kopieren oder?
Ich habe im Internet diesen Code gefungen
code:
1:
  Vector<Zeichenkette> topdatei = new Vector(new_datei);

Ich wollte diesen kopierten Vector nach der Häufigkeit der Wörte sortieren.
Deswegen habe ich in die Klasse von Zeichenkette diese Methode geschrieben
code:
1:
2:
3:
4:
5:
6:
 public boolean besserAls(Zeichenkette zweiter) {
        if (this.anzahl >= zweiter.anzahl) {
            return true;
        }
        return false;
      }

Und dann in die Klasse diese Methode geschrieben um die 5 häufigsten Wörter zu ermitteln
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
public void top20(){
        Zeichenkette tmp;
        Zeichenkette tmp2=new Zeichenkette(null);
        for (int i = 0; i < topdatei.size(); i++) {
            tmp = this.topdatei.get(i);
            if (tmp.besserAls(tmp2)) {
                        tmp2 = tmp;
                       topdatei.add(1,tmp2);
                    }
        }
       for(int j=0;j<5;j++){
         topdatei.elementAt(j).toString();
       } 
    }

Aber irgendwie macht das Programm nicht das, was ich will(
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
20.07.2013 21:02 Forum: Praktische Informatik


Das ist nicht genau, dass was ich brauche. Weil ich nicht nur den Vector sortieren muss, sondern auch die Wörter zählen muss, wie oft die vorkommen.
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
20.07.2013 19:31 Forum: Praktische Informatik


Dumme Frage
Wenn ich jetzt eine Funktion in die Klasse Zeichenkette schreibe und der Funktion nur ein Objekt übergebe, wie kann ich es dann sortieren?
Ich mein z.B
Zeichenkette xy= new Zeichenkette("der");
also hat der Objekt xy nur ein String "der" und eine zahl =1
Wie kann ich hier etwas sortieren?
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
20.07.2013 18:07 Forum: Praktische Informatik


Oh man ein Problemm weg, dazu kommen zwei neu(
Ich muss diese Vector alphabetisch sortieren und wenn ein Wort doppelt vorkommt, soll der Zähler für den Wort um eins steigen.
Deswegen habe ich eine neue Klasse eingeführt

code:
1:
2:
3:
4:
5:
6:
7:
8:
public class Zeichenkette {
      String zeichenkette;
      int anzahl;
    public Zeichenkette(String zeichenkette){
        this.zeichenkette=zeichenkette;
        anzahl=1;
    }  }

Dann habe ich den Vector angepasst
code:
1:
2:
Vector<Zeichenkette> new_datei = new Vector();

Aber jetzt funktionier das zufügen von String nicht mehr(
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
public class Klasse {

    Vector<Zeichenkette> new_datei = new Vector();

    public void leseDaten(String dateiname) {

        File Datei = new File(dateiname);
        try {
            BufferedReader br = new BufferedReader(new FileReader(Datei));

            String line = null;
            boolean zerlegen = false;

            while ((line = br.readLine()) != null) {
                if (zerlegen) {
                    String woerter[] = line.split(" ");
                    for (int i = 0; i < woerter.length; i++) {
                        String wort = woerter[i];
                        if (wort.charAt(wort.length() - 1) == '.'
                                || wort.charAt(wort.length() - 1) == ','
                                || wort.charAt(wort.length() - 1) == '?'
                                || wort.charAt(wort.length() - 1) == '!'
                                || wort.charAt(wort.length() - 1) == ';'
                                || wort.charAt(wort.length() - 1) == ':') {
                            wort = wort.substring(0, wort.length() - 1);
                        }
                        wort = wort.toLowerCase();
                        new_datei.add(wort);

                    }
                    if (line.contains("*** START OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA ***")) {
                        zerlegen = true;
                    }
                    if (line.contains("*** END OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA ***")) {
                        break;
                    }
                }
            }
        } catch (IOException e) {
            System.out.println("Datei " + dateiname + " konnte nicht gelesen werden!");
        }
    }

    public void sortieren(Vector<Zeichenkette> new_datei) {
        for (int i = 0; i < new_datei.size(); i++) {
            Zeichenkette tem = null;
            Zeichenkette tem2 = new_datei.get(i);
            if (tem.equals(tem2)) {
                tem.anzahl++;
            }
           /* if (tem.equals(tem2)) {
                Zeichenkette tem3 = tem;
                tem = tem2;
                tem2 = tem3;
            }*/
        }

    }
}

Und noch eine Frage, bei der Funktion equals, woher weiß ich welcher String zu erst kommt?
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
20.07.2013 12:02 Forum: Praktische Informatik


Danke,
ich wollte testen, ob das Programm bis dahin läuft aber bekomme immer die Meldung
Datei pg2499 konnte nicht gelesen werden!
So sieht mein Main aus. Die Textdatei (typ:textdokument)heißt pg2499 liegt auch in dem Ordner, wo der Projekt liegt.
Was kann man noch falsch machen?
code:
1:
2:
3:
4:
5:
6:
 public static void main(String[] args) {
           Klasse text = new Klasse();
           text.leseDaten("pg2499");
      }
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
20.07.2013 09:09 Forum: Praktische Informatik


Nein, es ist ein langer Text aber ich muss nur den Abschnitt bearbeiteten, der zwischen der Zeile "*** START OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA *** und *** END OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA ***.
Deswegen dachte ich, ich lese den ganze Text ein und zerlege nur den Teil, den ich brauche in einzelnen Wörter oder geht es so nicht?
Thema: Arbeiten mit Vector
Lycaner

Antworten: 24
Hits: 21.651
Arbeiten mit Vector 19.07.2013 14:41 Forum: Praktische Informatik


Hi, ich muss wieder in Java ein Programm schreiben und komme wieder nicht weiter.
Die Aufgabenstellung ist, schreiben sie ein Programm, dass aus einer Datei einen Textabschnitt einliest. Dann alle Satzzeichen entfernt und die Wörter sortiert.
Bis jetzt habe ich folgendes geschrieben:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
public void leseDaten(String dateiname) {
       Vector new_datei=new Vector();
       File Datei = new File(dateiname);
       try {
       BufferedReader br = new BufferedReader(new FileReader(Datei));
       
       String line = null;
      
       while ((line = br.readLine()) != null) {
            if(line.contains("*** START OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA ***")){
               String woerter[] =line.split(" "); 
               new_datei.add(woerter[]); /***Wie kann ich hier die einzelne Wörter dem Vector zuführen?***/
            }
            if(line.contains("*** END OF THIS PROJECT GUTENBERG EBOOK SIDDHARTHA ***"))
                break;
           
       }
        
       
       } catch (IOException e) {
                System.out.println("Datei " + dateiname + " konnte nicht gelesen werden!");
            } 
   } 
}

Wie kann ich die einzelnen Wörter zu meinem Vector zufügen?
Thema: Methode in einer anderen Methode benutzen
Lycaner

Antworten: 6
Hits: 8.506
10.07.2013 09:48 Forum: Praktische Informatik


Vielen Dank.

Ehrlich gesagt, ich weiß nicht wie ich den [ code]...[ /code]-Tags verwende, deswegen verwende ich es nicht(((
Thema: Methode in einer anderen Methode benutzen
Lycaner

Antworten: 6
Hits: 8.506
10.07.2013 08:17 Forum: Praktische Informatik


Es sind alte Klausuraufgaben mit verschieden Aufgabenstellungen z.B.
die erste Aufgabe war, in einer Klasse Flasche zwei Konstruktoren zu erzeugen, bei einem soll er zwei Werte bekommen eins für Volumen und eins für den Füllstand(z.B50%) und der zweite soll keine Werte bekommen aber die beiden die Werte Volumen auf 0,75 und Füllstand auf 100% setzen.
Als zweite Aufgabe sollte die Klasse eine Methode berechneInhalt bekommen.
So sieht meine Klasse Flasche aus:

public class Flasche {
double dVolumen;
double dFüllstand;
public Flasche(){
dVolumen=0.75;
dFüllstand=100;
}
public Flasche(double dVolumen, double dFüllstand){
this.dVolumen=dVolumen;
this.dFüllstand=dFüllstand;
}
public double berechneInhalt(){
return this.dVolumen*this.dFüllstand;
}
}
Die dritte Aufgabe war, eine Klasse Kiste hinzufügen, die in einem Vector nur die Objekte Kiste speichert. Außerdem sollte die Klasse einen parameterlosen Konstruktor mit 9 Flaschen bekommen.
Die vierte Aufgabe war, eine berechneInhalt für die Kiste schreiben mit dem Zusatz, dass man die Methode berechneInhalt der Klasse Flasche verwendet.
Thema: Methode in einer anderen Methode benutzen
Lycaner

Antworten: 6
Hits: 8.506
Methode in einer anderen Methode benutzen 09.07.2013 17:39 Forum: Praktische Informatik


Ich habe bei java zwei Klassen.
Die erste Klasse ist Flasche und hat folgende Methode;

public double berechneInhalt(){
return this.dVolumen*this.dFüllstand;

Die zweite Klasse Kiste soll eine Kiste mit 9 Flaschen darstellen:

public Kiste(){
Flasche a1; Flasche a2;Flasche a3;Flasche a4;Flasche a5;
Flasche a6;Flasche a7;Flasche a8;Flasche a9;}

public double bInhalt(Vector<Kiste>k){
double erg=0;
for(int i = 0; i < k.size(); i++){

erg=erg+ /****wie kann ich hier auf die Methode berechneInhalt der Flasche
zugreifen?******/

}
return erg;
}
}
Thema: Auf einzelne Element im Vektor zugreifen
Lycaner

Antworten: 5
Hits: 7.183
07.07.2013 22:28 Forum: formale Sprachen


Danke.
Aber ich bekomme es immer noch nicht hin.
Mein Problem ist, dass es alle Klausuraufagen sind und es gibt immer vorgaben. z.B.

Diese Methode sollte ein void sein:

public String name(){
return this.vorname + " " + this.nachname;
}
also habe ich die angepasst

public void name(){
System.out.print(this.vorname+" "+this.nachname);
}
Es funktionier aber ich bekomme es nicht hin die zweite Methode anzupassen.
Es sollte auch ein public void gibAus() Methode sein.

Wie würde die dann aussehen?
Thema: Auf einzelne Element im Vektor zugreifen
Lycaner

Antworten: 5
Hits: 7.183
07.07.2013 20:39 Forum: formale Sprachen


Vielen Dank.
Kann man diese for-Schleife in Methode packen?
Ich meine, wie würde eine Methode aussehen, die ein Vector bekommt und alle Inhalte des Vector wiedergabt?
Zeige Beiträge 1 bis 15 von 56 Treffern Seiten (4): [1] 2 3 nächste » ... letzte »