Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul à partir d'une String

10 avril 2021 à 20:49:32

Bonjour à tous.

Je remercie d'avance ceux qui vont m'aider à résoudre mon problème. Voilà j'ai essayé de créer un petit script question de ne pas m'ennuyer un peu. Mais je suis tombé sur un gros problème. Je n'arrive pas à calculer une expression à partir d'une String tout en conservant l'ordre de priorité. Par exemple je demande à l'utilisateur d'entrer un calcul et quand je reçois par le biais de la classe  java.util.Scanner

j'obtiens une String et maintenant calculer devient un problème. Par exemple je récupère "14+(3*5*(10 - 4*2)/15)" je suis conscient que le résultat c'est 16 mais comment faire pour l'obtenir ? Svp besoin d'aide j'ai beau reflechir aucune idée ne me vient en tête.

-
Edité par Threcamy Scooper 16 avril 2021 à 4:31:31

  • Partager sur Facebook
  • Partager sur Twitter

Découvrir, apprendre, enseigner : des joies qui satisfassent

10 avril 2021 à 21:04:20

Salut,

via des algorithmes :D. Il faut un peu de réflexion le poser sur une feuille. Passer par la notation RPN par exemple.

Et pour gagner du temps je vais t'en donner un algorithme ici

PS: je te laisse éditer le titre pour corriger la faute.

-
Edité par rybla 10 avril 2021 à 21:09:48

  • Partager sur Facebook
  • Partager sur Twitter
12 avril 2021 à 16:39:02

Pour calculer une expression en général tu as trois partie, un opérateur et deux expressions, il te suffit donc de calculer la valeur des deux expressions (note la récursivité ici) et d'appliquer l'operateur sur le résultat, cette partie est plutôt facile a mettre en place. le plus dur est de réussir à créer un parseur capable de prendre le format de ton expression voulu et de générer un arbre avec comme nœuds les operateurs et en feuilles les expressions insécable (les chiffres). 

  • Partager sur Facebook
  • Partager sur Twitter