Je veux faire une calculatrice de nombres rationnelle, mais je ne sais pas comment négliger certains caractères. Par exemple, si le programme doit calculer l'expression "2/9 + 9/3" et la réponse devrait être sous forme non simplifiée, comment négliger "/" dans l'expression ci-dessus tout en prenant des entrées?Calculatrice de nombre rationnel
Répondre
Je pense que vous devez définir une syntaxe/analyseur qui connaît les nombres rationnels. Pour votre entrée d'exemple que vous souhaitez retrouver avec un arbre d'analyse syntaxique tenant quelque chose comme ceci:
add(rational(2, 9)
rational(9, 3))
Ensuite, vous écririez le code qui connaît les différents trucs utilisés lors du calcul avec rationals, de sorte que le code mise en œuvre du add
opération peut, par exemple, vérifier le greatest common divisor de ses arguments d'entrée, et transformer les nombres à ajouter.
Dans ce cas, il serait probablement réécrire les arguments pour être rational(2, 9)
et rational(27, 9)
, puis faire l'addition, se terminant ainsi par rational(29, 9)
.
Vous pourriez avoir une fonction séparée qui simplifie, cela peut simplifier le retour à 3+rational(2, 9)
.
- 1. Calculatrice d'affranchissement pour PHP
- 2. PHP Calculatrice de score de spam?
- 3. Création d'une calculatrice simple en C
- 4. IDE pour la programmation HP Calculatrice?
- 5. Calculatrice Clojure GUI. "-" renvoie toujours 0 et "/" renvoie toujours 1
- 6. Comment réparer et refactorisons ce script calculatrice JavaScript/JQuery
- 7. PHP: Nombre de Nombre de tableaux dans SESSION
- 8. j2me Nombre de threads
- 9. Oracle - Nombre de varchar
- 10. Nombre de touches
- 11. nombre unique de colonnes?
- 12. Nombre de combinaisons possibles
- 13. Formule mathématique ne donnant pas la même réponse en C# qu'en excel, ou à la calculatrice
- 14. Nombre Nombre d'avertissements et d'avertissements PHP
- 15. Nombre de connexions DB ouvert
- 16. Nombre élevé de connexions persistantes
- 17. Mesure du nombre de cycles
- 18. Le nombre de chaînes() Méthode
- 19. augmentant le nombre de lecture
- 20. Nombre de classes dans .NET?
- 21. nombre de plusieurs tableaux multidimensionnels
- 22. Gérer le nombre de visiteurs
- 23. Nombre de requêtes dans SQL
- 24. format de nombre dans oracle
- 25. nombre d'article retourné de .grep $()
- 26. ASP.net C# nombre de SQL (*)
- 27. Comment obtenir le nombre de secondes entre deux DateTimes dans Ruby on Rails
- 28. Déterminer le nombre de résultats de ViewData
- 29. Nombre de copies de rapports rapides
- 30. Nombre de tableaux compte 1 de trop
Quel langage de programmation? – unwind
Je ne vois pas le problème ici ... si vous travaillez avec des nombres fractionnaires, l'opérateur de division/devient l'indicateur de fraction, c'est-à-dire que toute division est en fait une conversion en une fraction. –
Jetez un coup d'oeil au module de fraction inclus dans Python 2.6 –