Advertisement
EXTREMEXPLOIT

Vectores

Oct 19th, 2018
283
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.62 KB | None | 0 0
  1. import math #Pi, Raíz Cuadrada y ArcCoseno.
  2.  
  3. n = 1 #Para cumplir el bucle "while n>0"
  4. a = 0 #Para evitar que se intente operar sin definir los Vectores A y B.
  5.  
  6. while n>0:
  7.  
  8. #Menú con todas las opciones.
  9.  
  10.     print("1. Introducir el vector A.")
  11.     print("2. Introducir el vector B.")
  12.     print("3. Calcular la suma.")
  13.     print("4. Calcular la diferencia.")
  14.     print("5. Calcular el producto escalar.")
  15.     print("6. Calcular el producto vectorial.")
  16.     print("7. Calcular el ángulo (En Grados) entre ellos.")
  17.     print("8. Calcular la longitud.")
  18.     print("9. Finalizar")
  19.  
  20.     Option = int(input("Introduzca la acción que desea ejecutar: "))
  21.     print(" ")
  22.    
  23. #Error al seleccionar una opción que no esté dentro de 1 a 10.
  24. #¡Recordar que la función 'in range (x,y)' coje hasta el y-1!
  25.  
  26.     if Option not in range (1,10):
  27.                 print("La opción",Option,"no es válida, intentélo de nuevo.")
  28.                 print(" ")
  29. #Dependiendo de la opción seleccionada por el usuario el programa irá ejecutando el if necesario.
  30.  
  31.     if Option == 1:
  32.         print("Vector A")
  33.         X1 = int(input("Introduce la x:"))
  34.         Y1 = int(input("Introduce la y:"))
  35.         Z1 = int(input("Introduce la z:"))
  36.         print("Vector A = (",X1,",",Y1,",",Z1,")")
  37.         a+=2 #Control de que los Vectores A y B han sido definidos.
  38.         print(" ")
  39.  
  40.     if Option == 2:
  41.         print("Vector B:")
  42.         X2 = int(input("Introduce la x:"))
  43.         Y2 = int(input("Introduce la y:"))
  44.         Z2 = int(input("Introduce la z:"))
  45.         print("Vector B = (",X2,",",Y2,",",Z2,")")
  46.         a+=2 #Control de que los Vectores A y B han sido definidos.
  47.         print(" ")
  48.        
  49.     if Option == 9:
  50.         a = 2
  51.         print("¡Hasta Pronto!")
  52.         n=-1 #El bucle no se cumplirá y el programa acabará. (Más elegante que un 'Break')
  53.        
  54.     if a == 0:
  55. #Los anteriores if dan a la 'a' el valor de 4, si a no es 4, los Vectores A y B no se han definido.
  56.         print("Error, los vectores A y B no han sido definidos.")
  57.         print(" ")
  58.        
  59. #En caso de que a>2, empiezan las operaciones matemáticas. (Puede solo un vector estar definido.)    
  60.     if a>=2:
  61.         if Option == 3:
  62.             if a==2: #La 'a' no ha alcanzado 4 y vale 2, solo se ha definido un vector.
  63.                 print("Solo se ha definido un vector.")
  64.             else:
  65.                 print("Suma de A+B:")
  66.                 print("A + B = (",X1+X2,",",Y1+Y2,",",Z1+Z2,")")
  67.                 print(" ")
  68.  
  69.         if Option == 4:
  70.             if a==2: #La 'a' no ha alcanzado 4 y vale 2, solo se ha definido un vector.
  71.                 print("Solo se ha definido un vector.")
  72.             else:
  73.                 print("Diferencia:")
  74.                 print("a) A-B")
  75.                 print("b) B-A")
  76.                 R = input("Seleccione la Opción:") #Se presentan las dos opciones de una resta.
  77.                 if R=="a" or R=="A":
  78.                     print("A - B = (",X1-X2,",",Y1-Y2,",",Z1-Z2,")")
  79.                     print(" ")
  80.                 elif R=="b" or R=="B":
  81.                     print("B - A = (",X2-X1,",",Y2-Y1,",",Z2-Z1,")")
  82.                     print(" ")
  83.                 else: #Código de opcion incorrecta.
  84.                     print("La opción",R,"no es válida, intentélo de nuevo.")
  85.  
  86.         if Option == 5:
  87.             if a==2: #La 'a' no ha alcanzado 4 y vale 2, solo se ha definido un vector.
  88.                 print("Solo se ha definido un vector.")
  89.             else:
  90.                 print("Producto Escalar:")
  91.                 print("A · B =",X1*X2+Y1*Y2+Z1*Z2)
  92.                 print(" ")
  93.            
  94.         if Option == 6:
  95.             if a==2: #La 'a' no ha alcanzado 4 y vale 2, solo se ha definido un vector.
  96.                 print("Solo se ha definido un vector.")
  97.             else: #Se presentan las dos opciones de una resta.
  98.                 print("Producto Vectorial:")
  99.                 print("a) A x B")
  100.                 print("b) B x A")
  101.                 R2 = input("Seleccione la Opción:")
  102.                 if R2=="a" or R2=="A":
  103.                     print("A x B = (",Y1*Z2-Z1*Y2,",",Z1*X2-X1*Z2,",",X1*Y2-Y1*X2,")")
  104.                     print(" ")
  105.                 elif R2=="b" or R2=="B":
  106.                     print("B x A = (",Y2*Z1-Z2*Y1,",",Z2*X1-X2*Z1,",",X2*Y1-Y2*X1,")")
  107.                     print(" ")
  108.                 else: #Código de opcion incorrecta.
  109.                     print("La opción",R2,"no es válida, intentélo de nuevo.")
  110.  
  111.         if Option == 7:#¡Opción con definición de errores matemáticos!
  112.             if a==2:
  113.                 print("Solo se ha definido un vector.")
  114.             else: #Los tres primeros, son errores matemáticos.
  115.                 print("Angulo entre A y B.")
  116.                 if (X1**2+Y1**2+Z1**2)==0 or (X2**2+Y2**2+Z2**2)==0: #x/0
  117.                     print("Se ha producido una división entre zero.")
  118.                     print(" ")
  119.                 elif (X1**2+Y1**2+Z1**2)<0 or (X2**2+Y2**2+Z2**2)<0: #Skeret(-x)
  120.                     print("Se ha producido una raíz cuadrada negativa.")
  121.                     print(" ")
  122.                 elif X1-X2==0 and Y1-Y2==0 and Z1-Z2==0:
  123. #¡Había un problema con los decimales al dividir x/x no daba 1, y el ArcCoseno no era posible de >1.
  124.                     print("0°")
  125.                     print(" ")
  126.                 else: #En caso de no-error, esta es la operación matemática.
  127.                     M1 = math.acos((X1*X2+Y1*Y2+Z1*Z2)/((math.sqrt(X1**2+Y1**2+Z1**2))*(math.sqrt(X2**2+Y2**2+Z2**2))))
  128.                     M2 = (180/(math.pi))*M1
  129.                     print(M2,"°")
  130.                     print(" ")
  131.        
  132.         if Option == 8:
  133.             if a==2:
  134.                 print("Advertencia: Solo se ha definido un vector.") #Se puede operar igualmente con un solo vector, solo avisa.
  135.             print("Longitud de un vector:")
  136.             print("a) Longitud de A.")
  137.             print("b) Longitud de B.")
  138.             R3 = input("Seleccione la Opcion:")
  139.             if R3 == "a" or R3 == "A":
  140.                 if (X1**2+Y1**2+Z1**2)<0: #Math Error 1.
  141.                     print("Se ha producido una raíz cuadrada negativa.")
  142.                 else:
  143.                     M3 = math.sqrt(X1**2+Y1**2+Z1**2)
  144.                     print("Longitud del Vector A:",M3)
  145.                     print(" ")
  146.             elif R3 == "b" or R3 == "B": #Math Error 2.
  147.                 if (X2**2+Y2**2+Z2**2)<0:
  148.                     print("Se ha producido una raíz cuadrada negativa.")
  149.                 else:
  150.                     M4 = math.sqrt(X2**2+Y2**2+Z2**2)
  151.                     print("Longitud del Vector B:",M4)
  152.                     print(" ")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement