
Evaluation of Expression
Program plan:
Filename: “Constant.java”
This program file is used to define a class “Constant”. In the code,
- Define a class “Constant”.
- Define the constructor “Constant()”.
- Set the value of “number”.
- Define the method “value()”.
- Return the value of “number”.
- Define the constructor “Constant()”.
Filename: “Expression.java”
This program file is used to define an interface “Expression”. In the code,
- Define an interface “Expression”.
- Define the method “value()”.
Filename: “Difference.java”
This program file is used to define a class “Difference”. In the code,
- Define a class “Difference”.
- Define the class members “leftOp” and “rightOp”.
- Define the constructor “Difference ()”.
- Set the value of class members.
- Define the method “value()” to calculate the difference of two expression.
- Return the difference.
Filename: “Product.java”
This program file is used to define a class “Product”. In the code,
- Define a class “Product”.
- Define the class members “leftOp” and “rightOp”.
- Define the constructor “Product()”.
- Set the value of class members.
- Define the method “value()” to calculate the product of two expression.
- Return the product.
Filename: “Quotient.java”
This program file is used to define a class “Quotient”. In the code,
- Define a class “Quotient”.
- Define the class members “leftOp” and “rightOp”.
- Define the constructor “Quotient()”.
- Set the value of class members.
- Define the method “value()” to calculate the quotient of two expression.
- Return the quotient.
Filename: “Sum.java”
This program file is used to define a class “Sum”. In the code,
- Define a class “Sum”.
- Define the class members “leftOp” and “rightOp”.
- Define the constructor “Sum()”.
- Set the value of class members.
- Define the method “value()” to calculate the sum of two expression.
- Return the sum.
Filename: “ExpressionTokenizer.java”
This program file is used to define a class “ExpressionTokenizer”. In the code,
- Define a class “ExpressionTokenizer”.
- Define the class members “input”, “start” and “end”.
- Define the constructor “ExpressionTokenizer()”.
- Set the values of “input”, “start”, “end” and find the first token using “nextToken()”.
- Define the method “peekToken()”.
- If the “start” is greater than “input.length()”.
- Return “null”.
- Else,
-
- Return the substring.
- Return “null”.
- If the “start” is greater than “input.length()”.
- Define the method “nextToken()”.
- Call the method “peekToken()” to get the token.
- Assign the value of “end” to “start”.
- If the value of “start” is greater than or equal to length of the input,
- Return the value of “r”.
- If the character at “start” is a digit,
-
- Set “end” equal to “start+1”,
- Iterate a “while” loop,
- Increment the “end” by 1.
- Set the value of “end”.
- Increment the “end” by 1.
- Return the value of “r”.
- Return the value of “r”.
Filename: “Evaluator.java”
This program file is used to define a class “Evaluator”. In the code,
- Define a class “Evaluator”.
- Define the class members “tokenizer” which is an object of class “ExpressionTokenizer”.
- Define the constructor “Evaluator()”.
- Define “tokenizer”.
- Define the method “getExpressionValue()”.
- Get terms using “getTermValue()” to “value”.
- Define a Boolean value “done” and assign “false” to it.
- While “true”,
- Call “peekToken()” to get the token and assign to “next”.
- If the value of “next” is “+” or “-”.
- Get the next token using “nextToken()”.
- Get next term to “value2”.
- If the “next” is “+”,
-
- Calculate the sum of “value” and “value2” and assign to “value”.
- Else,
-
- Calculate the difference of “value” and “value2” and assign to “value”.
- Else,
- Set “done” equal to “true”.
-
-
- Return “value”.
-
- Define the method “getTermValue()”.
- Get factors using “getFactorValue()” to “value”.
- Define a Boolean value “done” and assign “false” to it.
- While “true”,
- Call “peekToken()” to get the token and assign to “next”.
- If the value of “next” is “*” or “/”.
- Get the next token using “nextToken()”.
- Get next factor to “value2”.
- If the “next” is “*”,
-
- Calculate the Product of “value” and “value2” and assign to “value”.
- Else,
-
- Calculate the Quotient of “value” and “value2” and assign to “value”.
- Else,
- Set “done” equal to “true”.
-
-
- Return “value”.
-
- Define the method “getFactorValue()”.
- Declare “value”.
- Call “peekToken()” to get the token and assign to “next”.
- If the value of “next” is “(”.
- Get the next token using “nextToken()”.
- Discard “(” using “nextToken()”.
- Get next expression to “value”.
- Discard “)” using “nextToken()”.
-
-
- Else,
- Get the next token using “nextToken Get new constant to “done”.
- Return “value”.
- Else,
-
-
Filename: “ExpressionCalculator.java”
This program file is used to define a class “ExpressionCalculator”. In the code,
- Define a class “ExpressionCalculator”.
- Define the method “main()”.
- Define the object “in” of “Scanner”.
- Prompt the user to enter the expression.
- Read the lines using “nextLine()”.
- Evaluate the expression “input”.
- Get the value of expression “input”.
- Print the value of expression “input.”
- Define the method “main()”.

Want to see the full answer?
Check out a sample textbook solution
Chapter 13 Solutions
Big Java, Binder Ready Version: Early Objects
- After the FCC licensing freeze was lifted, sitcoms featuring urban settings and working class characters became far less common. Question 14 options: True Falsearrow_forwardsolve this questions for me .arrow_forwarda) first player is the minimizing player. What move should be chosen?b) What nodes would not need to be examined using the alpha-beta pruning procedure?arrow_forward
- Consider the problem of finding a path in the grid shown below from the position S to theposition G. The agent can move on the grid horizontally and vertically, one square at atime (each step has a cost of one). No step may be made into a forbidden crossed area. Inthe case of ties, break it using up, left, right, and down.(a) Draw the search tree in a greedy search. Manhattan distance should be used as theheuristic function. That is, h(n) for any node n is the Manhattan distance from nto G. The Manhattan distance between two points is the distance in the x-directionplus the distance in the y-direction. It corresponds to the distance traveled along citystreets arranged in a grid. For example, the Manhattan distance between G and S is4. What is the path that is found by the greedy search?(b) Draw the search tree in an A∗search. Manhattan distance should be used as thearrow_forwardwhats for dinner? pleasearrow_forwardConsider the follow program that prints a page number on the left or right side of a page. Define and use a new function, isEven, that returns a Boolean to make the condition in the if statement easier to understand. ef main() : page = int(input("Enter page number: ")) if page % 2 == 0 : print(page) else : print("%60d" % page) main()arrow_forward
- What is the correct python code for the function def countWords(string) that will return a count of all the words in the string string of workds that are separated by spaces.arrow_forwardConsider the following program that counts the number of spaces in a user-supplied string. Modify the program to define and use a function, countSpaces, instead. def main() : userInput = input("Enter a string: ") spaces = 0 for char in userInput : if char == " " : spaces = spaces + 1 print(spaces) main()arrow_forwardWhat is the python code for the function def readFloat(prompt) that displays the prompt string, followed by a space, reads a floating-point number in, and returns it. Here is a typical usage: salary = readFloat("Please enter your salary:") percentageRaise = readFloat("What percentage raise would you like?")arrow_forward
- assume python does not define count method that can be applied to a string to determine the number of occurances of a character within a string. Implement the function numChars that takes a string and a character as arguments and determined and returns how many occurances of the given character occur withing the given stringarrow_forwardConsider the ER diagram of online sales system above. Based on the diagram answer the questions below, a) Based on the ER Diagram, determine the Foreign Key in the Product Table. Just mention the name of the attribute that could be the Foreign Key. b) Mention the relationship between the Order and Customer Entities. You can use the following: 1:1, 1:M, M:1, 0:1, 1:0, M:0, 0:M c) Is there a direct relationship that exists between Store and Customer entities? Answer Yes/No? d) Which of the 4 Entities mention in the diagram can have a recursive relationship? e) If a new entity Order_Details is introduced, will it be a strong entity or weak entity? If it is a weak entity, then mention its type?arrow_forwardNo aiarrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education





