Programozó versenyek

Magas szintű programozási nyelvek 1, egyéni verseny, 2012. április 22.

2012. április 22. 10:15 – 2012. április 22. 15:15

Hisztogramkészítés

Írj programot, amely kvízpontszámok egy gyűjteménye alapján előállít egy, a kollekció gyakoriságeloszlását ábrázoló hisztogramot. A kvízpontszámok a [0;20] zárt intervallumba esnek.

A bemenet specifikációja

Az első sor egy n pozitív egész számból áll, amely a feldolgozandó kollekciók számát adja meg. Minden kollekciót kettő vagy több sor ír le. Az első sor m-et, az adott kollekcióban található kvízpontszámok számát tartalmazza (m > 0). A többi sorban maguk a kvízpontszámok szerepelnek soronként 20 pontszámmal, egészen az utolsó sorig, amelyben annyi pontszám lesz, amennyit m 20-szal való osztása után kapunk maradékul.

A kimenet specifikációja

A kvízpontszámok minden kollekciójára a programnak egy hisztogramot kell a kimenetre írnia, amely megmutatja, hogy nullától húszig az egyes értékek milyen gyakorisággal fordulnak elő az adott kollekcióban.

A hisztogramot az alábbi példa kimeneten látható formában kell megjeleníteni. Ez azt jelenti, hogy csak azokat a kvízpontszámokat kell feltüntetni a hisztogramon, amelyek a legkisebb és a legnagyobb feljegyzett pontszám közé esnek, beleértve a két szélsőértéket is. (Az első példában ez a tíztől tizenkilencig terjedő intervallum.) A hisztogramban tölts fel szóközökkel minden fehér karaktert, még az egyes sorok végén is, hogy a hisztogram minden sora azonos hosszúságú legyen!

Minden hisztogramhoz pontosan k + 3 sort kell kiírni, ahol k a különböző kvízpontszámok előfordulásainak a maximuma. Ennek oka, hogy k csillag van a legmagasabb oszlopban, egy sor tartalmazza a skálát (kötőjelekkel és „+” jelekkel), egy sor a kvízpontszámokat, végül egy üres sor, amely elválasztja a hisztogramot a következőtől.

Példa bemenet

  1. 2
  2. 22
  3. 10 12 16 12 10 19 19 19 12 14 13 14 14 16 17 14 15 13 18 15
  4. 15 17
  5. 5
  6. 20 4 12 12 17
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1.              *               
  2.        *     *  *           *
  3.  *     *  *  *  *  *  *     *
  4.  *     *  *  *  *  *  *  *  *
  5. -+--+--+--+--+--+--+--+--+--+
  6. 10 11 12 13 14 15 16 17 18 19
  7.                          *                        
  8.  *                       *              *        *
  9. -+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
  10.  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.