Aritmética de Vectores en Python (solución a mano del problema 91)


Saludos compañeros, siguiendo con el estudio del libro Introducción a la Programación con Python y C, he solucionado el problema del vector, me pareció interesante hacer a mano todo el vector sin usar otra librería que la de math… si tratando de descubrir nuevamente el agua tibia 😀

Por que me pareció interesante por el uso de los if anidados dentro de los bucles y también el repaso de las soluciones de los vectores tan odiados por muchos pero debemos aprender de ellos ya que en python son mas que arreglos y al final serán de mucha mucha ayuda…. hay mas de que hablar pero por ahora me limitare a colocar el código y en esta semana comento un poco las partes a modo de repaso y para que los menos entendidos se sumerjan en el mágico mundo de la programación en python…


import math

### Se necesita saber el valor de los vectores

a1=a2=b1=b2=c1=c2=2.2

opcion = ''

while opcion != 'i':

   print 'Escoge una opcion: '

   print 'a) Agregar Primer Vector. '

   print 'b) Agregar Segundo Vector. '

   print 'c) Calcular Suma entre los dos Vectores. '

   print 'd) Calcular Diferencia entre los Vectores. '

   print 'e) Calcular el Producto Escalar. '

   print 'f) Calcular el Producto Vectorial. '

   print 'g) Calcular el Angulo en Grados entre ellos. '

   print 'h) Calcular la Longitud. '

   print 'i) Finalizar. '

   opcion = raw_input('Presiona una letra entre la "a" y la "i" y pulsa Enter: ')

   if opcion == 'a':

      print 'Dame el Primer Vector( valores a , b y c )'

      a1= float(raw_input('Dame el valor de a1: '))

      b1 = float(raw_input('Dame el valor de b1: '))

      c1 = float(raw_input('Dame el valor de c1: '))

      vector1 = [ a1, b1, c1 ]

      print vector1

   elif opcion == 'b':

      print 'Dame el Segundo Vector( valores a , b y c )'

      a2 = float(raw_input('Dame el valor de a2: '))

      b2 = float(raw_input('Dame el valor de b2: '))

      c2 = float(raw_input('Dame el valor de c2: '))

      vector2 = [ a2, b2, c2 ]

      print vector2

   elif opcion == 'c':

      a3 = a1 + a2

      b3 = b1 + b2

      c3 = c1 + c2

      vector3 = [ a3 , b3 , c3 ]

      print 'La suma del vector es', vector3

   elif opcion == 'd':

      print 'Debe elegir que vector va a restar A-b o B-A'

      opcion = ''

      while opcion != 'c':

         print 'Escoge una opcion: '

         print 'a) Primer Vector menos Segundo Vector. '

         print 'b) Segundo Vector menos Primer Vector. '

         print 'c) Salir. '

         opcion = raw_input('Presiona a , b o c y pulsa Enter: ')

         if opcion == 'a':

            a4 = a1 - a2

            b4 = b1 - b2

            c4 = c1 - c2

            vector4 = [ a4 , b4 , c4 ]

            print 'El Resultado es', vector4

         elif opcion == 'b':

            a5 = a2 - a1

            b5 = b2 - b1

            c5 = c2 - c1

            vector5 = [ a5 , b5 , c5 ]

            print 'El Resultado es', vector5

         elif opcion != 'c':

            print 'Solo hay 3 opciones, tu has tecleado', opcion

   elif opcion == 'e':

      escalar = [ a1 * a2 , b1 * b2 , c1 * c2 ]

      print 'El resultado Escalar es:', escalar

   elif opcion == 'f':

      print 'Debe elegir a que vector le va Calcular el Producto Vectorial'

      opcion = ''

      while opcion != 'c':

         print 'Escoge una opcion: '

         print 'a) Primer Vector a Segundo Vector. '

         print 'b) Segundo Vector a Primer Vector. '

         print 'c) Salir. '

         opcion = raw_input('Presiona a , b o c y pulsa Enter: ')

         if opcion == 'a':

            a6 = ( b1 * c2 )-( b2 * c1)

            b6 = ( c1 * a2 )-( c2 * a1)

            c6 = ( a1 * b2 )-( a2 * b1)

            vector6 = [ a6 , b6 , c6 ]

            print 'El Resultado es', vector6

         elif opcion == 'b':

            a7 = ( b2 * c1 )-( c2 * b1)

            b7 = ( a1 * c2 )-( a2 * c1)

            c7 = ( b1 * a2 )-( b2 * a1)

            vector7 = [ a7 , b7 , c7 ]

            print 'El Resultado es', vector7

        elif opcion != 'c':

            print 'Solo hay 3 opciones, tu has tecleado', opcion

   elif opcion == 'g':

      f = 180 / math.pi

      g = (a1 * a2) + (b1 * b2) +(c1 * c2)

      h = math.sqrt(( a1 ** 2 ) + ( b1 ** 2 ) +( c1 ** 2))

      i = math.sqrt(( a2 ** 2 ) + ( b2 ** 2 ) +( c2 ** 2))

      j = ( h * i )

      k = math.acos((g)/(j))

      angulo = f * k

      print 'El angulo entre los 2 vectores es: ' , angulo

   elif opcion == 'h':

      print 'A cual de los 2 vectores calcular longitud?:'
 
      opcion = ''

      while opcion != 'c':

         print 'Escoge una opcion: '

         print 'a) Longitud Primer Vector. '

         print 'b) Longitud Segundo Vector. '

         print 'c) Salir. '

         opcion = raw_input('Presiona a , b o c y pulsa Enter: ')

         if opcion == 'a':

            long_vect1 = math.sqrt(( a1 ** 2 ) + ( b1 ** 2 ) +( c1 ** 2))

            print 'El Resultado es', long_vect1

         elif opcion == 'b':

            long_vect2 = math.sqrt(( a2 ** 2 ) + ( b2 ** 2 ) +( c2 ** 2))

            print 'El Resultado es', long_vect2

         elif opcion != 'c':

            print 'Solo hay 3 opciones, tu has tecleado', opcion

   elif opcion != 'i':

      print 'Solo hay 9 opciones, tu has tecleado', opcion

      print 'Gracias por usar el programa :D'

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s