Informations
    Actualités & évènements
      Loading...

      Bistromathique (Tech 1)

      15.04.06

      But du projet : faire un programme capable d’afficher le résultat de l’évaluation d’une expression arithmétique composée d’entiers de taille infinie exprimés dans une base quelconque.

      La bistromathique est le premier projet que réalisent les étudiants de première année, juste après la piscine (période d’intégration à l’école). Ce sera aussi pour eux leur premier projet à réaliser en binôme et ce en deux semaines.

      Les étudiants doivent concevoir une calculette, permettant le calcul de nombres infinis, et ce avec la plus grande rapidité de fonctionnement possible.

      La notation de ce projet se fait en deux parties, pour un total de 20 points. La première note, sur 10, est évaluée sur des tests de fonctionnement du programme. La seconde note (sur 10), est mise en fonction d’un classement effectué sur la rapidité des bistromatiques sur l’ensemble de la promotion d’après le modèle suivant :

      Le premier groupe ayant la bistromathique la plus rapide aura 10/10, les deux groupes suivants : 9/10, les trois suivants : 8/10… Pour pouvoir accéder à ce classement, il est impératif de passer la première étape et de rendre un résultat correct sur la seconde.

      Principe de fonctionnement :

      Ce programme reçoit les paramètres suivants :

      • l’expression arithmétique : expression mathématique pouvant comporter une infinité d’opérations, de priorités et de nombres infinis (allant jusqu’à 100 000 digits pour les tests de notation).
      • la liste des opérateurs utilisés : ()+-*/%
      • la base dans laquelle est exprimée les nombres à calculer : exemples, base 2 (binaire 0 et 1), base 10 (décimal 0123456789) ou encore base 16 (hexa décimal 0123465789ABCDEF)

      Ainsi la bistromatique doit gérer les opérateurs “+-*/%” ainsi que leurs priorités de calcul comme les parenthèses ainsi que les erreurs de syntaxe. Seuls des nombres entiers peuvent être rentrés (pas de nombre à virgule possible).

      Ce programme doit être écrit en langage C (à la norme).