Vous êtes sur la page 1sur 3

CLASSE Evaluation() DEBUT File de Noeud f FIN METHODE VrificationExpression (chane ch) : Chaine DEBUT

// Ici, on vrifie si un symbole est en dehors de parenthses, cela permet de savoir s'il y a des parenthses // qui englobent l'expression mathmatique. entier i <- 0 // Nombre de parenthses ouvrantes entier parouvr <- 0 // Nombre de parenthses fermantes entier parferm <- 0 // Prsence d'un symbole entier symbole <- 0 // Prsence de parenthses englobantes ou non boolen parenthses <- vrai // Parcours de la chaine TANT QUE i <= ch.getNbElements() FAIRE c <- ch.getCar(i) SI c = "(" ALORS parouvr++ SINON SI c = ")" ALORS parferm++ FIN SI FIN TANT QUE SI parouvr != parferm ALORS Afficher( "Erreur dans l'expression" ) FIN SI parouvr <- 0 parferm <- 0 TANT QUE i <= ch.getNbElements() FAIRE c <- ch.getCar(i) SI c = "(" ALORS SI symbole = 1 ALORS parenthses = faux symbole = 0 FIN SI parouvr++ SINON SI c = "+" OU c = "-" OU c = "*" OU c = "/" ALORS symbole++ SINON SI c = ")" ALORS parferm++ SI symbole = 1 ALORS SI parouvr < parferm

parenthses = faux FIN SI symbole = 0 SI parouvr = parferm ALORS parouvr = 0 parferm = 0 FIN SI FIN SI FIN SI FIN TANT QUE // S'il y a des parenthses englobantes, on les supprimes SI parenthses = vrai ALORS i <- 0 newCh <- "(" TANT QUE i <= ch.getNbElements() FAIRE newCh = newCh + ch.getCar(i) FIN TANT QUE newCh = newCh + ")" FIN SI RETOURNE newCh FIN METHODE CrerNoeuds() DEBUT CLASSE Evaluation() DEBUT entier i <- 0 FIN METHODE Patati( chane ch, Noeud n ) DEBUT chane exp <- "" entier nbEl <- ch.getNbElements() Noeud node <- nouveau Noeud() TANT QUE i <= nbEl FAIRE caractre c <- ch.getCar(i) exp <- exp + c SI c = ")" ALORS n.setFilsGauche(exp) Patati( , n.getFilsDroite() ) FIN SI FIN TANT QUE

Vous aimerez peut-être aussi