Le système d'entraînement automatique est un outil pour vous aider à améliorer votre niveau en programmation. Il est ouvert à tous, et bien entendu gratuit. Lisez bien ce qui suit pour bien en comprendre le principe, et en profiter un maximum.
Les problèmes proposés durant les diverses éditions du concours Prologin sont archivés et disponibles sur ce site. Vous pouvez ainsi vous entraîner sur les problèmes des questionnaires et demi-finales passés. Ils sont classés par année et par difficulté : depuis le niveau débutant, à des difficultés bien plus élevées.
L'évaluation d'un exercice, dans le cas où un source est demandé, est faite par notre serveur : le programme est compilé puis testé automatiquement. Il est exécuté une fois par test. Les erreurs possibles sont :
S'il y a une erreur de compilation, la sortie d'erreur du compilateur est affichée.
La sortie produite par votre programme doit correspondre exactement avec le formatage précisé dans chacun des énoncés. Le système de correction compare la sortie de votre programme avec une sortie de référence, caractère par caractère. Le retour à la ligne en fin de dernière ligne n'est pas obligatoire cependant.
Après exécution des tests, un récapitulatif vous est affiché, indiquant les tests réussis et les tests ratés. Pour le premier test raté uniquement, la sortie produite par votre programme est affichée, ainsi que la sortie attendue par le système de correction. L'exercice ne sera validé que lorsque tous les tests seront passés avec succès.
La correction peut prendre plusieurs minutes, donc soyez patient.
Nous fournissons, pour certains langages, des codes sources se chargeant de "découper" correctement les données fournies sur l'entrée standard du programme. Il ne vous reste alors qu'à écrire le corps d'une fonction prenant ces données en paramètre.
Notez qu'il n'est absolument pas obligatoire de les utiliser, mais cela peut se révéler utile dans bien des cas.
Vos programmes sont exécutés sur une machine architecturée autour d'un processeur Intel Code2Duo cadencé à 2,40 GHz, fonctionnant sous une distribution de GNU/Linux.
Pour information, voici la taille en octets des types C et C++ :
char |
1 |
short |
2 |
int |
4 |
long |
4 |
float |
4 |
double |
8 |
L'architecture est de type little endian.
Chaque sujet impose des limites, autant en terme d'utilisation mémoire que de temps d'exécution. Des coefficients sont néanmoins appliqués sur certains langages plus lents à s'exécuter ou plus gourmand en mémoire. Concernant les algorithmes récursifs, notez qu'aucune limitation n'est appliquée sur la taille de la pile.
Pour information, voici les différents compilateurs/interpréteurs utilisés, ainsi que leur version :
-Wextra -Wall -O2 -std=c99-Wextra -Wall -O2-dynamic -O2-w A-XD -Fainitc-optimize+-O
Commentaires
Toujours pas de Python 3.2.2 pour les tests ? Et utilisez-vous l'option -O pour l'amélioration (c'est très relatif.. mais ça peut un peu aider..) lors de l'exécution d'un script Python ?
Geek & Linuxien passionné
http://www.thionnux.fr/
Pourquoi ne pas proposer les deux versions de python, il est maintenant courant de bénéficier des deux sur un système.
Pourquoi n'utilisez -vous pas une version plus récente de Mono.
La 1.2.2.1 date un peu et ca serait bien d'avoir la 1.9.1 ou la 2.0 qui ont quelques bibliothèques supplémentaire :)
Maintenant oui, nous utilisons désormais la version 2.6.7.
Curieux que vous ne compiliez pas le code C/C++ avec une option d'optimisation genre -O2, Beaucoup de candidats doivent pourtant l'utiliser (on m'avait dit qu'il en était aussi ainsi pour les épreuves de france-ioi) et peuvent donc avoir des surprises en soumettant leur code. Par ailleurs, -W est obsolete je crois, c'est -Wextra maintenant.
Nous compilons bien en -O2, je viens de mettre la page à jour.
Le -W et le -Wextra sont effectivement identiques, je vais changer pour utiliser "-Wextra" qui comme le précise la doc de gcc est plus explicite :
This enables some extra warning flags that are not enabled by -Wall. (This option used to be called -W. The older name is still supported, but the newer name is more descriptive.)