Oefenvragen

 

Hieronder staan twee voorbeeldvragen: ze geven je een idee van de vragen die je tijdens de wedstrijd mag verwachten. Eentje is gemakkelijk, de andere is eerder moeilijk.


(1) Ascii-art (gemakkelijk)

 

Schrijf een programma dat een ascii-art figuur laat zien op het scherm. De grootte van de figuur is de invoer voor je programma: het is een geheel getal strikt tussen 0 en 100 (dus 0 en 100 niet inbegrepen). Hieronder staan wat figuren voor verschillende gegeven groottes. Je moet zelf de correcte manier vinden om voor andere groottes de juiste figuur op het scherm te toveren.

 

Voorbeelden

 

Invoer:

1

Uitvoer:

  ***
  * *
*** ***
*     *
*** ***
  * *
  ***

 

Invoer:

2

Uitvoer:

    ***
    * *
  *** ***
  *     *
***     ***
*         *
***     ***
  *     *
  *** ***
    * *
    *** 

 

Invoer:

3

Uitvoer:

      ***
      * *
    *** ***
    *     *
  ***     ***
  *         *
***         ***
*             *
***         ***
  *         *
  ***     ***
    *     *
    *** ***
      * *
      ***

 

Meer uitleg: De ascii-art figuur moet afgedrukt worden op de standaard uitvoer. De uitvoer mag een of meer lege regels bevatten voor en na de regels van de eigenlijke figuur. De regels van de figuur zelf bestaan enkel uit spaties (geen tabs), het karakter * en newline. Op het einde van elke regel mogen een willekeurig aantal spaties staan. Het aantal spaties aan het begin van de regel is van belang: het meest linkse * karakter staat tegen de linker marge en wordt niet voorafgegaan door een spatie.



(2) Polyominos (moeilijk)

 

Dominoblokjes hebben twee vierkantjes, en de blokjes uit tetris - genaamd tetrominos - hebben er vier: het zijn speciale gevallen van polyominos. In het algemeen is een polyomino een figuur die bestaat uit N vierkantjes die aan elkaar hangen doordat de vierkantjes een zijde gemeenschappelijk hebben.

Voor N = 2 bestaat er essentieel maar een polyomino (een domino dus), namelijk

Je denkt misschien dat

een andere domino is, maar je krijgt die figuur door de vorige te draaien over 90 graden, en dus is dat eigenlijk geen nieuwe.

Voor N = 4 zijn er 7 verschillende tetrominos:

De opdracht: Schrijf een programma dat bepaalt hoeveel verschillende polyominos er zijn voor een gegeven N. Twee polyominos zijn verschillend indien ze niet door een draaiing van 90 of 180 graden in elkaar kunnen getransformeerd worden.

 

De invoer is een geheel getal N in [1,10], dus inclusief 1 en 10. De output is een geheel getal.

 

Voorbeelden:

 

Invoer:

2

Uitvoer:

1

 

Invoer:

4

Uitvoer:

7



Andere programmeerwedstrijden

 

Vragen van andere programmeerwedstrijden vind je op onderstaande websites: ze zijn meestal moeilijker dan wat wij voor je in petto hebben en kunnen dus dienen als oefenmateriaal.