
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”.
- Declare an integer “number”.
- Define the constructor “Constant()”.
- Set the value of “number”.
- Define the method “value()”.
- Return the value of “number”.
- Define the method “toString()”.
- Return the value of “number” as a string.
- Define the method “derivative()”.
- Return the value.
Filename: “Variable.java”
This program file is used to define a class “Variable”. In the code,
- Define a class “Variable”.
- Define a variable “letter”.
- Define the constructor “Variable ()”.
- If the “letter” is not equal to “x”,
- Throw an exception.
- Set the letter.
- If the “letter” is not equal to “x”,
- Define the method “value()”.
- Return the value of “x”.
- Define the method “toString()”.
- Return the value of “letter”.
- Define the method “derivative()”.
- Return the value.
Filename: “Expression.java”
This program file is used to define an interface “Expression”. In the code,
- Define an interface “Expression”.
- Declare the method “value()” with argument “x”.
- Declare a method “toString()”.
- Declare a method “derivative()”.
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.
- Define the method “toString()”.
- Return the expression in string format.
- Define the method “derivative()”.
- Return the derivative.
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.
- Define the method “toString()”.
- Return the expression in string format.
- Define the method “derivative()”.
- Return the derivative.
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.
- Define the method “toString()”.
- Return the expression in string format.
- Define the method “derivative()”.
- Return the derivative.
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.
- Define the method “toString()”.
- Return the expression in string format.
- Define the method “derivative()”.
- Return the derivative.
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,
- If the “next” is “x”,
- Get the variable “x” to “value”.
- Else,
- Get the next token to “value”.
- If the “next” is “x”,
- 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”.
- Call the method “getExprssionValue()” and save to “expr”.
- Print “expr”.
- Prompt the user to enter the value for “x”.
- Scan for the value of “x”.
- Call the method “value()” on “x” and save the result to “value”.
- Print “value”.
- Call the method “derivative()” and save the result to “df”.
- Print “df”.
- Define the method “main()”.

Want to see the full answer?
Check out a sample textbook solution
Chapter 13 Solutions
EBK BIG JAVA: EARLY OBJECTS, INTERACTIV
- Brand managers know that increasing promotional budgets eventually result in diminishing returns. The first one million dollars typically results in a 26% increase in awareness, while the second million results in adding another 18% and the third million in a 5% increase. Andrews’s product Alan currently has an awareness level of 80% . While an important product for Andrews, Alan’s promotion budget will be reduced to one million dollars for the upcoming year. Assuming that Alan loses one-third of its awareness each year, what will Alan’s awareness level be next year? a) 79% b) 53% c) 74% d) 58%arrow_forwardDo not use A.I and solve completelyarrow_forwardSolve thisarrow_forward
- Specifications: Part-1Part-1: DescriptionIn this part of the lab you will build a single operation ALU. This ALU will implement a bitwise left rotation. Forthis lab assignment you are not allowed to use Digital's Arithmetic components.IF YOU ARE FOUND USING THEM, YOU WILL RECEIVE A ZERO FOR LAB2!The ALU you will be implementing consists of two 4-bit inputs (named inA and inB) and one 4-bit output (named out). Your ALU must rotate the bits in inA by the amount given by inB (i.e. 0-15).Part-1: User InterfaceYou are provided an interface file lab2_part1.dig; start Part-1 from this file.NOTE: You are not permitted to edit the content inside the dotted lines rectangle.Part-1: ExampleIn the figure above, the input values that we have selected to test are inA = {inA_3, inA_2, inA_1, inA_0} = {0, 1, 0,0} and inB = {inB_3, inB_2, inB_1, inB_0} = {0, 0, 1, 0}. Therefore, we must rotate the bus 0100 bitwise left by00102, or 2 in base 10, to get {0, 0, 0, 1}. Please note that a rotation left is…arrow_forwardHow can I perform Laplace Transformation when using integration based on this? Where we convert time-based domain to frequency domainarrow_forwardwhat would be the best way I can explain the bevhoirs of Laplace and Inverse Transofrmation In MATLAB.arrow_forward
- What IETF protocol is NetFlow associated with? Group of answer choices IPX/SPX IPIX HTTPS SSHarrow_forwardHow can I perform Laplace Transformation when using integration based on this?arrow_forwardWrite an example of a personal reflection of your course. - What you liked about the course. - What you didn’t like about the course. - Suggestions for improvement. Course: Information and Decision Sciences (IDS) The Reflection Paper should be 1 or 2 pages in length.arrow_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





