Beispiel #1
0
 def calluser():
     availableOperations = []
     tokenString = ''
     equationTokens = []
     self.resultOut = True
     if name == 'addition':
         if self.solutionType == 'expression':
             self.tokens, availableOperations, tokenString, equationTokens, comments = addition(
                 self.tokens, True)
         else:
             self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = additionEquation(
                 self.lTokens, self.rTokens, True)
     elif name == 'subtraction':
         if self.solutionType == 'expression':
             self.tokens, availableOperations, tokenString, equationTokens, comments = subtraction(
                 self.tokens, True)
         else:
             self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = subtractionEquation(
                 self.lTokens, self.rTokens, True)
     elif name == 'multiplication':
         if self.solutionType == 'expression':
             self.tokens, availableOperations, tokenString, equationTokens, comments = multiplication(
                 self.tokens, True)
         else:
             self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = multiplicationEquation(
                 self.lTokens, self.rTokens, True)
     elif name == 'division':
         if self.solutionType == 'expression':
             self.tokens, availableOperations, tokenString, equationTokens, comments = division(
                 self.tokens, True)
         else:
             self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = divisionEquation(
                 self.lTokens, self.rTokens, True)
     elif name == 'simplify':
         if self.solutionType == 'expression':
             self.tokens, availableOperations, tokenString, equationTokens, comments = simplify(
                 self.tokens)
         else:
             self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = simplifyEquation(
                 self.lTokens, self.rTokens)
     elif name == 'factorize':
         self.tokens, availableOperations, tokenString, equationTokens, comments = factorize(
             self.tokens)
     elif name == 'find roots':
         self.lTokens, self.rTokens, availableOperations, tokenString, equationTokens, comments = quadraticRoots(
             self.lTokens, self.rTokens)
     elif name == 'solve':
         lhs, rhs = getLHSandRHS(self.tokens)
         variables = getVariables(lhs, rhs)
         self.wrtVariableButtons(variables, name)
         self.resultOut = False
     elif name == 'integrate':
         lhs, rhs = getLHSandRHS(self.tokens)
         variables = getVariables(lhs, rhs)
         self.wrtVariableButtons(variables, name)
         self.resultOut = False
     elif name == 'differentiate':
         lhs, rhs = getLHSandRHS(self.tokens)
         variables = getVariables(lhs, rhs)
         self.wrtVariableButtons(variables, name)
         self.resultOut = False
     if self.resultOut:
         self.eqToks = equationTokens
         self.output = resultLatex(name, equationTokens, comments)
         if len(availableOperations) == 0:
             self.clearButtons()
         else:
             self.refreshButtons(availableOperations)
         if self.mode == 'normal':
             self.textedit.setText(tokenString)
         elif self.mode == 'interaction':
             cursor = self.textedit.textCursor()
             cursor.insertText(tokenString)
         if self.showStepByStep is True:
             showSteps(self)
         if self.showPlotter is True:
             plot(self)
Beispiel #2
0
def commandExec(command):
    operation = command.split('(', 1)[0]
    inputEquation = command.split('(', 1)[1][:-1]
    if ',' in inputEquation:
        varName = inputEquation.split(',')[1]
        inputEquation = inputEquation.split(',')[0]

    lhs = []
    rhs = []
    solutionType = ''
    lTokens = []
    rTokens = []
    equationTokens = []
    comments = []

    tokens = tokenizer(inputEquation)
    lhs, rhs = getLHSandRHS(tokens)
    lTokens = lhs
    rTokens = rhs
    _, solutionType = checkTypes(lhs, rhs)

    if operation == 'simplify':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = simplify(tokens)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = simplifyEquation(
                lTokens, rTokens)
    elif operation == 'addition':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = addition(tokens, True)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = additionEquation(
                lTokens, rTokens, True)
    elif operation == 'subtraction':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = subtraction(tokens, True)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = subtractionEquation(
                lTokens, rTokens, True)
    elif operation == 'multiplication':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = multiplication(
                tokens, True)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = multiplicationEquation(
                lTokens, rTokens, True)
    elif operation == 'division':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = division(tokens, True)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = divisionEquation(
                lTokens, rTokens, True)
    elif operation == 'simplify':
        if solutionType == 'expression':
            tokens, _, _, equationTokens, comments = simplify(tokens)
        else:
            lTokens, rTokens, _, _, equationTokens, comments = simplifyEquation(
                lTokens, rTokens)
    elif operation == 'factorize':
        tokens, _, _, equationTokens, comments = factorize(tokens)
    elif operation == 'find-roots':
        lTokens, rTokens, _, _, equationTokens, comments = quadraticRoots(
            lTokens, rTokens)
    elif operation == 'solve':
        lhs, rhs = getLHSandRHS(tokens)
        lTokens, rTokens, _, _, equationTokens, comments = solveFor(
            lTokens, rTokens, varName)
    elif operation == 'integrate':
        lhs, rhs = getLHSandRHS(tokens)
        lTokens, _, _, equationTokens, comments = integrate(lTokens, varName)
    elif operation == 'differentiate':
        lhs, rhs = getLHSandRHS(tokens)
        lTokens, _, _, equationTokens, comments = differentiate(
            lTokens, varName)
    printOnCLI(equationTokens, operation, comments)