Programozó versenyek

Magas szintű programozási nyelvek 2, 2015. január 5., H13 ZH

2015. január 5. 13:20 – 2015. január 5. 16:20

Antikvár könyvek

Írjon programot, amely az első parancssori argumentumaként megadott szöveges állományból könyvek adatait olvassa be állományvégjelig! Egy könyv jellemzői: (1) a címe, (2) a szerzői (vigyázat, több is lehet, de az is előfordulhat, hogy egy sincs!) és (3) a kiadási éve. Ezek a következő formában szerepelnek egy-egy feldolgozandó sorban:

[[<szerző>;]…<szerző>;]<cím>;<kiadási_év>

ahol a szerzők és a cím sztringek, a kiadási_év pedig egy pozitív egész szám. A sztringek egyike sem tartalmaz pontosvessző karaktert, a pontosvessző karakterek csak a sor egyes elemeinek az elválasztására szolgálnak. Két könyvet akkor tekintünk azonosnak, ha a kiadási évük kivételével minden adatuk (még a szerzőiknek a sorrendje is!) megegyezik egymással.

A programja írja a standard kimenetre minden könyv legrégebbi kiadásának az adatait a példa kimenetben megadott módon, a könyveket kiadási év szerint növekvő sorrendbe rendezve! Ha több olyan könyv is lenne, amelyet ugyanabban az évben adtak ki, akkor ezek a könyvek a szerzők száma szerint csökkenő sorrendben jelenjenek meg a kimeneten! Ha még ez a tulajdonsága is megegyezne kettő vagy több könyvnek, akkor címeik szerint rakja őket ábécérendbe! További szempontokat nem kell a rendezésnél figyelembe vennie.

Példa szöveges állomány

  1. Gardonyi Geza;Egri csillagok;2011
  2. Biblia;2010
  3. Vamos Miklos;A csillagok vilaga;2010
  4. Gardonyi Geza;Egri csillagok;2002
  5. Ramez Elmasri;Shamkant B. Navathe;Fundamentals of Database Systems;2010
  6. Agatha Christie;Halal a Niluson;2010
letöltés szöveges állományként

A példa szöveges állományhoz tartozó kimenet

  1. Gardonyi Geza: Egri csillagok (2002)
  2. Ramez Elmasri, Shamkant B. Navathe: Fundamentals of Database Systems (2010)
  3. Vamos Miklos: A csillagok vilaga (2010)
  4. Agatha Christie: Halal a Niluson (2010)
  5. Biblia (2010)
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.