Foros del Web » Programando para Internet » Python »

"leer entero" muy importante

Estas en el tema de "leer entero" muy importante en el foro de Python en Foros del Web. Vamos a ver, siento muchísimo mi manera de hablar...pero lo que no voy a estar haciendo es meterme en cosas que no estoy dando, estoy ...

  #31 (permalink)  
Antiguo 07/11/2010, 16:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 19
Antigüedad: 14 años
Puntos: 0
Respuesta: "leer entero" muy importante

Vamos a ver, siento muchísimo mi manera de hablar...pero lo que no voy a estar haciendo es meterme en cosas que no estoy dando, estoy siguiendo un libro y todavía no he llegado a eso (pensar que estoy por la Pág.5)...si me parece complejo os lo digo por que lo intento y no saco nada, (no se donde tengo que poner cada cosa ni lo que tengo que cambiar), entonces yo pienso que lo mas difícil esta echo, que es montar el programa. Solo os pido que me lo corrijáis por favor, si no hacérmelo saber porque dejo el foro y os dejo de volver locos y pregunto en otro sitio, pero vamos no se que os puede costar corregir 3 o 4 cosas pequeñas que yo no veo o que no consigo y que se pueden solucionar en 10 minutos y no en 3 dias...

Muchas gracias

Código Python:
Ver original
  1. def complejos (d,k):
  2.     if d==0 and k==0:
  3.         print(0)
  4.     elif d==0 and k==1:
  5.         print("i")
  6.     elif d==0 and k==-1:
  7.         print("-i")
  8.     elif d==0 and k!=0:
  9.         print(str(k) + "i")
  10.     elif d!=0 and k==0:
  11.         print(d)
  12.     elif k==-1:
  13.         print (str(d) + "-" + "i")
  14.     elif k<-1:
  15.         print (str(d)+ str(k)+"i")
  16.     elif k==1:    
  17.         print (str(d) + "+" + "i")
  18.     elif k>1:
  19.         print (str(d)+ "+" + str(k)+"i")
  20.     else:
  21.         print (str(d) +  str(k) + "i")
  22.  
  23. import math
  24.  
  25. a= input=2
  26. b= input=2
  27. c= input=1
  28.  
  29.  
  30. if a==0:
  31.     print("no es una ecuacion de segundo grado")
  32. else:
  33.     m=b**2-4*a*c
  34.     if m==0:
  35.         print(-b/(2*a))
  36.     elif m<0:
  37.         "x1=complejos(-b/(2*a), (math.sqrt(m)) / 2*a )"
  38.         "x2=complejos(-b/(2*a), (math.sqrt(m)) / 2*a )"
  39.     else:
  40.         "x1=(str(-b)+'+'+math.sqrt(m))/(2*a)"
  41.         "x2=(str(-b)+'-'+math.sqrt(m))/(2*a)"
  #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.
  #33 (permalink)  
Antiguo 17/11/2010, 13:56
Avatar de Mar91  
Fecha de Ingreso: octubre-2010
Mensajes: 7
Antigüedad: 14 años
Puntos: 1
Respuesta: "leer entero" muy importante

Estás usando mal print.

Cuando lo usas, lo que pongas a continuación tiene que ir entre comillas, a menos que sea una función definida.

Por ejemplo.

Código Python:
Ver original
  1. print 'Hola'
En la pantalla de texto aparecerá:
>>>>Hola

En la caso de imprimir una variable sería.
Código Python:
Ver original
  1. x = 1+1
  2.  
  3. print 'Hola', x

>>> Hola 2

No hacen falta los paréntesis... solo en casos matemáticos como estos:
Código Python:
Ver original
  1. x = 1+1
  2.  
  3. print 'Hola', (x+4)/2

>>> Hola 3

Lo haces mal en esta parte de tu código, sobre todo:
Código:
    else:
        print(x1=(str(-b)+'+'+math.sqrt(m))/(2*a)) 
        print(x2=(str(-b)+'-'+math.sqrt(m))/(2*a)
Mira, lo he modificado un poco por cuestiones matemáticas, pero hay algo de tu código que no entiendo.

Código Python:
Ver original
  1. if a==0:
  2.     print 'no es una ecuacion de segundo grado'
  3. else:
  4.     m = b**2-4*a*c
  5.     if m >= 0:
  6.       x1 = (-b + sqrt(m)) / (2 * a)
  7.       x2 = (-b - sqrt(m)) / (2 * a)
  8.       if x1 == x2:
  9.         print 'Solución de la ecuación: x=%4.3f' % x1
  10.       else:
  11.         print 'Soluciones de la ecuación: x1=%4.3f y x2=%4.3f' % (x1, x2)
  12.     else:
  13.         # Aca iría la parte de los números complejos.

Cuando te dicen que mezclas cadenas con números se refiere a que cuando defines "complejos", cuando usas la función str, ello te devuelve una cadena... y las cadenas no se pueden dividir por enteros como pretendes aca:
Cita:
x1 = complejos(-b/(2*a), (math.sqrt(m)) / 2*a )
x2 = complejos(-b/(2*a), (math.sqrt(m)) / 2*a )
Las cadenas son caráctares. Puedes sumar a cadenas otras cadenas, y multiplicarlas por enteros.
1 así solo, es un entero. Con comillas (en python, obvio), es una cadena ('1')

Ejemplo:
'1' * 5 = '11111'
'a' * 5 = 'aaaaa'
'1' + 'a' = '1a'


Mejor espera a cursar esa materia, e irás aprendiendo esos pequeños (aunque determinantes) detalles con tu profesor, o relee con más atención. Porque parece que todavía no das la talla para este tipo de ejercicios.
Y recomiendo lo mismo que Alvaro, hazlo todo desde cero, y lee mejor la parte de definición de funciones. Porque el error empieza desde el principio.

Última edición por Mar91; 17/11/2010 a las 14:06
  #34 (permalink)  
Antiguo 17/11/2010, 22:01
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 2
Respuesta: "leer entero" muy importante

JAJAJAJAJAJAJAJAJA........ y más JAJAJAJAJAJAJAJAJAJAJA........

Este chico entró al foro para que le hagamos la tarea, no es que tengo algo en tu contra, sino que esas cosas que preguntas son demasiado TONTAS para un estudiante que va por el tema de "Funciones".

Se supone que a estas alturas deberías tener un buen conocimiento sobre la lógica y los operadores, siempre responde con un "no entiendo".

¿Cuando obtengas el título también planeas postear para que hagan tus proyectos? Soy novato y estoy aprendiendo por mi cuenta, también estoy en el mismo tema y me preocupa ser un incompetente.
  #35 (permalink)  
Antiguo 17/11/2010, 22:49
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: "leer entero" muy importante

Cita:
Iniciado por Gobix
¿Cuando obtengas el título también planeas postear para que hagan tus proyectos? Soy novato y estoy aprendiendo por mi cuenta, también estoy en el mismo tema y me preocupa ser un incompetente.
¿Que problemas tienes te podemos ayudar?
Tal vez estas empezando por el libro equivocado yo empece así xD Empece por un libro que era muy avanzado.
  #36 (permalink)  
Antiguo 17/11/2010, 23:13
 
Fecha de Ingreso: octubre-2010
Mensajes: 25
Antigüedad: 14 años
Puntos: 2
De acuerdo Respuesta: "leer entero" muy importante

Cita:
Iniciado por razpeitia Ver Mensaje
¿Que problemas tienes te podemos ayudar?
Tal vez estas empezando por el libro equivocado yo empece así xD Empece por un libro que era muy avanzado.
Hasta ahora no tengo problemas, sólo que me ha causado gracia esta pregunta, tienes dos páginas intentando enseñarle algo bastante obvio que él no tiene idea de lo que es.

El libro con el que estoy aprendiendo se llama "Introducción a la programación Python de Andrés Marzal e Isabel Gracia", muy buen libro; tiene unos ejercicios que te exprimen todo el jugo cerebral.

AQUÍ está ese libro: http://goo.gl/qB4gy

Última edición por Gobix; 17/11/2010 a las 23:26

Etiquetas: importante
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:03.