Programozó versenyek

Magas szintű programozási nyelvek 2, 2016. január 5., K14 ZH

2016. január 5. 14:05 – 2016. január 5. 17:35

Vízgyűjtők

Írjon programot, amely meghatározza és a standard kimenetre írja a parancssori argumentumaiként megadott vízgyűjtőkbe (akár közvetlenül, akár közvetetten, más vízgyűjtőkön keresztül) befolyó vízgyűjtők számát! A program a standard bemenetről a következő formában olvassa a feldolgozandó adatokat:

vízgyűjtő[;vízgyűjtő]

Abban az esetben, ha a sor csak egyetlen vízgyűjtő nevét tartalmazza, akkor egy olyan vízgyűjtőről van szó, amely más vízgyűjtők vizét összegyűjtheti ugyan, de ő maga nem folyik bele egyetlen más vízgyűjtőbe sem. Minden más esetben az elsőként megadott vízgyűjtő belefolyik a másodikként megadott vízgyűjtőbe.

A kimenet egyes soraiba a parancssori argumentumokban megadott vízgyűjtők nevét és az általuk – közvetlenül vagy közvetetten – összegyűjtött vízgyűjtők számát kell írni a példa kimenetben megadott formában.

Példa bemenet

  1. Tisza;Duna
  2. Duna;Fekete-tenger
  3. Sió csatorna;Duna
  4. Zala;Balaton
  5. Csendes-óceán
  6. Bodrog;Tisza
  7. Don;Fekete-tenger
  8. Rába;Duna
  9. Dnyeper;Fekete-tenger
letöltés szöveges állományként

Parancssori argumentumok

  1. Duna Amazonas Fekete-tenger Zala
letöltés szöveges állományként

A futtatás eredménye a standard kimeneten

  1. Duna: 4
  2. Amazonas: 0
  3. Fekete-tenger: 7
  4. Zala: 0
letöltés szöveges állományként

A feladat megoldásához felhasználhatja a következő osztályt:

Vizgyujto.java

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. class Vizgyujto
  4. {
  5.     private String nev;
  6.     private List<Vizgyujto> befolyo;
  7.     public Vizgyujto(String nev)
  8.     {
  9.         this.nev = nev;
  10.         this.befolyo = new ArrayList<>();
  11.     }
  12.     public void gyujti(Vizgyujto v) { befolyo.add(v); }
  13.     public String getNev() { return nev; }
  14.     public List<Vizgyujto> getBefolyo() { return befolyo; }
  15.     @Override
  16.     public boolean equals(Object obj)
  17.     {
  18.         return obj instanceof Vizgyujto && nev.equals(((Vizgyujto)obj).nev);
  19.     }
  20.     private int befolyokSzama()
  21.     {
  22.         // ezt a kódot önnek kell megírnia
  23.     }
  24.     @Override
  25.     public String toString()
  26.     {
  27.         return nev + ": " + befolyokSzama();
  28.     }
  29.     public static void main(String[] args)
  30.     {
  31.         // ezt a kódot önnek kell megírnia
  32.     }
  33. }
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.