Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

On python please! def findNextOpr(s): #s must be a nonempty string. if len(s)

On python please!

def findNextOpr(s): #s must be a nonempty string. if len(s)<=0 or not isinstance(s,str): print("type mimatch error: findNextOpr") return "type mimatch error: findNextOpr" #In this exercise +, -, *, / are all the 4 operators #The function returns -1 if there is no operator in s, #otherwise returns the position of the leftmost operator #--- code the rest of the function ----#

#--- function code ends -----#

def isNumber(s): #s must be a non-empty string #returns True if it's convertible to float, else False if len(s)==0 or not isinstance(s, str): print("type mismatch error: isNumber") return "type mismatch error: isNumber" #--- function code starts ---#

#--- function code ends ---#

def getNextNumber(expr, pos): #expr is a given arithmetic formula in string #pos = start position in expr #1st returned value = the next number (None if N/A) #2nd returned value = the next operator (None if N/A) #3rd retruned value = the next operator position (None if N/A) if len(expr)==0 or not isinstance(expr, str) or pos<0 or pos>=len(expr) or not isinstance(pos, int): print("type mismatch error: getNextNumber") return None, None, "type mismatch error: getNextNumber" #--- function code starts ---#

#--- function code ends ---#

def exeOpr(num1, opr, num2): #This is a simple utility function skipping type check if opr=="+": return num1+num2 elif opr=="-": return num1-num2 elif opr=="*": return num1*num2 elif opr=="/": return num1/num2 else: return None

def calc(expr): #expr: nonempty string that is an arithmetic expression #the fuction returns the calculated result if not isinstance(expr,str) or len(expr)<=0: print("argument error: line A in eval_expr") #Line A return "argument error: line A in eval_expr" #Hold two modes: "addition" and "multiplication" #Initializtion: get the first number newNumber, newOpr, oprPos = getNextNumber(expr, 0) if newNumber is None: print("input formula error: line B in eval_expr") #Line B return "input formula error: line B in eval_expr" elif newOpr is None: return newNumber elif newOpr=="+" or newOpr=="-": mode="add" addResult=newNumber #value so far in the addition mode mulResult=None #value so far in the mulplication mode elif newOpr=="*" or newOpr=="/": mode="mul" addResult=0 mulResult=newNumber pos=oprPos+1 #the new current position opr=newOpr #the new current operator #start the calculation. Use the above functions effectively. while True: #--- code while loop ---#

#--- end of function ---#

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Database Management With Website Development Applications

Authors: Greg Riccardi

1st Edition

0201743876, 978-0201743876

More Books

Students also viewed these Databases questions

Question

What is the basis for Security Concerns in Cloud Computing?

Answered: 1 week ago

Question

Describe the three main Cloud Computing Environments.

Answered: 1 week ago