예제 #1
0
 def __init__(self):
     self.root = Tk()
     self.calculadora = Calculadora()
     self.n1 = StringVar()
     self.n2 = StringVar()
     self.resultado = StringVar()
     self.formulario()
예제 #2
0
	def solve (self):
		self.entrada_expresion.place_forget ()
		self.label_expresion.place_forget ()
		self.boton_resolver_2.place_forget ()
		expresion = self.entrada_expresion.get ()
		color_azul = '#214E77'
		color_gris = '#686B6D'
		fuente_botones = font.Font (family = 'Microsoft YaHei UI Light', size = 12, weight = 'bold')
		fuente_resultado = font.Font (family = 'Microsoft YaHei UI Light', size = 22, weight = 'bold')
		posicion_y = 120
		posicion_x = 150
		lexico = Lexema (expresion)
		calculadora = Calculadora (lexico)
		evaluacion = [0,'','']
		if (calculadora.E (evaluacion)):
			resultado = evaluacion [0]
			self.label_resultado = Label (self.ventana, text = 'Resultado:', font = fuente_resultado, fg = color_gris,
								bg = 'white')
			self.label_resultado.place (x = posicion_x, y = posicion_y)
			self.resultado = Label (self.ventana, text = str (resultado), font = fuente_resultado, fg = color_gris,
									bg = 'white')
			self.resultado.place (x = posicion_x + 160, y = posicion_y)
		else:
			resultado = 'Error: Expresión incorrecta'
			self.label_resultado = Label (self.ventana, text = 'Resultado:', font = fuente_resultado, fg = color_gris,
								bg = 'white')
			self.resultado = Label (self.ventana, text = str (resultado), font = fuente_resultado, fg = color_gris,
									bg = 'white')
			self.resultado.place (x = posicion_x - 80, y = posicion_y)
		self.boton_menu_principal = Button (self.ventana, text = 'Regresar al menu principal', font = fuente_botones,
								cursor = 'hand2', fg = color_azul, bg = 'white', bd=0, command = self.regresar_menu_principal)
		self.boton_menu_principal.place (relx = 0.25, rely = 0.35)
		self.boton_otra_expresion = Button (self.ventana, text = 'Ingresar otra expresión', font = fuente_botones,
								cursor = 'hand2', fg = color_azul, bg = 'white', bd=0, command = self.ingresar_otra_expresion)
		self.boton_otra_expresion.place (relx = 0.27, rely = 0.45)
예제 #3
0
 def test_distanciaMatrizMatrizImposible(self):
     a = Calculadora()
     self.assertEqual(
         a.distanciaMatrizMatriz([[(3.0, 2.0), (2.0, 4.0)]],
                                 [[(3.0, 2.0),
                                   (2.0, 4.0)], [(1.0, 3.0), (4.0, 5.0)]]),
         "Imposible")
예제 #4
0
 def test_accionImposible(self):
     a = Calculadora()
     self.assertEqual(
         a.accion([[(1.0, 0.0),
                    (4.0, 2.0)], [(4.0, -1.0),
                                  (0.0, 0.0)], [(5.0, 0.0), (2.0, -1.0)]],
                  [(3.0, 2.0), (0.0, 0.0), (5.0, -6.0)]), "Imposible")
예제 #5
0
 def test_productoInternoMatriz(self):
     a = Calculadora()
     self.assertEqual(
         a.productoInternoMatriz([[(1.0, 0.0),
                                   (-1.0, 0.0)], [(1.0, 0.0), (1.0, 0.0)]],
                                 [[(2.0, 0.0),
                                   (1.0, 0.0)], [(1.0, 0.0), (3.0, 0.0)]]),
         (5.0, 0.0))
예제 #6
0
 def test_sumaMatrices(self):
     a = Calculadora()
     self.assertEqual(
         a.sumaMatrices([[(6.0, -4.0), (6.0, -4.0)], [(7.0, 3.0),
                                                      (7.0, 3.0)]],
                        [[(4.2, -8.1),
                          (4.2, -8.1)], [(0.0, -3.0), (0.0, -3.0)]]),
         [[(10.2, -12.1), (10.2, -12.1)], [(7.0, 0.0), (7.0, 0.0)]])
예제 #7
0
 def test_sumaVectores(self):
     a = Calculadora()
     self.assertEqual(
         a.sumaVectores([(6.0, -4.0), (7.0, 3.0), (4.2, -8.1), (0.0, -3.0)],
                        [(16.0, 2.3), (0.0, -7.0), (6.0, 0.0),
                         (0.0, -4.0)]), [(22.0, -1.7000000000000002),
                                         (7.0, -4.0), (10.2, -8.1),
                                         (0.0, -7.0)])
예제 #8
0
 def test_matrizHermitianImposible(self):
     a = Calculadora()
     self.assertEqual(
         a.matrizHermitian([[(5.0, 0.0), (4.0, 5.0), (6.0, -16.0)],
                            [(4.0, -5.0), (13.0, 0.0), (7.0, 0.0)],
                            [(6.0, 16.0), (7.0, 0.0), (-2.1, 0.0)],
                            [(6.0, 16.0), (7.0, 0.0), (-2.1, 0.0)]]),
         "Imposible")
예제 #9
0
 def test_accion(self):
     a = Calculadora()
     self.assertEqual(
         a.accion([[(1.0, 0.0), (4.0, 2.0),
                    (0.0, 1.0)], [(4.0, -1.0), (0.0, 0.0), (4.0, 0.0)],
                   [(5.0, 0.0), (2.0, -1.0), (6.0, -4.0)]], [(3.0, 2.0),
                                                             (0.0, 0.0),
                                                             (5.0, -6.0)]),
         [[(9.0, 7.0)], [(34.0, -19.0)], [(21.0, -46.0)]])
예제 #10
0
 def test_matrizAdjunta(self):
     a = Calculadora()
     self.assertEqual(
         a.matrizAdjunta([[(1.0, -2.0), (2.0, 3.0), (4.0, 5.0)],
                          [(3.0, 4.0), (4.0, -5.0), (5.0, 6.0)],
                          [(1.0, -2.0), (2.0, 3.0), (7.0, 8.0)]]),
         [[(1.0, 2.0), (3.0, -4.0),
           (1.0, 2.0)], [(2.0, -3.0), (4.0, 5.0), (2.0, -3.0)],
          [(4.0, -5.0), (5.0, -6.0), (7.0, -8.0)]])
예제 #11
0
def operar(sc, addr):

    data1, data2, opcionMenu = sc.recv(1024).split()
    print "recibido", data1, data2, opcionMenu

    c = Calculadora(data1, data2, opcionMenu)
    enviar = c.logaritmacion()

    sc.send(enviar)
예제 #12
0
 def test_transpuesta(self):
     a = Calculadora()
     self.assertEqual(
         a.transpuesta([[(1.0, -2.0), (2.0, 3.0)], [(3.0, 4.0),
                                                    (4.0, -5.0)],
                        [(1.0, -2.0), (2.0, 3.0)], [(3.0, 4.0),
                                                    (4.0, -5.0)]]),
         [[(1.0, -2.0), (3.0, 4.0), (1.0, -2.0),
           (3.0, 4.0)], [(2.0, 3.0), (4.0, -5.0), (2.0, 3.0), (4.0, -5.0)]])
예제 #13
0
 def test_inversaMatriz(self):
     a = Calculadora()
     self.assertEqual(
         a.inversaMatriz([[(16.0, 2.3), (16.0, 2.3)],
                          [(0.0, -7.0), (0.0, -7.0)],
                          [(6.0, 0.0), (6.0, 0.0)],
                          [(0.0, -4.0), (0.0, -4.0)]]),
         [[(-16.0, -2.3), (-16.0, -2.3)], [(0.0, 7.0), (0.0, 7.0)],
          [(-6.0, 0.0), (-6.0, 0.0)], [(0.0, 4.0), (0.0, 4.0)]])
예제 #14
0
 def test_multiplicacionMatrizMatrizImposible(self):
     a = Calculadora()
     self.assertEqual(
         a.multiplicacionMatrizMatriz(
             [[(3.0, 2.0), (0.0, 0.0),
               (5.0, -6.0)], [(1.0, 0.0), (4.0, 2.0), (0.0, 1.0)],
              [(4.0, -1.0), (0.0, 0.0), (4.0, 0.0)]],
             [[(5.0, 0.0), (2.0, -1.0),
               (6.0, -4.0)], [(0.0, 0.0), (4.0, 5.0), (2.0, 0.0)]]),
         "Imposible")
예제 #15
0
def operar(sc, addr):


    data1,data2,opcionMenu = sc.recv(1024).split()
    print "recibido", data1, data2, opcionMenu


    c = Calculadora(data1, data2, opcionMenu)

    enviar = 0
    if opcionMenu=="+":
        enviar= c.suma()
    elif opcionMenu=="-":
        enviar= c.resta()
    elif opcionMenu=="*":
        enviar= c.multiplicacion()
    elif opcionMenu=="/":
        enviar= c.division()
    elif opcionMenu=="rad":
        enviar= c.radiacion()
    elif opcionMenu=="pow":
        enviar= c.potenciacion()
    elif opcionMenu=="log":
        enviar = c.logaritmacion()

    sc.send(str(enviar))
예제 #16
0
 def test_multiplicacionEscalarMatriz(self):
     a = Calculadora()
     self.assertEqual(
         a.multiplicacionEscalarMatriz([[
             (1.0, -2.0), (2.0, 3.0)
         ], [(3.0, 4.0),
             (4.0, -5.0)], [(1.0, -2.0),
                            (2.0, 3.0)], [(3.0, 4.0), (4.0, -5.0)]],
                                       (4.0, 0.0)),
         [[(4.0, -8.0), (8.0, 12.0)], [(12.0, 16.0), (16.0, -20.0)],
          [(4.0, -8.0), (8.0, 12.0)], [(12.0, 16.0), (16.0, -20.0)]])
예제 #17
0
    def handle(self):

        self.paquete = self.request.recv(1024)

        print('se recibe: ', self.paquete)

        rec = self.paquete.split(' ')
        print(rec)
        Calc = Calculadora(rec[0], rec[1], rec[2])

        self.request.send(Calc.multiplicacion())
예제 #18
0
 def test_multiplicacionMatrizMatriz(self):
     a = Calculadora()
     self.assertEqual(
         a.multiplicacionMatrizMatriz([[
             (3.0, 2.0), (0.0, 0.0), (5.0, -6.0)
         ], [(1.0, 0.0), (4.0, 2.0),
             (0.0, 1.0)], [(4.0, -1.0), (0.0, 0.0), (4.0, 0.0)]], [[
                 (5.0, 0.0), (2.0, -1.0), (6.0, -4.0)
             ], [(0.0, 0.0), (4.0, 5.0),
                 (2.0, 0.0)], [(7.0, -4.0), (2.0, 7.0), (0.0, 0.0)]]),
         [[(26.0, -52.0), (60.0, 24.0),
           (26.0, 0.0)], [(9.0, 7.0), (1.0, 29.0), (14.0, 0.0)],
          [(48.0, -21.0), (15.0, 22.0), (20.0, -22.0)]])
예제 #19
0
파일: views.py 프로젝트: t00036318/Prueba
def RequestsHandler(request):
    if len(request.GET) != 0:
        return HttpResponse("Get request must be empty.")
    elif request.method == "POST":
        if len(request.POST) > 3:
            return HttpResponse("Extra data!")
        try:
            a = request.POST["a"]
            b = request.POST["b"]
            operacion = request.POST["op"]
        except Exception:
            return HttpResponse("Missing data!")

        try:
            a = float(a)
            b = float(b)
            operacion = float(operacion)
        except Exception:
            return HttpResponse("Everything must be a number")

        CalculadoraObjeto = Calculadora.Calculadora(operacion, a, b)

        if CalculadoraObjeto.op == 1.0:
            return HttpResponse(CalculadoraObjeto.suma())
        elif CalculadoraObjeto.op == 2.0:
            return HttpResponse(CalculadoraObjeto.resta())
        elif CalculadoraObjeto.op == 3.0:
            return HttpResponse(CalculadoraObjeto.multiplicacion())
        elif CalculadoraObjeto.op == 4.0:
            if CalculadoraObjeto.num2 == 0.0:
                return HttpResponse("Divition by 0 not defined")
            return HttpResponse(CalculadoraObjeto.division())
        else:
            return HttpResponse("Operation undefined")
    else:
        return HttpResponse("Http request method error")
def test_dividir():

    return calculadora.dividir(5, 0)
예제 #21
0
def esnumero(candidato):
    valido = True
    for caracter in candidato:
        if caracter in '0123456789':
            continue
        else:
            valido = False
            break
    return valido


print("Bienvenido a la calculadora")
operacion = input("Indique la operación (+, -, *, /): ")
oper1 = input("Indique el primer número: ")
oper2 = input("Indique el segundo número: ")
if esnumero(oper1) and esnumero(oper2):
    oper1 = int(oper1)
    oper2 = int(oper2)
    if operacion == "+":
        print(Calculadora.suma(oper1, oper2))
    elif operacion == "-":
        print(Calculadora.resta(oper1, oper2))
    elif operacion == "*":
        print(Calculadora.multiplicacion(oper1, oper2))
    elif operacion == "/":
        print(Calculadora.division(oper1, oper2))
    else:
        print("Error! Eso no es una operación válida!")
else:
    print("Error! Ambos números deben tener formato numérico.")
예제 #22
0
파일: main.py 프로젝트: stiven77nj/Python
import Calculadora  # No se coloca la extension .py

resultado = Calculadora.suma(30, 45)
print(resultado)
'''
Cuando importamos un modulo, python genera un archivo compilado.
Este archivo compilado tiene la extension .pyc

Los archivos compilados hacen que el script se vuelva mas rapido.
Si el archivo no existe, lo crea.
'''

from Calculadora import resta, division  # Otra forma de importar

resultado = resta(30, 45)
print(resultado)
'''
Podemos renombrar las funcionalidades a importar.
'''
from Calculadora import multiplicacion as mult

resultado = mult(30, 45)
print(resultado)
예제 #23
0
# ---------------------------------------- 21 - MÓDULOS ----------------------------------------- #
#
#   Cuando un programa ya cuenta con suficientes líneas de código, es necesario separar
#        el código en varios segmentos o MÓDULOS, los cuales podran ser utilizados entre
#        archivos.


# ---- Módulos ---------------------------------------------------------------------------------- #
#   En esta ocación se utilizara el módulo auxiliar Calculadora, el cual debe estar en el
#       mismo nivel que esta archivo, con la palabra reservada IMPORT se denomida el origen
#       de las posibles funciones auxiliares que se emplearan
import Calculadora

resultado = Calculadora.suma(10, 20)
print("\n Resultado de la suma: {}".format(resultado))

#   Al ejecutar este archivo, se creara un folder con un archivo de formato .pyc, el cual
#       sera generado por el interprete de python, el cual es un archivo compilado, esto
#       para reducir el tiempo en ejecución, asi que cada que se cree un módulo, se creara
#       un archivo compilado

#   Otra forma de declara un módulo, es por medio de la palabra resrvada FROM, en la cual
#       se realiza una localizacion más exacata de las funciones a utilizar
from Calculadora import resta
#   De esta manera no es necesario emplear a Calculadora como un objeto, sino que
#       directamente se llama a la función
resultado = resta(100, 30)
print("\n Resultado de la resta: {}".format(resultado))

#   En caso de querer modificar el nombre de la función importada, es posibles por medio
#        de la palabra AS, la cual asigna un nuevo nombre a la función
예제 #24
0
import Calculadora as cl

if __name__ == '__main__':

    while True:
        try:
            n1 = input("Introduce el primer valor: ")
            n2 = input("Introduce el segundo valor: ")
            break
        except:
            print("No es una entrada valida")

    calcu = cl.Calculadora(n1, n2)

    while True:

        while True:
            try:
                decision = int(
                    raw_input(
                        "1)Suma\n2)Resta\n3)Multiplicacion\n4)Division\n5)Salir\n-->"
                    ))
                break
            except:
                print("No es una entrada valida")

        if decision == 1:
            print(calcu.suma())
        elif decision == 2:
            print(calcu.resta())
        elif decision == 3:
예제 #25
0
from SimpleXMLRPCServer import SimpleXMLRPCServer
from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler
from Calculadora import *


# Restrict to a particular path.
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/RPC2', )


if __name__ == "__main__":

    server = SimpleXMLRPCServer(("localhost", 13000),
                                requestHandler=RequestHandler)

    server.register_introspection_functions()
    server.register_instance(Calculadora())

    # Run the server's main loop
    server.serve_forever()
def test_multiplicar():

    return calculadora.multiplicar(89,6)
예제 #27
0
class Practica1:
    def __init__(self):
        self.root = Tk()
        self.calculadora = Calculadora()
        self.n1 = StringVar()
        self.n2 = StringVar()
        self.resultado = StringVar()
        self.formulario()

    def sumar(self):
        self.resultado.set(
            self.calculadora.operacion(float(self.n1.get()),
                                       float(self.n2.get()), "SUMA"))
        self.borrar()

    def resta(self):
        self.resultado.set(
            self.calculadora.operacion(float(self.n1.get()),
                                       float(self.n2.get()), "RESTA"))
        self.borrar()

    def multiplica(self):
        self.resultado.set(
            self.calculadora.operacion(float(self.n1.get()),
                                       float(self.n2.get()), "MULTIPLICA"))
        self.borrar()

    def divide(self):
        self.resultado.set(
            self.calculadora.operacion(float(self.n1.get()),
                                       float(self.n2.get()), "DIVIDE"))
        self.borrar()

    def borrar(self):
        self.n1.set("")
        self.n2.set("")

    def formulario(self):
        # Configuración de la raíz
        self.root.config(bd=15)

        Label(self.root, text="Número 1").pack()
        Entry(self.root, justify="center", textvariable=self.n1).pack()

        Label(self.root, text="Número 2").pack()
        Entry(self.root, justify="center", textvariable=self.n2).pack()

        Label(self.root, text="Resultado").pack()
        Entry(self.root,
              justify="center",
              textvariable=self.resultado,
              state="disabled").pack()

        Label(self.root, text="").pack()  # Separador

        Button(self.root, text="+", command=self.sumar).pack(side="left")
        Button(self.root, text="-", command=self.resta).pack(side="left")
        Button(self.root, text="*", command=self.multiplica).pack(side="left")
        Button(self.root, text="/", command=self.divide).pack(side="left")

        # Finalmente bucle de la aplicación
        self.root.mainloop()
예제 #28
0
#Main sirve para trabajar con todas las clases, instanciar los objetos y operar con los metodos

#Método para importar todo por el asterisco.
from Calculadora import *

#Intanciar el objeto y trabajar con el Método constructor
calculadora1 = Calculadora(5, 2)

#Se puede trabajar con todos los métodos, con uno o con ninguno

print(f"La suma es: {calculadora1.sumar()}")
print(f"La resta es: {calculadora1.restar()}")
print(f"La multiplicación es: {calculadora1.multiplicacion()}")
print(f"La división es: {calculadora1.division()}")

#En el caso de potencia se puede trabajar con un solo argumento
print(f"La potencia es: {calculadora1.potencia()}")
def test_restar():

    return  calculadora.restar(6,5)
def test_sumar():

    return calculadora.sumar(14,7)