Oefenvragen

layout

De beste manier om je voor te bereiden is door de vragen van vorige jaren te bekijken:

Hieronder staan nog drie voorbeeldvragen: ze geven je een idee van de vragen die je tijdens de wedstrijd mag verwachten. De eerste twee zijn gelijkaardig en gemakkelijk, de laatste is eerder moeilijk (voor de categorie Masters).

(1) Teken de kerstboom (gemakkelijk)

Schrijf een programma dat een getal N inleest en een kerstboom van grootte N op het scherm uitprint. N is een geheel getal tussen 1 en 100. De kerstboom bestaat uit een kruin en een stam. De kruin bestaat uit N lijnen met telkens een aantal spaties gevolgd door een oneven aantal sterretjes (*): 1, 3, 5, ..., 2*N-1. De stam bestaat uit 2 lijnen met telkens een sterretje dat gecentreerd is ten opzichte van de kruin.
Voorbeelden
Invoer:
1
Uitvoer:
  *
 ***
*****
  *
  *
Invoer:
2
Uitvoer:
   *
  ***
 *****
*******
   *
   *
Invoer:
3
Uitvoer:
    *
   ***
  *****
 *******
*********
    *
    *

(2) Ascii-art (gemakkelijk)

Schrijf een programma dat een ascii-art figuur laat zien op het scherm. De grootte van de figuur is devoer 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 voorandere 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.

(3) Polyominos

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
domino
Je denkt misschien dat
domino
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:
domino

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