Programozó versenyek

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

2014. november 10. 14:05 – 2014. november 10. 15:45

Fagylalt

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 Fagylalt {
  7.     private final String[] gombócok;
  8.     @Override
  9.     public String toString() {
  10.         return Arrays.toString(gombócok).replaceAll("[\\[\\]]", "");
  11.     }
  12. }
  13. public class Teszt {
  14.     public static void main(String[] args) {
  15.         ArrayList<Fagylalt> fal = 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.                 fal.add(new Fagylalt(st));
  21.             }
  22.         } catch (IOException ioe) {
  23.             ioe.printStackTrace();
  24.         }
  25.         Fagylalt[] ft = fal.toArray(new Fagylalt[0]);
  26.         for (Fagylalt f : ft) {
  27.             System.out.println(f);
  28.         }
  29.         System.out.println();
  30.         Fagylalt.kiírGombócSzámSzerintRendezve(ft);
  31.         System.out.println();
  32.         Fagylalt.kiírGombócNevekHosszainakÖsszegeSzerintRendezve(ft);
  33.     }
  34. }
letöltés szöveges állományként
  1. Hozza létre a Fagylalt 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 gombócok mezőbe!

  2. Bővítse ki a Fagylalt osztályt úgy, hogy az megvalósítsa a Comparable<Fagylalt> generikus interfészt! Az interfész által deklarált compareTo() metódust úgy implementálja, hogy az aktuális fagylalt példány gombócainak a darabszámát a paraméterként megkapott fagylalt példány gombócainak a számával hasonlítsa össze növekvő rendezettséget figyelembe véve!
  3. Írja meg a Fagylalt osztály kiírGombócokSzámaSzerintRendezve() nevű statikus metódusát úgy, hogy az a paramétereként megkapott tömb fagylaltjait az őket alkotó gombócok darabszáma szerint növekvő sorba rendezze, majd a rendezett tömb elemeit kiírja a standard kimenetre!
  4. Írja meg a Fagylalt osztály kiírGombócNevekHosszainakÖsszegeSzerintRendezve() nevű statikus metódusát úgy, hogy az a paramétereként megkapott tömb fagylaltjait az egyes fagylaltokat alkotó gombócok neveinek hosszait összegezve növekvő sorba rendezze, majd a rendezett tömb elemeit kiírja a standard kimenetre!

Példa bemenet

  1. tutti-frutti;karamell;vanília
  2. pisztácia
  3. tutti-frutti;vanília;karamell;rumos dió;kávé
  4. vanília;pisztácia
  5. eper;eper;eper;eper
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. tutti-frutti, karamell, vanília
  2. pisztácia
  3. tutti-frutti, vanília, karamell, rumos dió, kávé
  4. vanília, pisztácia
  5. eper, eper, eper, eper
  6. pisztácia
  7. vanília, pisztácia
  8. tutti-frutti, karamell, vanília
  9. eper, eper, eper, eper
  10. tutti-frutti, vanília, karamell, rumos dió, kávé
  11. pisztácia
  12. vanília, pisztácia
  13. eper, eper, eper, eper
  14. tutti-frutti, karamell, vanília
  15. tutti-frutti, vanília, karamell, rumos dió, kávé
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.