Listák …


(
Beadandó feladatok
Programozásmódszertan 2. félévéhez,
2006 tavasza
)


Általános tudnivalók

o       A feladatok lényege: megfelelő típusok, adatszerkezetek használata.

o       A feladat szövegéből kiderül, hogy milyen adatszerkezet van a középpontban (pl. lán­coltan ábrázolt lista). Ettől nem szabad eltérni!

o       A feladatokban rendszerint előfordul valamilyen felsorolási típus, amelyet szintén, mint típust, meg kell valósítani saját beolvasó és kiíró műveleteivel együtt. Ugyanez vonat­kozik a dátum, az idő (stb. „speciális”) típusokra is. Az input-formátumra vonatkozó elvárásokat a feladatok példái egyértelműen mintázzák.

o       Cél a kijelölt típusok (minél inkább) feladatfüggetlen megvalósítása. Ez elsősorban az „elkülönített formába öntöttséget”, különálló file-ba foglalását jelenti. Kapcsolat persze van a „fő” program és a típust megvalósító modul között: a modul paraméterei (befelé irányuló) és szolgáltatásai (kifelé irányuló).

o       Mivel a program kódja legalább kettő (de inkább több) file-ra osztva alkot egy egészet, lényeges, hogy ezek együttese ne keveredjen más célú file-okkal, azaz a korábban meg­kívánt file-struktúra létrehozása és figyelembevétele most még inkább indokolt.

<\         -- a gyökérben a futtatási környezet (EXE + adatfile-ok)
0\FORRAS\ -- PAS programállomány + UNIT/INCLUDE forrásállományok
0\DOKU\   -- DOC-állományok

o       A program a szükséges input-adatokat elsősorban file-okban várja (bár olykor-olykor bizto­sítani kell a „kézi” paraméterezhetőséget is), ezért az input-file-ok szerkezetére rótt elvá­rások tiszteletben tartása alapvető feltétele a kipróbálásnak, az érdemi értékelésnek.

o       A teszteléshez „generált” file-ok a gyökérkönyvtárban legyenek, ott ahol az exe-állo­mány van. Nyilván ezekre történik utalás a dokumentáció teszteléssel foglalkozó részé­ben. Elvárás, hogy a feladat szempontjából lényeges esetekhez tartozzon egy-egy teszt­adatsor. (Ha az exe mellett nincs adatállomány vagy csak 1-2 árválkodik, akkor ezt annak jeleként értékeljük, hogy a program nem igazán lett kipróbálva.

 A beadandó feladat beadásáról ():

1.      a meghatározott formai feltételeknek eleget nem tevő dolgozatokat nem értékelünk (azt újra be kell adni helyesen; azonban a határidő nem módosul);

2.      a beadás e-mail-ben történik a papne@ludens.elte.hu címre(ennek dátuma a meghatározó); az e-mail tárgya legyen: Feladatsorszám+„Beadandó”; a dokumentációt ettől függetlenül papíron is beadhatja (ami azonban nem helyettesíti az e-mailt-és beadást!), ekkor kaphat részletes értékelést munkájáról;

3.      Beadási határidő: április 30. 24 óra.

4.      késedelmes beadás esetén a jegyet hetente 1 jeggyel csökkentjük;

 

 


1.     Labor-foglaltság vizsgálata kétirányú, dinamikusan láncolt listával.

A laborok heti elfoglaltságát az alábbi szerkezetű elemeket tartalmazó kétirányú, dinamikusan láncolt lis­tába foglalva tároljuk:

Típus

  TLaborFoglaltságok=Lista(TLaborFoglaltság)
  TLaborFoglaltság=Rekord(Nap:TNap, Mettől,Meddig:TIdő,
                          Ki:TSzak),
  TNap=(Hétfő,Kedd,Szerda,Csütörtök,Péntek,Szombat,
        Vasárnap,Foglalt) [az előadáson taglalt felsorolástípus]
  TSzak=(Info, Prog, LC, Met, Fiz) [ez is felsorolástípus]
  TIdő=Rekord(óra,perc:Egész)

Laboronként külön-külön listát vezet a foglaltságról. A listákban TNap, s azon belül TIdő szerint rendezve vannak a foglaltsági adatok. Módosítsa a listákat új, file-ból jövő bejegyzé­sekkel. (Kezdetben üresek a listák.) Azaz ha eddig még szabad időpontra vonatkozó igény jött, illessze be; ha részben vagy egészbenfoglalt a megjelölt időintervallum, akkor az ütközéseket egy másik listába fűzze, mégpedig úgy, hogy kerüljön be a teljesíthetetlen igény, mögé pedig azok az elemek, melyek megakadályozzák, ezekben a nap helyén a Foglalt konstans szerepeljen. Az ütközések is laboronként vannak nyilvántartva. Az ütközéseket tartalmazó lista típusa az előzőeknek megfelelően TlaborFoglaltságok. Kérésre jelenítse meg a heti elfoglaltságát egy adott labornak, és az ütközések adatait (mely időpontban, mely foglaltságok alapján nem teljesíthető az igény).

A bemenet:

o       teremigénylések sorozata szöveges file-ban – az igénylés-file egy eleme a file 5 egymás­utáni sorában:

  labor:TLabor
  nap:TNap
  mettől:TIdő
  meddig:TIdő
  szak:TSzak

Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell be­olvasni/kiírni; feltételezhető a hibátlanság. Az eddig nem definiált Tlabor típus:

  TLabor=(PC1,PC2,PC3,PC5,PC5,MM,Grafika,MS) [ez is felsorolástípus]

A TIdő típus input-szintaxisa: Egész+SZÓKÖZ+Egész

Példa – két igénylés az input-file-ból:

PC1
HÉTFŐ
7 0
9 45
INFO

Egy PC1-es igénylés…

PC2
PÉNTEK
12 15
16 30
PROG

… és egy másik …

o       Klaviatúra input: egy laborazonosító, amelyik labor teremfoglaltsági állapotot kéri kiírni.


2.     Cégvezetők elfoglaltságainak kezelése statikusan láncolt listával, programfajta figye­lembe vételével.

Egy cég néhány vezetőjének közeljövőbeli (két adott dátum közötti) elfoglaltságait az alábbi szerkezetű elemeket tartalmazó statikusan láncolt listába foglalva tároljuk:

Típus

  TElfoglaltságok=Lista(TElfoglaltság)
  TElfoglaltság=Rekord(
     Ki:TNév, Nap:TDátum, Mettől:TIdő, Perc:Egész,
     Ok:TProgram),
  TProgram=(Megbeszélés,Előadás,Ebéd,Party)
  TDátum=Rekord(év,hó,nap:Egész)
  TIdő=Rekord(óra,perc:Egész)

Vezetőnként külön-külön listát kell vezetni a foglaltságról. A listában Nap: TDátum, s azon belül Mettől:TIdő szerint rendezve vannak a foglaltsági adatok. Építse föl a listákat a file-ból jövő program-kérések alapján. Ha eddig még szabad időpontra vonatkozó programajánlat jött, illessze be a megfelelő –időrendbeli– helyre. Ha azonban részben vagy egészbenfoglalt a megjelölt időintervallum, akkor „fontosságuk” szerint szüntesse meg az érintett összes foglaltságot (ha mindegyiknél fontosabb igény érkezett), és helyettesítse az újjal, vagy utasítsa vissza az igényt. A fontos­sági sorrend a legfontosabbal kezdve: Megbeszélés..Party. Az esetleg visszautasította­kat (vagy „kitúrtakat”) egy másik listába fűzze! Írja ki az elfoglaltságát minden vezetőnek, és a visszautasított elfoglaltság-igénylések adatait! A visszautasítottak is vezetőnként külön-külön listában vannak, egy visszautasított lista típusa ezeknek megfelelően: TElfoglaltságok.

A bemenet:

o       elfoglaltsági igénylések sorozata szöveges file-ban érkezik – az igénylés-file egy eleme a file 6 egymásutáni sorában:

  vezető:TVezetőNév  [akire vonatkozik az igénylés]
  partner:TNév  [az igénylő]
  nap:TDátum  [amikorra vonatkozik: tetszőleges!!]
  mettől:TIdő
  perc:Egész  [mettől hány percet kér]
  ok:TProgram  [milyen jellegű az elfoglaltság]

Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell be­olvasni/kiírni, de feltételezhető a hibátlanság. Az eddig nem definiált típusról a követke­zőket kell tudni:

Típus

  TVezetőNév=(Kiss Feri, Tóth Jani, Angyal Gábor)
  [ez is felsorolástípus, lehetnek persze más
   nevek is]

Példa –igénylés az input-file-ból:

Kiss Feri
Nagy Tamás
1999 12 31
23 0
59
MEGBESZÉLÉS

Egy igénylés…


3.     Szótár-vizsgálat –dinamikusan láncolt listák átszervezése

A kétnyelvű szótárak –leegyszerűsítve– tekinthetők szópárok listájának, ahol az első szó a tárgynyelv (pl. angol) szava, a második pedig a célnyelvé (pl. magyar). Természetesen előfor­dulhat, hogy egy szónak több párja is van. Ez azt jelenti, hogy ugyanaz a szó több párosítás­ban is szerepel. Feltehető, hogy a szó (mind a tárgy, mind a célnyelvi „oldalon”) egyetlen szó­ból áll, hossza nem haladja meg a 20 karaktert. Gyakran előfordulnak azonos alakú, de külön­böző szófajú szavak (pl. ír – ige, ír – jelző), ezek megkülönböztethetősége érdekében a szópár mellett közöljük a szófajt is.

Beolvasva a szópárokat és a szófajokat, amelyeket az input 3 egymást követő sora tartalmaz, építsen fel egy dinamikusan láncolt listát (a „bemeneti szótárat”). Majd szervezze át dinamikusan a szótárat („szócikk-tár”) úgy, hogy egy szócikkbe sorolja azokat a célszavakat, amelyeknek azonos a tárgyszava. (Például, ha előfordul a szótárban az (ír, writes) és az (ír, Irish) szópár, akkor ők együtt alkotnak egy szócikket: ír ® writes, Irish. Ez tehát egy célszó-lista lesz.) Írja ki a szócikkbe szervezett szótárat a képernyőre lapozottan, táblázatosan!

A dinamikusan határozóval arra utaltam, hogy amint egy célszóval végzett, máris megszünteti a bemeneti listában, s így mindig a lehető legkevesebb helyet igényli a programja.

Konstans Maxtszó= ??

Típus
  TBeSzótár=Lista(TBeSzópár)
  TBeSzópár=Rekord(tSzó,cSzó:Szöveg, szófaj:TSzófaj)
  TSzófaj=(Ige, Főnév, Határozó, Jelző) [felsorolástípus]
  TSzócikktár=Tömb(1.. Maxtszó: TSzócikk)
  TSzócikk=Rekord(tSzó:Szöveg, cSzavak:TCélszavak)
 
TCélszavak=Lista(TCélszó)
  TCélszó=Rekord(cSzó:Szöveg, szófaj:TSzófaj)

A bemenet:

o       a szópárokat tartalmazó text-file:

  tárgyszó:Szöveg

  célszó:Szöveg

  szófaj:TSzófaj
 

Természetesen a szófaj beolvasása a TSzófaj típus ’Be:’ műveletével végzendő el!

A kimenet:

o       Szócikk-tár:

  tárgyszó -> célszó1 (szófaj1)
              célszó2 (szófaj2)
             
 

Ügyeljen a képernyő fenti „strukturáltságára”! Természetesen a szófaj kiírása a TSzófaj típus ’Ki:’ műveletével végzendő el!

 


4.     Régészeti relikviák vizsgálata – kétirányú statikusan láncolt listák fajták szerinti szétválogatása

Egy ásatáson gyűjtött tárgyakról feljegyzik: a fajtáját (korsó, tányér stb.), épségét (százalék), anyagát (ami bizonyos alapanyagok halmazát jelenti) és becsült korát.

Olvassa be egy kétirányú statikusan láncolt listába, majd fajtánként válogassa szét külön dinamikusan láncolt egyirányú listákba. E listákat írja ki a képernyőre rendezetten és lapozottan!

A fajta-listák rendezését épség szerint csökkenően végezze el.

Típus
  TrTárgyak=Lista(TrTárgy)
  TrTárgy=Rekord(fajta:TFajta,épség:Egész [százalék],
                 anyag:TAnyag,kor:Egész)
 
TFajta=(Korsó,Tányér,Kés,Kard,Tőr,Pohár,Egyéb)
  TAnyag=Halmaz(TAlapanyag)
  TAlapanyag=(Bronz,Vas,Réz,Agyag,Ón,Szövet,Más)

A fenti felsorolás és halmaz típusokat önálló modulokban kell megvalósítania. Természe­tesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/ki­írni; feltételezhető a hibátlanság.

A bemenet:

o       A tárgyakat tartalmazó text-file:

  Tárgyak száma
  Fajta1
  Épség1
  Anyag11 + vessző + Anyag12 + …
  Kor1

  Fajta2
  Épség2
  Anyag21 + vessző + Anyag22 + …
  Kor2
 

A kimenet:

o       A tárgyak fajták szerinti listája:

  Fajta1
  * Épség11 , Kor11
    Anyag111 , Anyag112
  * Épség12 , Kor12
    Anyag121 , Anyag122
 
  Fajta2
  * Épség21 , Kor21
    Anyag211 , Anyag212
 

Ügyeljen az elválasztójelekre (csillag, vessző)!


5.     Borpince –dinamikusan láncolt listák szétválogatása

Egy borpincészet a borairól feljegyzi a következő adatokat: fajta (vörös, fehér, rozé), megne­vezése, borvidék (Alföldi, Badacsonyi, Egri, Mátrai, Móri, Soproni, Tokaji, Villányi), évjárat, cukortartalom, szesztartalom.

Olvassa be egy dinamikusan láncolt listába, majd válogassa szét a szerint, hogy mely évtizedbe sorolandó az adott bor. A szétválogatást a nagyszámú listára való tekintettel dinamikusan kell elvégeznie. E listákat írja ki a képernyőre fajták szerint rendezve, lapozottan!

A dinamikusan határozóval arra utaltam, hogy amint egy borral végzett, máris szüntesse meg a bemeneti listában, s így mindig a lehető legkevesebb helyet igényli a programja.

Határozza meg, hogy az egyes évtizedekbe hány bor tartozik, továbbá az átlagos cukorfokot (szintén évtizedenként)!

Típus
TPincészet=Lista(TBor)
TBor=Rekord(fajta:TFajta,név:Szöveg,vidék:TVidék,
   évjárat:Egész,cukor,szesz:Valós [
tömegszázalék])
TFajta=(vörös,fehér,rozé)
TVidék=(Alföldi, Badacsonyi, Egri, Mátrai, Móri,
        Soproni, Tokaji, Villányi)

A fenti felsorolás típusokat önálló modulokban kell megvalósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       Minden borfajtához 6 sor tartozik. A borokat tartalmazó text-file:

Fajta1
Megnevezés1
Vidék1
Évjárat1
Cukor1
Szesz1

 

A kimenet:

o       A borok évtizedenkénti listája:

  Évtized-kezdet1 - Évtized-vég1
  * Megnevezés11 , Fajta11
    Vidék11 , Évjárat11 , Cukorfok11 , Szeszfok11
  * Megnevezés12 , Fajta12
    Vidék12 , Évjárat12 , Cukorfok12 , Szeszfok12
 
  Évtized-kezdet2 - Évtized-vég2
  * Megnevezés21 , Fajta21
    Vidék21 , Évjárat21 , Cukorfok21 , Szeszfok21
 

Ügyeljen az elválasztójelekre (csillag, vessző)!

o       A borok évtizedenkénti jellemzése (borok száma, átlag-cukorfok):

Évtizedkezdet1 - Évtizedvég1 * borszám1 * átlcukor1
Évtizedkezdet2 - Évtizedvég2 * borszám2 * átlcukor2
 


6.     Labor-foglaltság vizsgálata kétirányú, láncolt listával, órafajták figyelembe vételével.

A laborok heti elfoglaltságát az alábbi szerkezetű elemeket tartalmazó kétirányú, láncolt lis­tába foglalva tároljuk:

Típus

TLaborFoglaltságok=Lista(TLaborFoglaltság)
TLaborFoglaltság=Rekord(Nap:TNap,
      Mettől,Meddig:TIdő, Ki:TSzak, Fajta:Tfajta)
TNap=(Hétfő,Kedd,Szerda,Csütörtök,Péntek,Szombat,
  Vasárnap) [az előadáson taglalt felsorolástípus]
TSzak=(Info,Prog,LC,Met,Fiz) [ez is felsorolás]
TFajta=(Egyszeri,Reguláris,Modul,Speci)
TIdő=Rekord(óra,perc:Egész)

Laboronként külön-külön listát vezet a foglaltságról. A listában TNap, s azon belül TIdő szerint rendezve vannak a foglaltsági adatok. Módosítsa a listákat új, file-ból jövő bejegyzé­sekkel. (Kezdetben üresek a listák.) Azaz ha eddig még szabad időpontra vonatkozó igény jött, illessze be; ha részben vagy egészbenfoglalt a megjelölt időintervallum, akkor „fon­tossága” szerint szüntesse meg az érintett összes foglaltságot (ha az összesnél fontosabb), és helyettesítse az újjal, vagy utasítsa vissza az igényt. A fontossági sorrend a legfontosabbal kezdve: Egyszeri.. Speci. Az esetleg visszautasítottakat egy másik listába fűzze! Ide kerülnek azok a foglaltságok is, amiket megszüntetett egy fontosabb igény érkezése miatt. Kérésre jelenítse meg a heti elfoglaltságát egy adott labornak, és az arra a laborra vonatkozó, visszautasított igénylések adatait. A visszautasítottakat tartalmazó lista típusa az előzőeknek megfelelően TlaborFoglaltságok.

A bemenet:

o       teremigényelések sorozata szöveges file-ban – az igénylés-file egy eleme a file 6 egymás­utáni sorában:

  labor:TLabor
  nap:TNap
  mettől:TIdő
  meddig:TIdő
  szak:TSzak
  fajta:TFajta

Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell be­olvasni/kiírni; feltételezhető a hibátlanság. A Tlabor típus a következő:

TLabor=(PC1,PC2,PC3,PC5,PC5,MM,Grafika,MS) [ez is felsorolástípus]

A TIdő típus input-szintaxisa: Egész+SZÓKÖZ+Egész

Példa – igénylés az input-file-ból:

PC1
HÉTFŐ
7 0
9 45
INFO
REGULÁRIS

Egy igénylés…

o       Klaviatúra input: egy laborazonosító, amikori, és amelyik labor teremfog­laltsági állapotát és az addig visszautasítottak listáját kéri kiírni.


7.     Üdülések nyilvántartása dinamikusan láncolt listákkal.

Egy üdülőhelyről a cég az üdülési adatokat az alábbi módon tárolja dinamikusan láncolt listákban:

Típus

  TÜdülőHely=Lista(TSzoba)
  Tszoba= Rekord(Szobaszám:Egész, Méret:Egész)
  Tnyaralók=Lista(TNyaraló) [nyaralási idő szerint rendezve]
  TNyaroló=Rekord(Ki:TNév, fő:Egész,
                  Mettől:TDátum, NapDb:Egész)
  TDátum=Rekord(év,hó,nap:Egész).

Az üdülő szobái listájának létrehozása egy text-file-ból jövő adategyüttes alapján történik. Az alábbi adatok tartalmazzák, hogy milyen szobái vannak:

  Szobaméret: egész

  Db:egész

  Szobaszámok: db darab szobasorszám

Példa – üdülő file:

1

3
1 10 20

1 ágyas szobából 3 van: ezek az 1 10 és 20-as szobák.

2

10
2 3 4 5 6 11 12 13 14 15

2 ágyas szobából 10 van: ezek a 2 3 4 5 6 11 12 13 14 és 15-ös szobák.

Ezen adatokkal létrehozhatók az üres szobák. A valós nyaralási igényléseket szintén egy text-file tartalmazza, amelyek alapján megpróbáljuk feltölteni nyaralókkal az üdülőházat. E file szerkezete (soronkénti bontásban);

  név:TNév [a megrendelő]
  mettől:TDátum
  napDb:Egész
  fő:Egész [az igényelt ágyak száma]

Példa – nyaralási igények :

Hamari Húgó
2006 5 31
7
3

A Hamari család nyaralási megrendelése, amely 3 fő el­helyezését kéri május 31.-ével kezdve 7 na­pon át.

Pénz Elek
2006 7 13
5
2

Pénzes házaspár. július 13.-ától 5 napig. nyaralna

 

Ha valakinek az igénye nem teljesíthető (nincs pontosan annyi személyes szabad szoba a kívánt időpontban), akkor az igény átkerül a visszautasítottak közé. A visszautasított megrendeléseket egy külön listában halmozzuk föl. Kérésre jelenítse meg az érvényes szoba-foglaltsági adatokat szobánként dátum szerint rendezve, és a visszautasított igénylések adatait.


8.     Szótár-vizsgálat – statikusan láncolt listák átszervezése

A kétnyelvű szótárak –leegyszerűsítve– tekinthetők szópárok listájának, ahol az első szó a tárgynyelv (pl. angol) szava, a második pedig a célnyelvé (pl. magyar). Természetesen előfor­dulhat, hogy egy szónak több párja is van. Ez azt jelenti, hogy ugyanaz a szó több párosítás­ban is szerepel. Feltehető, hogy a szó (mind a tárgy, mind a célnyelvi „oldalon”) egyetlen szó­ból áll, hossza nem haladja meg a 20 karaktert. Gyakran előfordulnak azonos alakú, de külön­böző szófajú szavak (pl. ír – ige, ír – jelző), ezek megkülönböztethetősége érdekében a szópár mellett közöljük a szófajt is.

Beolvasva a szópárokat, amelyeket az input két egymást követő sora tartalmaz, felépít egy statikusan láncolt listát (a „bemeneti szótárat”), majd szervezze át a szótárat („szócikk-tár”) úgy, hogy egy szócikkbe sorolja azokat a szavakat, amelyek „összetartoznak”. (Például, ha előfordul a szótárban az (ír, writes) és az (ír, Irish) szópár, akkor ők összetar­toznak, együtt alkotnak egy szócikket: ír ® writes, Irish. Ez tehát egy olyan szó-lista lesz, amelynek első szava a tárgyszó, a többiek a hozzátartozó célszavak.) Írja ki a szócikkbe szervezett szótárat a képernyőre lapozottan, táblázatosan!

Típus

  TBeSzótár=Lista(TBeSzópár)
  TBeSzópár=Rekord(tSzó,cSzó:Szöveg, szófaj:TSzófaj)

  TSzófaj=(Ige,Főnév,Határozó,Jelző,NemDef) [felsorolástípus]
  TSzócikktár=Lista(TTárgyVagyCélszó)
              [Típusinvariáns:
l:TSzócikktár | Hossz(l)>1
               
az első elem a tárgyszó]
  TTárgyVagyCélszó=Rekord(szó:Szöveg, szófaj:TSzófaj)
                   [
tárgyszó esetén a szófaj=NemDef]

A bemenet:

o       a szópárokat tartalmazó text-file:

  tárgyszó:Szöveg

  célszó:Szöveg

  szófaj:TSzófaj
 

Természetesen a szófaj beolvasása a TSzófaj típus ’Be:’ műveletével végzendő el!

A kimenet:

o       Szócikk-tár:

  tárgyszó -> célszó1 (szófaj1)
              célszó2 (szófaj2)
             
 

Ügyeljen a képernyő fenti „strukturáltságára”! Természetesen a szófaj kiírása a TSzófaj típus ’Ki:’ műveletével végzendő el!

 


9.     Régészeti relikviák vizsgálata – dinamikusan láncolt listák szűrése

Egy ásatáson gyűjtött tárgyakról feljegyzik: a fajtáját (korsó, tányér stb.), épségét (százalék), anyagát (ami bizonyos alapanyagok halmazát jelenti) és becsült korát.

Olvassa be az adatokat egy dinamikusan láncolt listába, majd fajtánként válogassa szét egy-egy kor szerint rendezett listába, majd írja ki a képernyőre lapozottan!

A dinamikusan határozóval arra utaltam, hogy amint egy tárggyal végzett, máris szüntesse meg a bemeneti listában, s így mindig a lehető legkevesebb helyet igényli a programja.

Határozza meg, hogy az egyes fajtáknak mennyi az átlagkora és átlagosan hányféle alapanyagból készültek!

Típus
  TrTárgyak=Lista(TrTárgy)
  TrTárgy=Rekord(fajta:TFajta,épség:Egész [százalék],
                 anyag:TAnyag,kor:Egész)
 
TFajta=(Korsó,Tányér,Kés,Kard,Tőr,Pohár,Egyéb)
  TAnyag=Halmaz(TAlapanyag)
  TAlapanyag=(Bronz,Vas,Réz,Agyag,Ón,Szövet,Más)

A fenti felsorolás és halmaz típusokat önálló modulokban kell megvalósítania. Természe­tesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/ki­írni; feltételezhető a hibátlanság.

A bemenet:

o       A tárgyakat tartalmazó text-file:

  Tárgyakszáma
  Fajta1
  Épség1
  Anyag11 + vessző + Anyag12 + …
  Kor1

  Fajta2
  Épség2
  Anyag21 + vessző + Anyag22 + …
  Kor2
 

A kimenet:

o       A tárgyak fajták szerinti listája (átlag kora és átlag alapanyag száma):

  Fajta1 # átlagkor1 # átlagalapanyagszám1
  * Épség11 , Kor11
    Anyag111 , Anyag112 +
  * Épség12 , Kor12
    Anyag121 , Anyag122 +
 
  Fajta2 # átlagkor1 # átlagalapanyagszám2
  * Épség21 , Kor21
    Anyag211 , Anyag212 +
 

Ügyeljen az elválasztójelekre (kettős kereszt, csillag, vessző)!


10.  Borpince – statikusan láncolt listák összefuttatása

Borpincészetek a boraikról feljegyzik a következő adatokat: fajta (vörös, fehér, rozé), megne­vezése, borvidék (Alföldi, Badacsonyi, Egri, Mátrai, Móri, Soproni, Tokaji, Villányi), évjárat, cukortartalom, szesztartalom.

Olvassa be statikusan láncolt listákba 2 megadott pincészet nyilvántartását, majd rendez­ze ezeket borvidék szerint! E listákat írja ki a képernyőre lapozottan! Ezek után összefuttatással készítsen egy olyan listát, amelybe az előbbi listák elemei kerülnek és ezt is írja ki a képernyőre szintén lapozottan!

Típus
TPincészet=Lista(TBor)
TBor=Rekord(fajta:TFajta,név:Szöveg,vidék:TVidék,
              évjárat:Egész,cukor,szesz:Valós [
tömegszázalék],
TFajta=(vörös,fehér,rozé)

TVidék=(Alföldi,Badacsonyi,Egri,Mátrai,Móri,Soproni,Tokaji,Villányi)

A fenti felsorolás típusokat önálló modulokban meg kell valósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       A pincészet nyilvántartását tartalmazó file-ok azonosítása (klaviatúra-input):

  File-név1
  File-név2

o       Egy pincészet nyilvántartását tartalmazó text-file :

1. sor:  Borok száma + szóköz + pincészet neve
2. sor:  Fajta1 + vessző + Megnevezés1 + vessző + Vidék1 + Évjárat1 + vessző + Cukor1 + vessző + Szesz1
3. sor:  Fajta2 + vessző + Megnevezés2 + vessző + Vidék2 + Évjárat2 + vessző + Cukor2 + vessző + Szesz2
  

A kimenet:

  * Pincészet neve1 Megnevezés1 , Fajta1
    Vidék1 , Évjárat1 , Cukorfok1 , Szeszfok1
  *
Pincészet neve2 Megnevezés2 , Fajta2
    Vidék2 , Évjárat2 , Cukorfok2 , Szeszfok2
 

Ügyeljen az elválasztójelekre (csillag, vessző)!


12.  Ünnepek nyilvántartása kétirányú, láncolt listákkal.

Nemzeti és családi ünnepeink dátumait egy kétirányú, láncolt, ciklikus listában tároljuk, idő­rendi sorrendben.

Típus

TÜnnepek=Lista(TÜnnep)
TÜnnep=Rekord(Mikor:TDátum, Fajta:TFajta,
                Megjegyzés:Szöveg [pontosítás])
TDátum=Rekord(év,hó,nap:Egész)
TFajta=(Születésnap,Névnap,Szilveszter,Húsvét…).

Építsük föl a dátum szerint rendezett listát text-file-ból olvasott adatok alapján. A file rendezetlenül tartalmazza az ünnepeket. A bemeneti file alábbi szerkezetű:

mikor:TDátum      [az ünnep időpontja]

fajta:TFajta      [ünnep megnevezése]

megjegyzés:Szöveg [pontosítás: Anya (szülinapja)]

Példa – ünnep file :

2006 4 18
HÚSVÉT

Április 18. = Húsvét

Megjegyzés nincs, helyette üres a sor!

2006 1 1
SZILVESZTER

Január 1. = Szilveszter

Megjegyzés nincs, helyette üres a sor!

2006 12 25
SZÜLETÉSNAP
Anya

December 25. = Anya születésnapja

Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell be­olvasni/kiírni, de feltételezhető a hibátlanság.

Legyen mód arra, hogy egy adott dátumhoz kilistázzuk azon ünnepeket, amelyek a dátum 8-napos környezetébe esnek (előre és vissza)! A dátumot klaviatúráról (akár ismétlődően) kéri a program:

Egy példa – klaviatúra-input:

2006 3 22

2006. 03 22. „környéki” lista-kérés

Tegyük lehetővé az alábbi karbantartó műveletek végrehajtását:

1.      adott ünnep törlése (azon ünnepekre vonatkozik, amelyekre teljesül a megadott minta),

2.      új ünnep fölvitele (ha ilyen megjegyzésű volt már, akkor visszakérdezni, hogy cserélni kell, vagy újként beilleszteni),

Ez utóbbi funkciók végrehajtását egy karbantartó file vezérli, amely tartalmazza, hogy milyen funkciót kell végrehajtani, s egy ünnepminta, amely egy „komplett” ünnep­megadás a fentebb tisztázott szintaxissal.

Példa – karbantartó file :

TÖRLÉS
2006 4 18
HÚSVÉT
*

Töröljük az „egykori” Húsvé­tot.

ÚJ
2006 4 17
HÚSVÉT

Új ünnepként regisztráljuk a Húsvétot.

A karbantartó file nevét –természetesen– klaviatúráról kéri be (feltéve, hogy a felhasználó igényli).


14.  Borpince – láncolt listák szétválogatása

Egy borpincészet a borairól feljegyzi a következő adatokat: fajta (vörös, fehér, rozé), megne­vezése, borvidék (Alföldi, Badacsonyi, Egri, Mátrai, Móri, Soproni, Tokaji, Villányi), évjárat, cukortartalom, szesztartalom.

Olvassa be egy láncolt listába, majd válogassa szét fajtánként külön-külön listába, dinamiku­san. E listákat borvidék szerint növekvően rendezze, majd írja ki a képernyőre, lapozottan!

A dinamikusan határozóval arra utaltam, hogy amint egy borral végzett, máris megszünteti a bemeneti listában, s így mindig a lehető legkevesebb helyet igényli a programja.

Határozza meg, hogy az egyes fajtáknak melyik a legidősebb bora, továbbá, hogy mekkora az átlagos cukortartalma (szintén fajtánként)!

Típus
  TPincészet=Lista(TBor)
  TBor=Rekord(fajta:TFajta,név:Szöveg,vidék:TVidék,
          évjárat:Egész,cukor:Valós [
tömegszázalék])
 
TFajta=(vörös,fehér,rozé)
  TVidék=(Alföldi, Badacsonyi, Egri, Mátrai, Móri,
          Soproni, Tokaji, Villányi)

A fenti felsorolás típusokat önálló modulokban kell megvalósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       A borokat tartalmazó text-file :

1. sor:  Borok száma
2. sor:  Fajta1 + vessző + Megnevezés1 + vessző + Vidék1 + vessző + Évjárat1 + szóköz + Cukor1
3. sor:  Fajta2 + vessző + Megnevezés2 + vessző + Vidék2 + vessző + Évjárat2 + szóköz + Cukor2
 

A kimenet:

o       A borok fajták szerinti listája:

  Fajta1
  * Megnevezés11 , Vidék11
    Évjárat11 , Cukorfok11
  * Megnevezés12 , Vidék12
    Évjárat12 , Cukorfok12
 
  Fajta2
  * Megnevezés21 , Vidék21
    Évjárat21 , Cukorfok21
  * Megnevezés12 , Vidék12
    Évjárat22 , Cukorfok22
 

Ügyeljen az elválasztójelekre (csillag, vessző)!

o       A borok fajták szerinti jellemzése (legidősebb bor, átlag-cukorfok):

Fajta1 * legidősebb bor megnev.1 * átlagcukorfok1
Fajta2 * legidősebb bor megnev.2 * átlagcukorfok2
 

Ügyeljen az elválasztójelekre (csillag)!


15.  Talált Tárgyak Osztálya – láncolt listák szétválogatása kategóriák szerint

A Talált Tárgyak Osztályán (TTO) az egyes tárgyakról feljegyezték a következőket: azonosí­tószám, kategória (ruházat, háztartási, szórakoztató, ékszer, irat, egyéb), megtalálás és vissza­adás dátuma, érték. Ha nem jelentkezett még a gazdája érte, akkor a visszaadás dátuma: 0.0.0.

Olvassa be láncolt listába a TTO nyilvántartását, majd rendezze kategóriák szerint! A rendezett kategória-listát írja ki a képernyőre lapozottan! Ezután válogassa szét külön listákba az egyes kategóriákat! A szétválogatást dinami­kusan kell elvégeznie.

A dinamikusan határozóval arra utaltam, hogy amint egy talált tárggyal végzett, máris szün­tesse meg az eredeti listában, s így programja mindig a lehető legkevesebb helyet igényli.

Határozza meg, hogy hány tétel tartozik az egyes kategóriákba, s melyik a legértékesebb az egyes kategóriákban!

Típus
  TTTO=Lista(TTT)
  TTT=Rekord(azonosító:Egész,kategória:TKategória,
         megtalálás,visszaadás:TDátum,érték:Egész)
 
TKategória=(Ruházat, Háztartási, Szórakoztató,
              Ékszer, Irat, Egyéb)

  TDátum=Rekord(év,hó,nap:Egész)

A fenti felsorolás típusokat önálló modulokban meg kell valósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       A TTO nyilvántartását tartalmazó text-file : minden tárgyhoz 3 sor tartozik

1.sor: azonosító1 + szóköz + érték1 + szóköz + kategória1
2.sor: Mév1 pont Mhó1 pont Mnap1
3.sor: Vév1 pont Vhó1 pont Vnap1
 

A kimenet:

o       A rendezett kategória-lista :

  Kategória1
  * Azonosító11 , Érték11
    Mév11 . Mhó11 . Mnap11 , Vév11 . Vhó11 . Vnap11
  * Azonosító12 , Érték12
    Mév12 . Mhó12 . Mnap12 , Vév12 . Vhó12 . Vnap12
 

  Kategória2
  * Azonosító21 , Érték21
    Mév21 . Mhó21 . Mnap21 , Vév21 . Vhó21 . Vnap21
  * Azonosító22 , Érték22
    Mév22 . Mhó22 . Mnap22 , Vév22 . Vhó22 . Vnap22
 

 Kategória1 # darabszám1 # Azonosító1leg1 # Érték1leg1
 Kategória2 # darabszám2 # Azonosító2leg2 # Érték2leg2

A leg1 és a leg2 … indexek az 1., a 2. … kategória legértékesebb elmének indexét je­lölik.

Ügyeljen az elválasztójelekre (kettős kereszt, csillag, pont, vessző)! Üres kategóriát nem kell megjelenítenie.


16.  Cégvezetők elfoglaltságainak kezelése kétirányú, láncolt listával, fontosság figyelembe vételével.

Egy cég néhány vezetőjének közeljövőbeli elfoglaltságait az alábbi szerkezetű elemeket tartalmazó kétirányú, láncolt listába foglalva tároljuk:

Típus

TElfoglaltságok=Lista(TElfoglaltság)
TElfoglaltságok=Rekord(Nap:TDátum, Mettől,Meddig:
              TIdő, Ki:TNév,Fontosság:TFontosság),
TDátum=Rekord(év,hó,nap:Egész)
TIdő=Rekord(óra,perc:Egész)
TFontosság=(VIP,Normál,Halasztható).

Vezetőnként külön-külön listát kell vezetni a foglaltságról. A listában Nap:TDátum, s azon belül Mettől:TIdő szerint rendezve vannak a foglaltsági adatok. Módo­sítsa a listákat új, file-ból jövő bejegyzésekkel. (Kezdetben üresek a listák.) Azaz ha eddig még szabad időpontra vonatkozó igény jött, illessze be; ha részben vagy egészbenfoglalt a megjelölt időintervallum, akkor utasítsa vissza az igényt. A fontossági sorrend a legfonto­sabbal kezdve: VIP..Halasztható. Az esetleg visszautasítottakat egy másik listába fűzze! Kérésre jelenítse meg egy adott személy egy megadott dátumot követő egy heti elfoglaltságát, és az addig hozzá érkezett, de visszautasított elfoglaltság-igénylések adatait is. A visszautasított igények is Telfoglaltságok típusú listában legyenek tárolva.

A bemenet:

o       elfoglaltsági igénylések sorozata szöveges file-ban adott, az igénylés-file egy eleme a file 6 egymás utáni sorában található:

vezető:TVezetőNév
nap:TDátum [amikorra vonatkozik: tetszőleges!!!]
mettől:TIdő
meddig:TIdő
partner:TNév
fontosság:TFontosság

Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell be­olvasni/kiírni, de feltételezhető a hibátlanság. Az eddig nem definiált típusról a követke­zőket kell tudni:

  TVezetőNév=(Nagy Pista, Tóth Laci, Orosz Ede)
      [ez is felsorolástípus, tetszőleges nevek]

Példa –igénylés az input-file-ból:

Nagy Pista
2001 3 8
23 0
23 59
Bende István
VIP

Egy igénylés…

o       Klaviatúra input: egy dátum(amit követő egy hét) és egy vezető neve(aki) elfoglaltsági állapotát, és az addig visszautasítottak listáját kéri kiírni.

Egy példa – klaviatúra-input:

2001 3 7
Tóth Laci

Egy állapotkérés…


17.  Szótár-vizsgálat – statikusan láncolt listák rendezése

A kétnyelvű szótárak –leegyszerűsítve– tekinthetők szópárok listájának, ahol az első szó a tárgynyelv (pl. angol) szava, a második pedig a célnyelvé (pl. magyar). Természetesen előfor­dulhat, hogy egy szónak több párja is van. Ez azt jelenti, hogy ugyanaz a szó több párosítás­ban is szerepel. Feltehető, hogy a szó (mind a tárgy, mind a célnyelvi „oldalon”) egyetlen szó­ból áll, hossza nem haladja meg a 20 karaktert. Gyakran előfordulnak azonos alakú, de külön­böző szófajú szavak (pl. ír – ige, ír – jelző), ezek megkülönböztethetősége érdekében a szópár mellett közöljük a szófajt is.

Beolvasva a szópárokat, amelyeket az input két egymást követő sora tartalmaz, építsen fel egy statikusan láncolt listát (szótárat), majd rendezze a tárgynyelvi szó szerint növekvően. Írja ki a rendezett szótárat a képernyőre lapozottan, táblázatosan! Válaszoljon az alábbi kérdésekre:

o       hány szócikket tartalmaz a szótár, ha egynek számítandók azok a párok, amelyben a tárgyszó megegyezik? (Például, ha előfordul a szótárban az (ír, writes) és az (ír, Irish) szópár, akkor ők együtt alkotnak egy szócikket: ír ® writes, Irish.)

o       melyik tárgyszónak van a legtöbb párja?

Típus

  TSzótár=Lista(TSzópár)
  TSzópár=Rekord(tSzó,cSzó:Szöveg, szófaj:TSzófaj)

  TSzófaj=(Ige, Főnév, Határozó, Jelző) [felsorolástípus]

A bemenet:

o       a szópárokat tartalmazó text-file :

  tárgyszó + szóköz + célszó:Szöveg

  szófaj:TSzófaj
 

Természetesen a szófaj beolvasása a TSzófaj típus ’Be:’ műveletével végzendő el!

A kimenet:

o       Rendezett szótár (lapozottan, táblázatosan):

  tárgyszó -> célszó (szófaj)
 
ahány szópár van a szótárban

Ügyeljen arra, hogy a képernyőn a „->” jelek egymás alá essenek!

Természetesen a szófaj kiírása a TSzófaj típus ’Ki:’ műveletével végzendő el!

o       Egyéb szótárjellemzők:

  szócikkek száma
  a legtöbb párral rendelkező tárgyszó

 


18.  Régészeti relikviák vizsgálata – statikusan láncolt listák értéklistája

Egy ásatáson gyűjtött tárgyakról feljegyzik: a fajtáját (korsó, tányér stb.), épségét (százalék), anyagát (ami bizonyos alapanyagok halmazát jelenti) és becsült korát. Egy tárgy értékét a kö­vetkező formulával definiálják: kor*épség.

Hozzon létre egy érték szerint rendezett statikusan láncolt listát, amelyet kiír a képernyőre rendezetten és lapozottan! Állapítsa meg, hogy melyik fajta tárgyból szerepel a legtöbb a nyilvántartásban!

Típus
  TrTárgyak=Lista(TrTárgy)
  TrTárgy=Rekord(fajta:TFajta,épség:Egész [százalék],
                 anyag:TAnyag,kor:Egész)
 
TFajta=(Korsó,Tányér,Kés,Kard,Tőr,Pohár,Egyéb)
  TAnyag=Halmaz(TAlapanyag)
  TAlapanyag=(Bronz,Vas,Réz,Agyag,Ón,Szövet,Más)

A fenti felsorolás és halmaz típusokat önálló modulokban kell megvalósítania. Természe­tesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/ki­írni; feltételezhető a hibátlanság.

A bemenet:

o       A tárgyakat tartalmazó text-file (minden tárgyhoz 4 sor tartozik):

  Fajta1
  Épség1
  Anyag11 + szóköz + Anyag12 + …

  Kor1
  Fajta2
  Épség2
  Anyag21 + szóköz + Anyag22 + …

  Kor2
 

A kimenet:

o       A tárgyak értékszerinti listája:

  Fajta1 = Épség1 , Kor1 (Érték1)
           Anyag11 , Anyag12 +
  Fajta2 = Épség2 , Kor2 (Érték2)
           Anyag21 , Anyag22 +
 

Legtöbb nyilvántartott fajta: Fajtaleg

 


19.  Borpince –kétirányú láncolt listák szétválogatása

Egy borpincészet a borairól feljegyzi a következő adatokat: fajta (vörös, fehér, rozé), megne­vezése, borvidék (Alföldi, Badacsonyi, Egri, Mátrai, Móri, Soproni, Tokaji, Villányi), évjárat, szesztartalom.

Olvassa be egy kétirányú láncolt listába, majd válogassa szét fajtánként külön-külön listába, dina­mikusan. E listákat szesztartalom szerint rendezze, és írja ki a képernyőre, lapozottan!

A dinamikusan határozóval arra utaltam, hogy amint egy borral végzett, máris törölje a be­meneti listából, s így folyamatosan a lehető legkevesebb helyigénnyel dolgozik a programja.

Határozza meg, hogy az egyes fajtáknak melyik a legfiatalabb bora, továbbá, hogy mennyi a fajta átlagos szesztartalma!

Típus
TPincészet=Lista(TBor)
TBor=Rekord(fajta:TFajta,név:Szöveg,vidék:TVidék,
         évjárat:Egész, szesz:Valós [
tömegszázalék])
TFajta=(vörös,fehér,rozé)
TVidék=(Alföldi, Badacsonyi, Egri, Mátrai, Móri,
        Soproni, Tokaji, Villányi)

A fenti felsorolás típusokat önálló modulokban kell megvalósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       A borokat tartalmazó text-file (*.BOR):

1. sor:  Fajta1 + vessző + Megnevezés1 + vessző + Vidék1 + vessző + Évjárat1 + szóköz + Szesz1
2. sor:  Fajta2 + vessző + Megnevezés2 + vessző + Vidék2 + vessző + Évjárat2 + szóköz + Szesz2

A kimenet:

o       A borok fajták szerinti listája:

  Fajta 1
  * Megnevezés11 , Vidék11
    Évjárat11 , Szeszfok11
  * Megnevezés12 , Vidék 12
    Évjárat12 , Szeszfok12
 
  Fajta2
  * Megnevezés21 , Vidék 21
    Évjárat21 , Szeszfok21
  * Megnevezés22 , Vidék 22
    Évjárat22 , Szeszfok22
 

Ügyeljen az elválasztójelekre (csillag, vessző)!

o       A borok fajták szerinti jellemzése (legfiatalabb bor, átlag-szesztartalom):

Fajta1 * legfiatalabb bor megnev.1 * átlag-
                                    szesztartalom1
Fajta2 * legfiatalabb bor megnev.2 * átlag-
                                    szesztartalom2
 

Ügyeljen az elválasztójelekre (csillag, kötőjel)!


20.  Talált Tárgyak Osztálya – kétirányú láncolt listák szétválogatása

A Talált Tárgyak Osztályán (TTO) az egyes tárgyakról feljegyezték a következőket: azonosí­tószám, kategória (ruházat, háztartási, szórakoztató, ékszer, irat, egyéb), megtalálás és vissza­adás dátuma, érték, és a megtaláló valamint a tulajdonos neve. Ha nem jelentkezett még a gazdája érte, akkor a visszaadás dátuma: 0.0.0, a tulajdonos: „ISMERETLEN”.

Olvassa be kétirányú láncolt listába a TTO nyilvántartását, majd növekvően rendezze a tárgy TTO-n töltött ideje szerint úgy, hogy ha még nem került vissza a gazdájához, akkor a mai napot kell visszaadás dátumnak tekinteni! Ezután válogassa szét két listába a visszaadottakat és a még vissza nem adottakat! A két listát írja ki a képernyőre lapozottan! A szétválogatást dinamiku­san kell elvégeznie.

A dinamikusan határozóval arra utaltam, hogy amint egy talált tárggyal végzett, máris szün­tesse meg az eredeti listában, s így programja mindig a lehető legkevesebb helyet igényli.

Határozza meg, hogy hány visszaadott és még nem visszaadott tárgy van, továbbá: melyik a legértékesebb, még a TTO-n található talált tárgy!

Típus
TTTO=Lista(TTT)
TTT=Rekord(azonosító:Egész,kategória:TKategória,
       megtalálás,visszaadás:TDátum,érték:Egész,
       megtaláló,tulajdonos:Szöveg)
TKategória=(Ruházat, Háztartási, Szórakoztató,
            Ékszer, Irat, Egyéb)

TDátum=Rekord(év:1900..2006,hó:1..12,nap:1..31)

A fenti felsorolás és dátum típusokat önálló modulokban kell megvalósítania. Természetesen a fent szereplő adatokat a megfelelő típus ’Be:’/’Ki:’ műveleteivel kell beolvasni/kiírni; feltéte­lezhető a hibátlanság.

A bemenet:

o       A TTO nyilvántartását tartalmazó text-file (minden tárgyhoz 5 sor tartozik):

1. sor:  azonosító1 + szóköz + érték1 + szóköz + kategória1
2. sor:  Mév1 pont Mhó1 pont Mnap1
3. sor:  megtaláló1
4. sor:  Vév1 pont Vhó1 pont Vnap1
5. sor:  tulajdonos1

A kimenet:

o       A rendezett visszaadott és vissza nem adott tárgyak listája (jellemzőkkel):

  Visszaadottak # darabszámva
  * Azonosítóva 1 , Értékva 1
    Mévva 1 . Mhóva 1 . Mnapva 1 - Vévva 1 . Vhóva 1 . Vnapva 1
  * Azonosítóva 2 , Értékva 2
    Mévva 2 . Mhóva 2 . Mnapva 2 - Vévva 2 . Vhóva 2 . Vnapva 2
  Nem visszaadottak # darabszámnva
  * Azonosítónva 1 , Értéknva 1
    Mévnva 1 . Mhónva 1 . Mnapnva 1 - Vévnva 1 . Vhónva 1 . Vnapnva 1
  * Azonosítónva 2 , Értéknva 2
    Mévnva 2 . Mhónva 2 . Mnapnva 2 - Vévnva 2 . Vhónva 2 . Vnapnva 2
  # Azonosítónva leg , Értéknva leg

A leg … index a még nem visszaadottak legértékesebb elmének indexét jelöli. Ügyel­jen az elválasztójelekre (kettős kereszt, csillag, vessző, pont)!