REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON Paix – Travail – Patrie Peace – Wor
REPUBLIQUE DU CAMEROUN REPUBLIC OF CAMEROON Paix – Travail – Patrie Peace – Work – Fatherland --------------- --------------- UNIVERSITE DE YAOUNDE 1 UNIVERSITY OF YAOUNDE 1 Sapientia – Collativa – Cognitio Sapientia – Collativa – Cognitio --------------- --------------- FACULTE DES SCIENCES FACULTY OF SCIENCE B.P. 812 Yaoundé B.P. 812 Yaounde Tél/Fax : (237) 22.23.44.96 Tél/Fax : (237) 22.23.44.96 INF325 : INFORMATIQUE POUR LES MATHEMATIQUES III Noms Matricules 1. KUO FONGUELE Franklin Brice 14C2967 2. KANTCHOUET TCHINDA Armel 14F2268 3. FOKA TAKAMGNO Carlin 14L2485 4. DOYOU NANA DELABOU Bracon Rogerson 15A2021 5. TELLA NGOUDJI Wilrich Harold 15I2278 Coordinateur : M. MOTO MPONG Serge Année académique : 2018/2019 REALISATION D’UNE CALCULATRICE ELECTRONIQUE Rapport de Projet INF325: INFORMATIC FOR MATHEMATICS SCIENCES III Page 2 Sommaire INTRODUCTION 3 I. Rapport technique 3 1. Cahier des charges 3 2. Spécifications fonctionnelles et détaillées 4 3. Tests et validation 7 4. Recette 7 5. Performances 8 6. Difficultés techniques et solutions apportées 8 7. Conclusion et Perspectives 8 II. Rapport de gestion du projet 9 1. Découpage en tâches 9 2. Organisation de l'équipe 9 3. Difficultés rencontrées dans la gestion du projet et solutions apportées 9 III. Apports du projet 9 1. Apports scientifiques et techniques 10 2. Apport sur la formation pédagogique 10 3. Apport personnel 10 Conclusion 10 Bibliographie 11 Rapport de Projet INF325: INFORMATIC FOR MATHEMATICS SCIENCES III Page 3 Introduction Ce document a pour but de présenter et de décrire le déroulement de notre projet d’informatique de l’unité d’enseignement INF325, portant sur la réalisation d’une calculatrice électronique. Ce rapport contient l’ensemble des éléments du projet. D’un point de vue technique tout d’abord, nous présenterons le cahier des charges tel que nous l’avons imaginé, puis les spécifications plus détaillées qui en découlent. Nous décrirons le fonctionnement de notre projet dans son ensemble ainsi que les éléments qui prouvent le bon fonctionnement de celui-ci ainsi que le cycle de développement choisi pour sa réalisation. Pour terminer la partie technique, nous présenterons nos impressions sur le projet concernant les difficultés techniques rencontrées et les perspectives ouvertes. La deuxième partie de ce rapport a pour objectif de présenter la manière dont nous avons géré le projet. Nous présenterons dans un premier temps comment le projet a été découpé en tâches afin de mieux se répartir le travail, puis comment s’est organisé celui-ci au sein de l’équipe. Nous présenterons ensuite le diagramme de Gantt tel qu’il a été établi au début du projet, puis ferons le point sur les difficultés rencontrées, avant de présenter le diagramme de Gantt qui a été effectivement réalisé. La troisième partie a pour objectif de présenter l’ensemble des apports du projet : d’un point de vue technique, gestion de projet, pédagogique, puis personnel. Nous espérons que vous prendrez autant de plaisir à lire ce rapport que nous en avons pris durant tout le déroulement de ce projet. I- Rapport technique 1. Cahier de charges Il nous a été fourni au début du projet un ensemble de taches précises à effectuer. a- Fonctionnalités L’ensemble des fonctionnalités aux quelles l’utilisateur doit avoir accès sont : 1.1 Effectuer des calculs arithmétiques obtenus à dans une chaine de caractères entrée dans le programme ; 1.2 Ajouter des constantes au programme qu’il pourra utiliser dans la suite ; 1.3 Effectuer un rappel mémoire des 3 dernières opérations effectuées ; 1.4 Pouvoir à tout moment réinitialiser sa calculatrice ; Rapport de Projet INF325: INFORMATIC FOR MATHEMATICS SCIENCES III Page 4 b- Schéma global de fonctionnement L’utilisateur dès l’entrée dans le programme se retrouve confronté à un choix. Celui ci le menant à l’une des actions suivantes : Réalisation d’un calcul : le menant à entrer une expression qui sera analysée par le groupe de fonctions d’analyse de chaine renvoyant ainsi un résultat si tout se passe bien (celui si sera mis en mémoire) ou un message d’erreur en cas d’échec d’analyse. Ajout de constantes : permettant à l’utilisateur d’entrer des constantes qu’il utilisera dans la suite. Rappel mémoire : donnant à l’utilisateur la possibilité de voir les 3 dernières opérations que l’utilisateur a entré. Réinitialiser la calculatrice : Sortie du programme : Toutes les actions précédentes ramenant à la demande d’un choix, il est utilisé pour faire cesser l’exécution du programme. Nous allons présenter dans la partie suivante le choix des technologies utilisées ainsi que la solution que nous avons proposé pour répondre au besoin. 2. Spécifications fonctionnelles et détaillées a- Dépendance entre fonctions Le schéma suivant présente les relations de dépendance entre les différentes fonctions. Nous avons tenu compte en partie de ce schéma afin de ne pas perdre de temps. Utilisateur Choix de l’action Ajout de constantes Réalisation d’un calcul : Entrée d’une chaine Rappel mémoire Réinitialiser la calculatrice Analyse de la formule (chaine) Renvoie d’un résultat ou d’une erreur de syntaxe Accès aux derniers calculs en mémoire Sortie du programme Rapport de Projet INF325: INFORMATIC FOR MATHEMATICS SCIENCES III Page 5 A appel B b- Analyse d’une expression La fonction analyse de la chaine a été obtenu à l’aide du l’analyse en structure d’arbre suivante : On lit la chaîne de gauche à droite en se référant à la grammaire des expressions mathématiques et à chaque étape, on lit le caractère suivant (éventuellement un groupe de caractères) pour connaître la prochaine opération à effectuer. Cette action à réaliser est conservée dans la variable Action. On dispose d’autant de sous-programmes que de règles dans la grammaire. Pour des raisons de facilité, ces sous-programmes s’appellent Expression, Terme, Facteur, Atome. Si on se rappelle les règles de la grammaire, on voit que le sous-programme Expression doit faire appel au sous-programme Terme mais également à lui-même. De la même manière, Terme fait appel à Facteur et à lui-même. On remarque que Atome peut faire appel à Expression et à lui-même. Notre analyseur doit être capable de lire des blocs simples comme un nombre, un opérateur, une fonction, ... Il faut donc en plus de faire une lecture caractère par caractère, être capable de donner un sens à une suite cohérente de lettres comme sin ou de chiffres comme 154.5. Cette distinction des éléments fondamentaux est souvent appelée « tokenisation ». Cette tâche est réalisée par les sous-programmes LireReel et LireSymbole. Voyons comment procéder. Si on fait appel à la procédure LireSymbole, celle-ci lit le contenu de formule à la position Pos. Si le contenu est un opérateur comme +, la valeur de Action passe à la valeur correspondant à l’opérateur, ici plus. Si le contenu est une lettre, il faut continuer à lire les lettres suivantes jusqu’à obtenir autre chose qu’une lettre. On doit concaténer les différentes lettres lues pour obtenir un mot. On regarde alors le mot obtenu et on agit en conséquence en modifiant la valeur de Action. Si le contenu est à présent un chiffre, on fait alors appel à la procédure LireReel. On procède à peu près de la même manière qu’avec des lettres, on lit les chiffres un à un et on calcule la valeur du nombre obtenu. Rappelons que placer un chiffre c à la droite d’un nombre x ne contenant pas de partie décimale revient à multiplier ce nombre par 10 et à ajouter c. On aura d`es lors une affectation de la forme x=10 ∗ x + c. Si le nombre contient une partie décimale, ajouter un chiffre c à droite revient à ajouter c/10n pour un n convenable dépendant de la position, donc de la partie déjà lue. La lecture d’un nombre doit modifier Ajout de constantes Lecture sur fichiers en mémoire Ecriture sur fichiers en mémoire Analyse de la chaine pour calcul Rappel memoire Réinitialiser la calculatrice Mémoire du calcul Rapport de Projet INF325: INFORMATIC FOR MATHEMATICS SCIENCES III Page 6 la valeur de Action pour spécifier qu’un nombre vient d’être lu et ce nombre est stocké dans la variable Valeur. Au lancement de notre programme, formule doit contenir la chaîne de caractères à traiter et Pos doit pointer sur le premier caractère de la formule. On fait alors appel une première fois au sous programme LireSymbole. De cette manière Action a pour contenu le type du premier bloc élémentaire lu. On fait à présent appel à Expression pour l’évaluation. Ce sous-programme fait appel à Terme qui lui-même fait directement appel à Facteur, ce dernier faisant appel à Atome (nous rappelons que ce découpage est nécessaire pour respecter l’ordre de priorité des différentes opérations). Dans le sous programme Atome, on agit suivant la valeur de Action. Si l’action décrite par cette variable tombe dans la catégorie définie par la grammaire, on agit en conséquence et dans ce cas, on appelle directement LireSymbole pour aller lire le symbole suivant (dès lors, Action aura été réactualisée pour la prochaine action à effectuer). Si l’action décrite par Action n’est pas dans cette catégorie, on ne fait rien et on quitte ce sous-programme (c’est que l’opération à effectuer est d’un niveau de priorité plus faible). Cette manière de procéder est utilisée à tous les niveaux. Par exemple, uploads/Management/ rapport-de-projet.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 05, 2022
- Catégorie Management
- Langue French
- Taille du fichier 1.1071MB