Algorithmie et de programmation

Pages: 41 (10126 mots) Publié le: 29 décembre 2011
TP1 d’algorithmie et de programmation
Objectif du TP :

L’objectif de ce TP est de réaliser, à l’aide du logiciel Eclipse, le programme d’un analyseur syntaxique.

Analyse de l’énoncé :

Comme son nom l’indique, ce programme pourra lire des caractères entrés au clavier, les analyser et en conséquence, il affichera un résultat. Pour ce TP, le programme examinera uniquement des règlespropres au jeu de l’oie. Ces règles suivent une syntaxe prédéfinie qui est la suivante :
-chacune des règles commence obligatoirement par le signe « > ».
-ce signe est suivi d’un nom en minuscule. Il décrit une case du jeu de l’oie. Par exemple : auberge, puits, dé, bourse, casino …
- un seul espace «  », sépare le nom du mode d’action.
-le mode d’action est un caractère qui définira la règle decette case. Trois caractères sont autorisés : (d)éplacement, (j)eton, (p)rison.
-le mode est complété par un entier positif ou négatif. Il est donc nécessaire de connaître le signe et la valeur de cet entier.
-chaque règles se termine par le caractère « . ».

On s’attend donc à avoir la syntaxique suivante et les résultats correspondants :
>auberge p-3. Résultat : Vous devez passer 3tours.
NB : on remarque que p est toujours suivi d’un entier négatif.
>bourse j+10. Résultat : Vous gagnez 10 jetons.
>casino j-8. Résultat : Vous perdez 8 jetons.
>puits d-2. Résultat : Vous reculez de 2 cases.
>puits d+4. Résultat : Vous avancez de 4 cases.
NB : l’analyseur ignorera le nom de la case, il veillera juste à ce que les caractères soient en minuscule.Première approche de la programmation :

Le programme sera sensible au caractère « > », au mode, au signe et à la valeur de la règle. Ce qui impose de lire la règle caractère par caractère. En fonction de ces données, il affichera un des résultats vu précédemment. Si la règle n’est pas correctement écrite, le programme renverra un message d’erreur. On a comme contrainte, d’interdire l’usage destableaux et des chaînes de caractères.
Le programme se déroulera en plusieurs étapes, le fait d’en valider une permettra de passer à la suivante. Si une erreur est détectée, on passera directement par une étape spéciale permettant d’afficher le message d’erreur. Les étapes sont décrites ci-dessous :
-étape n°1 : vérification du caractère « > ».
-étape n°2 : analyse du nom et de l’espace.-étape n°3 : analyse du mode.
-étape n°4 : analyse du signe de l’entier.
-étape n°5 : analyse de la valeur de l’entier.
-étape n°6 : traitement des données et affichage du résultat.
-étape n°7 : affichage d’un message d’erreur.

Argumentation de l’algorithme proposé :

On va exposer la programmation étape par étape  de la méthode Analyse() de la classe Analyseur.

Au début de ce TP, lefait d’utiliser plusieurs étapes dans la programmation de la méthode supposait l’utilisation d’un switch étant lui-même inclus dans un système de boucle à répétition (do while) afin de permettre une analyse progressive des caractères saisis au clavier.
On a donc commencé par créer les attributs START, MODE, SIGNE, VALEUR, FIN et ERREUR qui seront associés à des états. Ces états correspondrontaux cases du switch, et à l’algorithme des étapes 2 à 7.

Etape 1 :

Cette étape consiste à reconnaître le premier caractère tapé. C’est à ce moment que l’on créée le caractère « c » qui prendra la valeur du résultat de la méthode readChar() de la classe Keyboard. Ce caractère sera examiné et s’il est différent de « > », la variable « etat » du switch sera configuré de manière à appliquerl’étape 7. Dans le cas contraire, on appliquera l’étape 1. Dans les deux cas, on entre dans la boucle répétitive et dans le switch.

Etape 2 :

On commence par refaire appel à la méthode readChar()pour connaître le nouveau caractère à examiner. Si ce caractère est une lettre minuscule, on refait un tour dans l’étape 2 (« etat » ne change pas de valeur). Si le caractère est un espace, on...
Lire le document complet

Veuillez vous inscrire pour avoir accès au document.

Vous pouvez également trouver ces documents utiles

  • algorithmie
  • programmation
  • Programmation en c
  • Programmation
  • Programmation
  • Programmation C
  • Programmation
  • Programmation

Devenez membre d'Etudier

Inscrivez-vous
c'est gratuit !