Olympiades belges d'Informatique — Règlement des demi-finales
La demi-finale est composée de deux concours distincts, le premier pour
les élèves du secondaire et le second pour les étudiants en première
année du supérieur. Chacune de ces catégories aura un questionnaire distinct.
L'épreuve se passe complètement sur papier et dure trois heures. Les participants
ne doivent se munir que de quoi écrire; des feuilles de brouillon leurs seront
fournies lors de l'épreuve. Les participants sont libres de poser des questions
aux surveillants qui décideront de répondre ou non à la question du participant.
Les participants peuvent répondre aux questions en français, en pseudo-code ou dans
un des langages de programmation autorisés : Java, C, C++, C#, Pascal, Python,
Ruby et PHP. Il est interdit d'utiliser des fonctions provenant de quelque
librairie non-standard que ce soit. En cas de doute, le participant est invité
à se renseigner auprès des surveillants.
Vous trouverez ci-dessous quelques indications sur le type des questions
auxquelles vous serez confrontés durant la demi-finale.
Concours pour le secondaire
Les participants devront résoudre cinq questions, dont trois petites et deux grosses.
Voici les types et les thèmes de ces questions :
- QCM : lire et comprendre un petit algorithme et soit compléter un trou,
soit indiquer ce que calcule l'algorithme ou enfin trouver une erreur.
- Trouver un algorithme pour résoudre un problème contextualisé.
- Donner un algorithme permettant de calculer la valeur d'une expression mathématique.
- Sur base de la définition précise de plusieurs opérations de base, les utiliser
afin de résoudre un problème.
- Fournir un algorithme pour résoudre un problème nécessitant la manipulation d'un tableau.
Concours pour le supérieur
- QCM : lire et comprendre un petit algorithme et soit compléter un trou,
soit indiquer ce que calcule l'algorithme ou enfin trouver une erreur.
- Lire, comprendre et faire une comparaison de différents algorithmes
permettant de résoudre un même problème.
- Lire et comprendre ce que fait un algorithme compliqué, ensuite proposer
une variante de l'algorithme pour soit le rendre plus performant, soit pour
résoudre un problème plus général.
- Sur base d'une spécification précise d'un problème, comprendre le problème,
trouver et définir un algorithme permettant de le résoudre.
- Sur base d'une structure de données expliquées et d'un problème énoncé,
définir un algorithme qui résout ce problème.