UCAnCODE
Tutoriel UCAnCODE
Introduction
Une activité consiste à écrire un programme pour résoudre un problème. Chaque solution, un programme, soumise au juge automatique est appelée un run. Chaque run est accepté ou refusé par le juge.
Les objectifs principaux de ces activités sont les suivants :
- Algorithmique: élaborer des algorithmes pour résoudre des problèmes.
- Programmation: implémenter correctement ces algorithmes.
Ce tutoriel contient un problème guidé déjà résolu (ECHO), puis deux exercices pour lesquels vous devrez modifier la solution du premier problème. Le tutoriel est ouvert à tous. Aucune inscription n’est nécessaire.
Résoudre le problème ECHO
ECHO - Commande echo
Vous allez programmer la fameuse commande echo
pour un vecteur d’entiers : réécrire les entiers depuis l’entrée standard vers la sortie standard. Ce programme est un point de départ pour résoudre d’autres problèmes.
Input
Une séquence d’entiers (au plus 200000) entre 1 et 1000000.
Output
La séquence d’entiers lue en entrée. Afficher un entier par ligne.
Example
Input:
2
10
20
Output:
2
10
20
Récupérer une solution et un cas de test
Des solutions dans plusieurs langages sont disponibles dans ce dépôt github ou directement ci-dessous. Téléchargez un de ces programmes dans un répertoire de travail créé pour l’occasion.
Téléchargez le fichier d’entrée ECHO-03.in contenant les cas de tests dans votre répertoire de travail. Ici, le fichier ECHO-03.in ne contient qu’un seul cas de test, les nombres entiers compris entre 4 et 6.
Tester une solution
Nous allons maintenant exécuter le programme dans un terminal shell. Allez dans le répertoire où vous avez téléchargé les deux fichiers grâce à la commande cd
. Le contenu du fichier ECHO-03.in
va être redirigé sur l’entrée standard pour être lu par notre programme. Notre programme va écrire sur la sortie standard. Vous devez vérifier que la sortie est conforme aux spécifications du problème.
Dans le langage Python 3
python ECHO.py < ECHO-03.in
La commande python
permet d’interpréter le script ECHO.py
.
Dans un terminal powershell sous WINDOWS
L’opérateur de redirection <
n’existe pas encore dans powershell. Il faut donc utiliser une commande équivalente combinant la commande cat
et un tube (pipe en anglais). Par exemple, pour tester un programme en python 3, il faudra taper la commande suivante :
cat ECHO-03.in | python ECHO.py
Dans le langage R
Rscript ECHO.R < ECHO-03.in
La commande Rscript
permet d’interpréter le script ECHO.R
.
Vous avez accès au terminal shell directement depuis RStudio.
L’onglet terminal est à côté de l’onglet console.
Dans le langage C
gcc ECHO.c
./a.out < ECHO-03.in
La commande gcc
permet de compiler notre programme ECHO.c
vers un exécutable a.out
.
Dans le langage Java
javac ECHO.java
java ECHO < ECHO-03.in
La commande javac
permet de compiler notre programme ECHO.java
vers un fichier de bytecode ECHO.class
qui est ensuite interpété par une machine virtuelle Java.
Dans le langage C++
g++ ECHO.cpp
./a.out < ECHO-03.in
La commande g++
permet de compiler notre programme ECHO.cpp
vers un exécutable a.out
.
Dans le langage Racket
racket ECHO.rkt < ECHO-03.in
La commande racket
permet d’interpréter le script ECHO.rkt
.
Écrire un nouveau cas de test
Créez un autre fichier de test dans votre répertoire de travail avec un scénario différent, par exemple une séquence vide (avec zéro nombre). Testez à nouveau votre programme dans le terminal.
Soumettre une solution au problème ECHO
Il faut maintenant soumettre votre programme pour obtenir le verdict du juge.
Moodle (en distanciel)
Vous êtes inscrit à l’université.
- Inscrivez-vous au cours moodle (si nécessaire).
- Allez dans l’onglet « Tutoriel » et cliquez sur l’activité « ECHO ».
- Choisissez le langage, copiez votre programme dans l’éditeur, puis cliquez sur le bouton submit.
PC2 (en présentiel)
Pour le concours semestriel UCAnCODE uniquement.
- Lancez la commande
pc2team.sh &
dans un terminal shell. - Entrez votre login et votre mot de passe.
- Choisissez le problème « ECHO », le langage , sélectionner votre fichier, puis cliquer sur le bouton submit.
- N’appuyez pas sur le bouton test ! Vous devez testez autrement, par exemple dans un terminal shell ;)
Sphere Engine (en distanciel - non inscrit)
Vous n’êtes pas inscrit à l’université. Les résultats ne sont pas comptabilisés dans le contrôle continu.
- Allez sur la page du problème ECHO.
- Choisissez le langage, copiez votre programme dans l’éditeur, puis cliquez sur le bouton submit.
À vous de jouer
Pour résoudre les deux problèmes suivants, vous allez devoir modifier le programme ECHO. Efforcez-vous de bien tester vos programmes avec différentes entrées avant de les soumettre. Cela vous fera gagner du temps et ménagera les juges.
TEST - Life, the Universe, and Everything
Source : TEST - Life, the Universe, and Everything
Votre programme va adopter une approche force brute pour trouver la réponse à the Life, the Universe, and Everything. Plus précisément, vous devez réécrire des petits nombres lus depuis l’entrée standard vers la sortie standard. Vous arrêterez ce traitement à la lecture du nombre 42. Tous les nombres sont des entiers écrits avec un ou deux chiffres.
Example
Input:
1
2
88
42
99
Output:
1
2
88
Sphere Engine
Allez sur la page du problème TEST.
STEST - Sum of Life, the Universe, and Everything
Vous arrêterez maintenant le traitement quand la somme des trois prochains nombres est égale à 42.
Example
Input:
1
2
88
42
99
1
1
40
Output:
1
2
88
42
99
Sphere Engine
Allez sur la page du problème STEST.