Ver Mensaje Individual
  #32 (permalink)  
Antiguo 08/11/2010, 08:58
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: "leer entero" muy importante

Es que, compadre, realmente parece que no has leído nada de lo que se te ha contestado hasta ahora. Se sabe que no se aprende a programar en dos días, pero ¿te has puesto a pensar en lo que querés que el código haga, o simplemente te pusiste a escribir cosas como si ná?

Tu último código realmente me hace pensar que no estás leyendo todo lo que razpeitia te escribió antes, y que no estás leyendo los mensajes de error de Python. Te estás desesperando pensando en que "es algo muy simple", pero al mismo tiempo estás pasando por alto todos los consejos que se te dieron ya.

Te recomiendo borrar todo lo que hiciste, y empezar de nuevo. Planteá el programa de diferente forma: sentate un rato con un lápiz y una hoja de papel, y describí lo que querés hacer.

Ejemplo de lo que te pido que hagas: describí el problema en términos cada vez más específicos:

Objetivo: Calcular las raíces de un polinomio de segundo grado
¿Qué necesito hacer?
- pedir los coeficientes al usuario
- calcular las raíces
- imprimir las raíces

¿Cómo calculo las raíces?
- con la fórmula. Esto me puede dar 1 o 2 raíces reales, o 2 raíces complejas, según el determinante.
- Calculo el determinante. Según sea positivo, 0 o negativo, tendré las raíces.

...

Y así hasta que describas el problema completo. Otro paso es ver qué te ofrece python para hacer lo que necesitás: ¿sabías que existe una función complex() para crear números complejos?
Si no hacés estos pasos, siempre te vas a encontrar los mismos problemas, tanto con programas simples como con programas complicados.

¿Querés una solución? fijate en esto:

Código Python:
Ver original
  1. from __future__ import division
  2. a = input("valor de a: ")
  3. b = input("valor de b: ")
  4. c = input("valor de c: ")
  5.  
  6. if a == 0:
  7.     print("No es una ecuación de segundo grado")
  8. else:
  9.     determinante = b**2 - 4*a*c
  10.     parte_real = -b/(2*a)
  11.     parte_imaginaria = abs(determinante)**0.5/(2*a)
  12.  
  13.     if determinante >= 0:
  14.         x1 = parte_real + parte_imaginaria
  15.         x2 = parte_real - parte_imaginaria
  16.     else:
  17.         x1 = complex(parte_real, parte_imaginaria)
  18.         x2 = complex(parte_real, -parte_imaginaria)
  19.  
  20.     if x1==x2:
  21.         print "Una sola raíz doble:", x1
  22.     else:
  23.         print "Dos raíces: x1=", x1, ", x2=", x2


Saludos.