Programozó versenyek

Magas szintű programozási nyelvek 2, 2014. november 10., H16 ZH

2014. november 10. 16:15 – 2014. november 10. 17:55

Hupikék törpikék

Töltse le az alábbi programkódot egy Teszt.java nevű állományba, majd egészítse ki az instrukcióknak megfelelően:

Teszt.java

  1. import java.util.Arrays;
  2. import java.util.ArrayList;
  3. import java.io.BufferedReader;
  4. import java.io.InputStreamReader;
  5. import java.io.IOException;
  6. class Gombaház {
  7.     private final String[] törplakók;
  8.     @Override
  9.     public String toString() {
  10.         return Arrays.toString(törplakók).replaceAll("[\\[\\]]", "");
  11.     }
  12. }
  13. public class Teszt {
  14.      public static void main(String[] args) {
  15.         ArrayList<Gombaház> gal = new ArrayList<>();
  16.         try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
  17.             String sor = null;
  18.             while ((sor = br.readLine()) != null) {
  19.                 String[] st = sor.split(";");
  20.                 gal.add(new Gombaház(st));
  21.             }
  22.         } catch (IOException ioe) {
  23.             ioe.printStackTrace();
  24.         }
  25.         Gombaház[] gt = gal.toArray(new Gombaház[0]);
  26.         for (Gombaház f : gt) {
  27.             System.out.println(f);
  28.         }
  29.         System.out.println();
  30.         Gombaház.kiírTörplakókSzámaSzerintCsökkenőenRendezve(gt);
  31.         System.out.println();
  32.         Gombaház.kiírTörpNevekSzámaSzerintRendezve(gt);
  33.     }
  34. }
letöltés szöveges állományként
  1. Hozza létre a Gombaház osztály egyetlen konstruktorát az UML-diagramnak megfelelő paraméterezéssel! A konstruktor a paramétereként megkapott tömb referenciáját másolja a törplakók mezőbe!

  2. Bővítse ki a Gombaház osztályt úgy, hogy az megvalósítsa a Comparable<Gombaház> generikus interfészt! Az interfész által deklarált compareTo() metódust úgy implementálja, hogy az aktuális gombaház példány törplakóinak a darabszámát a paraméterként megkapott gombaház példány törplakóinak a számával hasonlítsa össze csökkenő rendezettséget figyelembe véve!
  3. Írja meg a Gombaház osztály kiírTörplakókSzámaSzerintCsökkenőenRendezve() nevű statikus metódusát úgy, hogy az a paramétereként megkapott tömb gombaházait a bennük lakó törpök darabszáma szerint csökkenő sorba rendezze, majd a rendezett tömb elemeit kiírja a standard kimenetre!
  4. Írja meg a Gombaház osztály kiírTörpNevekSzámaSzerintRendezve() nevű statikus metódusát úgy, hogy az a paramétereként megkapott tömb gombaházait az egyes gombaházakban lakó, „Törp” prefixszel kezdődő nevű törpök száma szerint növekvő sorba rendezze, majd a rendezett tömb elemeit kiírja a standard kimenetre! A prefix vizsgálatához használja a String osztálybeli startsWith() metódust!

Példa bemenet

  1. Törpapa;Nótata;Törperős
  2. Törperdész;Törpilóta;Szakadtka;Ügyifogyi;Törpöltő
  3. Költörp;Törpilla
  4. Törpojáca;Törpicur;Törpszakáll;Törpingáló
  5. Okoska
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. Törpapa, Nótata, Törperős
  2. Törperdész, Törpilóta, Szakadtka, Ügyifogyi, Törpöltő
  3. Költörp, Törpilla
  4. Törpojáca, Törpicur, Törpszakáll, Törpingáló
  5. Okoska
  6. Törperdész, Törpilóta, Szakadtka, Ügyifogyi, Törpöltő
  7. Törpojáca, Törpicur, Törpszakáll, Törpingáló
  8. Törpapa, Nótata, Törperős
  9. Költörp, Törpilla
  10. Okoska
  11. Okoska
  12. Költörp, Törpilla
  13. Törpapa, Nótata, Törperős
  14. Törperdész, Törpilóta, Szakadtka, Ügyifogyi, Törpöltő
  15. Törpojáca, Törpicur, Törpszakáll, Törpingáló
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.