Hirdetés

Keresés

Új hozzászólás Aktív témák

  • WonderCSabo
    félisten

    Totál nem fog ma az agyam, egy ilyenen elakadok. Mit ronthatok el folyton?
    A tömbök így vannak, és azok rendben is vannak. (Első oszlop:név, 2. oszlop gazdnev, 3. oszlop tomeg és a negyedik oszlop a kor.
    A tömbök azért null-ig mennek, mert husszú tömbbel dolgozunk(pl 500 elemes), mert a tömb hosszának mindig változnia kellene.
    Bukfenc;Pista;65;2
    Bukfenc;Isti;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2

    Hibajelenség: Ha bukfencre keresek rá, semmit nem talál, ha füstire, akkor talál, meg a végére kidob egy null;null;null;null-ot, mint 7. találat.

    String kereses=extra.Console.readLine("Milyen nevet keressünk?");
    db=0;
    i=0;
    while (nev[i]!=null){
    if (kereses.equals(nev [i])){
    modvalogatas[db++]=i+1;
    }
    i++;
    }

    if(db!=0){
    System.out.println("Az alábbi találat(ok) keletkeztek. ");
    for (int j=0;j<db;j++){
    System.out.println(modvalogatas[j]+"-"+nev[modvalogatas[j]]+";"+gazdnev[modvalogatas[j]]+";"+kor[modvalogatas[j]]+"év;"+tomeg[modvalogatas[j]]);
    }

    Ezt a megoldást a tanár ajánlotta nektek? Mert ez borzalmas. Csináljatok egy Dog nevű osztályt, annak legyen név, gazda, tömeg, kor mezői, és rögtön elég egy tömbben tárolni. (Azt mondanám, hogy List-ben, de gondolom Collections még nem volt). Meg lehetne for ciklus while helyett, azt se vettétek még?

    public class Dog {
    public String name, owner, age, weight; // getter setter kéne, típus lehet szám, stb.

    @Override
    public String toString() {
    return name + " " + owner + " " + age + " " + weight;
    }
    }

    ...

    Dog[] dogs = new Dogs[500];
    // read

    int i = 0;
    Dog dog = dogs[i];
    while(dog != null) {
    if (dog.name.equals(input)) {
    System.out.println(dog);
    }
    dog = dogs[++i];
    }

    Egyébként már a beolvasásnál el lehetne menteni, hány sor volt, és akkor lehetne addig menni a null ellenőrzés helyett.

    Megelőztek.

  • dabadab
    titán

    Totál nem fog ma az agyam, egy ilyenen elakadok. Mit ronthatok el folyton?
    A tömbök így vannak, és azok rendben is vannak. (Első oszlop:név, 2. oszlop gazdnev, 3. oszlop tomeg és a negyedik oszlop a kor.
    A tömbök azért null-ig mennek, mert husszú tömbbel dolgozunk(pl 500 elemes), mert a tömb hosszának mindig változnia kellene.
    Bukfenc;Pista;65;2
    Bukfenc;Isti;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2
    Füsti;Pista;65;2

    Hibajelenség: Ha bukfencre keresek rá, semmit nem talál, ha füstire, akkor talál, meg a végére kidob egy null;null;null;null-ot, mint 7. találat.

    String kereses=extra.Console.readLine("Milyen nevet keressünk?");
    db=0;
    i=0;
    while (nev[i]!=null){
    if (kereses.equals(nev [i])){
    modvalogatas[db++]=i+1;
    }
    i++;
    }

    if(db!=0){
    System.out.println("Az alábbi találat(ok) keletkeztek. ");
    for (int j=0;j<db;j++){
    System.out.println(modvalogatas[j]+"-"+nev[modvalogatas[j]]+";"+gazdnev[modvalogatas[j]]+";"+kor[modvalogatas[j]]+"év;"+tomeg[modvalogatas[j]]);
    }

    Ez így nagyon gáz.
    Egyrészt ez a nullig keresés olyan, mintha C-ben programoznál, márpedig a Java nem C, itt vannak rendes containerek, tessék azokat rendesen használni iterátorral. Másrészt meg ahelyett, hogy csinálnál ezer tömböt (listát, akármit) csinálhatnál egyet, amibe classokat raksz, minek van név, gazdnév, tömeg meg hasonló fieldje.

Új hozzászólás Aktív témák