
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.
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”.
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()”.
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.
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.
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.
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.
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”.
- 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
- Please include comments and docs comments on the program. The two other classes are Attraction and Entertainment.arrow_forwardObject-Oriented Programming In this separate files. ent, you'll need to build and run a small Zoo in Lennoxville. All classes must be created in Animal (5) First, start by building a class that describes an Animal at a Zoo. It should have one private instance variable for the name of the animal, and one for its hunger status (fed or hungry). Add methods for setting and getting the hunger satus variable, along with a getter for the name. Consider how these should be named for code clarity. For instance, using a method called hungry () to make the animal hungry could be used as a setter for the hunger field. The same logic could be applied to when it's being fed: public void feed () { this.fed = true; Furthermore, the getter for the fed variable could be named is Fed as it is more descriptive about what it answers when compared to get Fed. Keep this technique in mind for future class designs. Zoo (10) Now we have the animals designed and ready for building a little Zoo! Build a class…arrow_forward1.[30 pts] Answer the following questions: a. [10 pts] Write a Boolean equation in sum-of-products canonical form for the truth table shown below: A B C Y 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 0 1 1 0 1 1 1 1 0 a. [10 pts] Minimize the Boolean equation you obtained in (a). b. [10 pts] Implement, using Logisim, the simplified logic circuit. Include an image of the circuit in your report. 2. [20 pts] Student A B will enjoy his picnic on sunny days that have no ants. He will also enjoy his picnic any day he sees a hummingbird, as well as on days where there are ants and ladybugs. a. Write a Boolean equation for his enjoyment (E) in terms of sun (S), ants (A), hummingbirds (H), and ladybugs (L). b. Implement in Logisim, the logic circuit of E function. Use the Circuit Analysis tool in Logisim to view the expression, include an image of the expression generated by Logisim in your report. 3.[20 pts] Find the minimum equivalent circuit for the one shown below (show your work): DAB C…arrow_forward
- When using functions in python, it allows us tto create procedural abstractioons in our programs. What are 5 major benefits of using a procedural abstraction in python?arrow_forwardFind the error, assume data is a string and all variables have been declared. for ch in data: if ch.isupper: num_upper = num_upper + 1 if ch.islower: num_lower = num_lower + 1 if ch.isdigit: num_digits = num_digits + 1 if ch.isspace: num_space = num_space + 1arrow_forwardFind the Error: date_string = input('Enter a date in the format mm/dd/yyyy: ') date_list = date_string.split('-') month_num = int(date_list[0]) day = date_list[1] year = date_list[2] month_name = month_list[month_num - 1] long_date = month_name + ' ' + day + ', ' + year print(long_date)arrow_forward
- Find the Error: full_name = input ('Enter your full name: ') name = split(full_name) for string in name: print(string[0].upper(), sep='', end='') print('.', sep=' ', end='')arrow_forwardPlease show the code for the Tikz figure of the complex plane and the curve C. Also, mark all singularities of the integrand.arrow_forward11. Go to the Webinars worksheet. DeShawn wants to determine the number of webinars the company can hold on Tuesdays and Thursdays to make the highest weekly profit without interfering with consultations, which are also scheduled for Tuesdays and Thursdays and use the same resources. Use Solver to find this information as follows: a. Use Total weekly profit as the objective cell in the Solver model, with the goal of determining the maximum value for that cell. b. Use the number of Tuesday and Thursday sessions for the five programs as the changing variable cells. c. Determine and enter the constraints based on the information provided in Table 3. d. Use Simplex LP as the solving method to find a global optimal solution. e. Save the Solver model below the Maximum weekly profit model label. f. Solve the model, keeping the Solver solution. Table 3: Solver Constraints Constraint Cell or Range Each webinar is scheduled at least once on Tuesday and once on Thursday B4:F5 Each Tuesday and…arrow_forward
- Go to the Webinars DeShawn wants to determine the number of webinars the company can hold on Tuesdays and Thursdays to make the highest weekly profit without interfering with consultations, which are also scheduled for Tuesdays and Thursdays and use the same resources. Use Solver to find this information as follows: Use Total weekly profit as the objective cell in the Solver model, with the goal of determining the maximum value for that cell. Use the number of Tuesday and Thursday sessions for the five programs as the changing variable cells. Determine and enter the constraints based on the information provided in Table 3. Use Simplex LP as the solving method to find a global optimal solution. Save the Solver model below the Maximum weekly profit model label. Solve the model, keeping the Solver solution. Table 3: Solver Constraints Constraint Cell or Range Each webinar is scheduled at least once on Tuesday and once on Thursday B4:F5 Each Tuesday and Thursday…arrow_forwardI want to ask someone who has experiences in writing physics based simulation software. For context I am building a game engine, and want to implement physics simulation. There are a few approaches that I managed to find, but would like to know what are other approaches to doing physics simulation entry points from scenes, would you be able to visually draw me a few approaches (like 3 approaces)? When I say entry point to the actual physics simulation. An example of this is when the user presses the play button in the editor, it starts and initiates the physics system. Applying all of the global physics settings parameters that gets applied to that scene. Here is the use-case, I am looking for. If you have two scenes, and select scene 1. You press the play button. The physics simulation starts. When that physics simulation starts, you are also having to update the physics through some physics dedicated delta time because physics needs to happen faster update frequency. To elaborate,…arrow_forwardI want to ask someone who has experiences in writing physics based simulation software. For context I am building a game engine, and want to implement physics simulation. There are a few approaches that I managed to find, but would like to know what are other approaches to doing physics simulation entry points from scenes, would you be able to visually draw me a few approaches (like 3 approaces)?When I say entry point to the actual physics simulation. An example of this is when the user presses the play button in the editor, it starts and initiates the physics system. Applying all of the global physics settings parameters that gets applied to that scene.Here is the use-case, I am looking for. If you have two scenes, and select scene 1. You press the play button. The physics simulation starts. When that physics simulation starts, you are also having to update the physics through some physics dedicated delta time because physics needs to happen faster update frequency.To elaborate, what…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





