• Miércoles 24 de Abril de 2024, 02:31

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Temas - ganryu

Páginas: [1]
1
Python / Ecuacion 2do Grado.
« en: Miércoles 27 de Enero de 2010, 10:12 »
Holas, hice este programita para resolver ecuaciones de segundo grado, pero querria mejorar el código de manera que no tenga tantos condicionales anidados, pero no se me ocurre como hacerlo  :brickwall:. Disculpen si mi pregunta es muy básica  :P .
Código: Python
  1. # -*- coding: UTF-8 -*-
  2. print "Ecuación ax² + bx + c = 0"
  3.  
  4. a = float(raw_input("Escribe el valor del coeficiente a: "))
  5. b = float(raw_input("Escribe el valor del coeficiente b: "))
  6. c = float(raw_input("Escribe el valor del coeficiente c: "))
  7. det = b ** 2 - 4 * a * c #cuando es mayor que 0 la raiz da un numero real, cuando es menor la raiz no tiene solucion real.
  8.  
  9.  
  10. if det < 0:
  11.     print "Sin solución real."
  12. elif det == 0:
  13.     if a == 0 and c == 0: #esto es para evitar usar -b/2a que da como resultado 0/0.
  14.         print "Todos los números son solución."
  15.     elif a == 0:
  16.         print "No tiene solución"
  17.     else:
  18.         print "Una única solución real:", (-b) / (2 * a) #debido a que la raiz vale 0.
  19. elif a == 0: #en este caso la ecuacion es una ecuacion de primer grado.
  20.     if b == 0:
  21.         if c == 0:
  22.             print "Todos los numeros son solución"
  23.         else:
  24.             print "No tiene solución"
  25.     else:
  26.         print "Una solución:", -c / b  
  27. else:    
  28.     print "Dos soluciones reales:", (-b +(det ** 0.5)) / (2*a), (-b -(det ** 0.5)) / (2 * a)
  29.  
  30.  
  31.  

Páginas: [1]