Maison >développement back-end >tutoriel php >Comment puis-je créer une calculatrice PHP à l'aide de l'algorithme Shunting Yard ?
Problème :
Vous souhaitez développer une calculatrice PHP qui évalue des calculs algébriques simples expressions saisies par les utilisateurs en notation standard, affichant le processus d'évaluation. Le défi réside dans le calcul efficace de la valeur de l'expression.
Réponse :
Envisagez d'utiliser l'algorithme Shunting Yard pour sa simplicité et son efficacité dans l'évaluation des expressions algébriques.
Expression Définitions :
Créez des classes pour représenter différents éléments de l'expression, tels que des parenthèses, des nombres, des opérateurs, etc. :
class Parenthesis extends TerminalExpression { ... } class Number extends TerminalExpression { ... } class Addition extends Operator { ... } class Subtraction extends Operator { ... } class Multiplication extends Operator { ... } class Division extends Operator { ... } class Power extends Operator { ... }
Implémentation de la pile :
class Stack { protected $data = array(); // ... Methods for pushing, popping, and peeking from the stack ... }
Exécuteur Classe :
La classe exécuteur analyse l'expression à l'aide de l'algorithme Shunting Yard et l'évalue :
class Math { // ... Fields and methods for parsing, running, and evaluating the expression ... }
Exemple :
Voici un exemple d'utilisation de la calculatrice :
$math = new Math(); $answer = $math->evaluate('(2 + 3) * 4'); var_dump($answer); // int(20) $answer = $math->evaluate('1 + 2 * ((3 + 4) * 5 + 6)'); var_dump($answer); // int(83)
Cet exemple couvre le regroupement et l'opérateur priorité. Cependant, vous pouvez personnaliser la mise en œuvre en fonction de vos besoins spécifiques.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!