Big Java Late Objects
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
Question
Book Icon
Chapter 13, Problem 21PE
Program Plan Intro

Expression Evaluator

Program plan:

Filename: “Evaluator.java”

This code snippet creates a class “Evaluator”. In the code,

  • Define a class “Evaluator”.
    • Declare the class member “tokenizer”.
    • Define a constructor “Evaluator()”.
      • Define “tokenizer”.
    • Define the method “getExpressionValue()”.
      • Set “value”.
      • Declare “done”.
      • While true,
        • Get the token to “next”.
        • If “next” equal to “+” or “-”,
          • Call “nextToken()” to get the token.
          • Define “value2”.
          • If “next” equal to “+”,
            • Evaluate “value”.
          • Else,
            • Evaluate “value”.
        • Else,
          • Set “done” equal to “true”.
              • Return “value”.
    • Define the method “getTermValue()”.
      • Set “value”.
      • Declare “done”.
      • While true,
        • Get the token to “next”.
        • If “next” equal to “*” or “/” or “%”,
          • Call “nextToken()” to get the token.
          • Define “value2”.
          • If “next” equal to “*”,
            • Evaluate “value”.
          • Else if “next” equal to “/”,
            • Evaluate “value”.
          • Else,
            • Set the “value”.
        • Else,
          • Set “done” equal to “true”.
              • Return “value”.
    • Define the method “getExponentiationValue()”.
      • Set “value”.
      • Declare “done”.
      • While true,
        • Get the token to “next”.
        • If “next” equal to “^”.
          • Call “nextToken()” to get the token.
          • Define “value2”.
          • Set the “value”.
        • Else,
          • Set “done” equal to “true”.
              • Return “value”.
    • Define the method “getFactorValue()”.
      • Set “value”.
      • Set the value of “next”.
      • If “next” equal to “^”.
        • Call “nextToken()” to get the token.
        • Define “value”.
        • Call “nextToken()”
              • Else,
                • Set “value”.
              • Return “value”.

Filename: “ExpressionTokenizer.java”

This code snippet creates a class “ExpressionTokenizer”. In the code,

  • Define a class “ExpressionTokenizer”.
    • Declare a string “input”.
    • Declare an integer “start”.
    • Declare an integer “end”.
    • Define a constructor “ExpressionTokenizer()”.
      • Set the value of class members “input”, “start” and “end”.
      • Call “nextToken()”.
    • Define the method “peekToken()”.
      • If the value of “start” is greater than or equal to length of “input”.
        • Return “null”.
          • Else,
            • Return substring of “input”.
    • Define the method “nextToken()”.
      • Set the value of “start” equal to “end”.
      • While “true”,
        • Increment the value of “start” by 1.
          • If the condition is true,
            • Return the value of “r”.
          • If the condition is true,
            • Set “end” equal to “start+1”.
            • While “true”,
              • Increment the “end” by 1.
          • Else,
            • Set “end” equal to “start+1”.
          • Return the value of “r”.

Filename: “expressionCalculator.java”

This code snippet creates a class “expressionCalculator”. In the code,

  • Define a class “expressionCalculator”.
    • Define the “main” method.
      • Define the object of the class “Scanner”.
      • Prompt the user to enter the expression.
      • Scan for the “input”.
      • Define the object of class “Evaluator”.
      • Set the “value”.
      • Print new line.
      • Print the value of “input” and “value”.

Blurred answer
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education