Déduction du Résultat d’une Expression Arithmétique
description
Transcript of Déduction du Résultat d’une Expression Arithmétique
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 1/12
Déduction du Résultat
d¶une ExpressionArithmétique
Programme en Pascal
Mohamed Ennahdi El Idrissi
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 2/12
I. Introduction
Entre la période Juillet ± Août 2005, je me suis posé des questions sur le fonctionnement d¶une calculatrice.
Alors, j¶ai décidé de réaliser un programme qui permet à l¶utilisateur defournir des données (opérateurs et opérandes) pour obtenir le mêmerésultat que celui d¶une calculatrice (simple).
Ce programme permet de faire des calculs en utilisant une expression
arithmétique fournit par l¶utilisateur et stockée dans une chaîne decaractères.
Pour cela, ce programme : Accepte l¶introduction de plusieurs opérandes (réel ou entier,
positif ou négatif) et plusieurs opérateurs (unaires ou binaires) dansl¶expression.
Utilise les parenthèses qui offrent la possibilité de distribuer la priorité des opérations à effectuer.
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 3/12
II. Grandes Lignes
1. La chaîne à traiter
a- la saisie:
L¶utilisateur est invité à saisir l¶expression arithmétique désirée interprétéecomme chaîne de caractères par le programme.Le programme de lecture de la chaîne permet :
� D¶insérer, de supprimer ou d¶ajouter un caractère;� De parcourir la chaîne;� De fournir que des chiffres et des opérandes;
La saisie se termine en appuyant sur µ=µ ou bien sur Entrée <;
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 4/12
II. Grandes Lignes (suite)
1. La chaîne à traiter (suite)
b- L¶analyse de l¶Expression:
Le programme de saisie ne peut forcer l¶utilisateur à tapez une expressioncorrecte, puisque le nombre de combinaisons possible est gigantesque, pour ne pas dire illimité.
L¶une des façons les plus simples est d¶analyser l¶expression après la finde la saisie.
Si l¶expression n¶a pas de sens, (un opérateur à la fin, 2 opérateurs qui sesuivent, expression ayant un opérateur ou parenthèse ouvrante à la fin«), lasaisie ne se termine pas: il doit donc corriger l¶erreur avant de valider.
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 5/12
Exemple:
ERREUR
La saisie ne se terminera pas car c¶est une expression
syntaxiquement fausse (opérateur de plus), et qu¶ilfaut corriger avant de pouvoir continuer.
II. Grandes Lignes (suite)
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 6/12
2. Exploitation de la chaîne saisie
1.1. Cas généralCas général
Le parcours de la chaîne se fait depuis la fin, puisqu¶il s¶agitd¶éléments insérés. Cela permet d¶obtenir l¶ordre naturel deséléments importés depuis la chaîne de caractères, et donc,l¶exploitation des éléments dans les listes se fera dans l¶ordre voulu,et le résultat ne risque pas d¶être ambiguë.
Le parcours de la chaîne principale se fait tant que l¶indice deséléments de la chaîne n¶a pas encore atteint le 1er élément. Le
traitement de stockage (des opérateurs et opérandes) commence désqu¶un opérateur est rencontré.
L¶opérande se trouvant avant l¶opérateur en question estconverti en tant que réel, après être stocké dans une chaînetemporaire, et puis inséré dans la liste des opérandes.(Voir schémaci-dessous)
II. Grandes Lignes (suite)
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 7/12
List
opérateur Tête + - +
Liste
opérandeTête 1 2 1 5
Dernier élément inséré 1er élément inséré
Schéma Explicatif : Procédure de MàJ des Listes
Chaînées (opérandes et opérateurs).
Chaîne pr incipale:
Dernier élément inséré 1er élément inséré
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 8/12
b) Cas particulier b) Cas particulier(Les Parenthèses)
Lorsqu¶on rencontre une parenthèse fermante, on fait appel à une
chaîne temporaire qui lui est affecté une sous chaîne, qui exclue la
parenthèse fermante et ouvrante(1ére parenthèse fermante et dernière
parenthèse ouvrante).On initialise 2 têtes de 2 listes temporaires différentes, et on fait un
appel récursif de la fonction en cours d¶exécution.
( Voir Schéma ci-dessous)
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 9/12
W=1+2-(3+(2*(4+5)/3)+2*4)-1
X=3+(2*(4+5)/3)+2*4
Y=2*(4+5)/3
Z=4+5
Y=2*Z/3
X=3+Y+2*4
W=1+2-X-1
Schéma Descriptif Montrant les Différentes Etapes de
Calcul Grâce aux Parenthèses (ce schéma explique le rôle des
parenthèses)
Etat initiale
Appel récursifN°1
Appel récursifN°2
Appel récursifN°3
Fin de l·appel
récursif N°3,retour durésultat déduispour Z dans W
Fin de l·appelrécursif N°2,retour durésultat déduispour Y dans Z
Résultat finalDéduis dans Y
Z
Y
X
W
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 10/12
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 11/12
2) Division par Zéro
La division par zéro n¶est pas une erreur syntaxique, mais
interrompe d¶une façon brutale l¶exécution du programme.
Pour éviter tout cela, le programme lui-même affichera un
message d¶erreur, et permettra à l¶utilisateur de corriger l¶erreur
avant de continuer .
Le message d¶erreur généré est
5/6/2018 Déduction du Résultat d’une Expression Arithmétique - slidepdf.com
http://slidepdf.com/reader/full/deduction-du-resultat-dune-expression-arithmetique 12/12
A suivre«