UCAnCODE

Tutoriel UCAnCODE

Ce tutoriel vous fait découvrir les plateformes utilisées pour les activités de programmation 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.