Ver Mensaje Individual
  #9 (permalink)  
Antiguo 07/05/2012, 02:37
murooo
 
Fecha de Ingreso: mayo-2012
Mensajes: 6
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: Otro ejercicio sencillo con el while.

Cita:
Iniciado por jgalveg Ver Mensaje
Mi solución:
Código Python:
Ver original
  1. from math import sqrt,pi,cos
  2. print 'Vamos a realizar las siguientes operaciones con los datos introducidos.'
  3. print 'Teclea el nº que figura en el menú para realizar las operaciones.'
  4. print ''
  5. print '1. Introducir el primer vector.'
  6. print '2. Introducir el segundo vector.'
  7. print '3. Calcular la suma.'
  8. print '4. Calcular la diferencia.'
  9. print '5. Calcular el producto escalar.'
  10. print '6. Calcular el producto vectorial.'
  11. print '7. Calcular el ángulo ( en grados ) entre ellos.'
  12. print '8. Calcular la longitud.'
  13. print '9. Finalizar.'
  14. print ''
  15.  
  16. opcion=''
  17. while opcion !='9':
  18.   opcion=raw_input('Introduzca su elección:')
  19.  
  20.   # Sentencias de las operaciones.
  21.   if opcion=='1':
  22.     print'Introducimos el primer vector:'
  23.     x1=raw_input('Introducimos el valor de x:')
  24.     y1=raw_input('Introducimos el valor de y:')
  25.     z1=raw_input('Introducimos el valor de z:')
  26.   elif opcion == '2':
  27.     x2=raw_input('Introducimos el valor de x:')
  28.     y2=raw_input('Introducimos el valor de y:')
  29.     z2=raw_input('Introducimos el valor de z:')
  30.   elif opcion =='3':
  31.     print 'Calculamos la suma'
  32.     print 'La suma vectorial es igual a : (',x1+x2,',',y1+y2,',',z1+z2,')'
  33.   elif opcion =='4':
  34.     print 'Calculamos la diferencia'
  35.     print 'La diferencia vectorial es igual a : (',x1-x2,',',y1-y2,',',z1-z2,')'
  36.   elif opcion =='5':
  37.     print 'Calculamos el producto escalar'
  38.     print 'El producto escalar es igual a : (',x1*2+y1*y2+z1*z2,')'
  39.   elif opcion =='6':
  40.     print 'Calculamos el producto vectorial'
  41.     print 'El producto vectorial es igual a : (',y1*z2-z1*y2,',',z1*x2-x1*z2,',',x1*y2-y1*x2,')'
  42.   elif opcion =='7':
  43.     print 'Calculamos el ángulo entre ellos'
  44.     #Desglosamos la formula
  45.     numerador=(x1*x2)+(y1*y2)+(z1*z2)
  46.     denominador=sqrt(x1**2+y1**2+z1**2)*sqrt(x2**2+y2**2+z2**2)
  47.     angulo=180/pi*1/cos(numerador/denominador)
  48.     print 'El ángulo que forman entre ellos es igual a %2.2f:'%angulo
  49.   elif opcion =='8':
  50.     print 'Calculamos la longitud'
  51.     print 'La longitud del primer vector es igual %2.2f'%sqrt(x1**2+y1**2+z1**3)
  52.     print 'y la del segundo es %2.2f'%sqrt(x2**2+y2**2+z2**3)
  53.   elif opcion =='9':
  54.     print 'Programa finalizado. Muchas gracias'
  55.   else:
  56.     print 'Opción no válida. Debe estar comprendida entre el 1 y el 9'

Tiene algún que otro fallo.
brother nada mas una duda , que pasa si le pones como opcion el numero 10? te tira el mensaje opcion no valida del else?? creo que no