Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Meta en 3 Octubre 2010, 02:00 am



Título: [python] Disenar este programa.
Publicado por: Meta en 3 Octubre 2010, 02:00 am
Hola:

No entiendo el concepto de lo que me habla.

"El segundo es el cuadrado exacto del primero."

"El segundo es menor que el cuadrado del primero."

"El segundo es mayor que el cuadrado del primero."

Citar
Haz un programa con Python que, dados dos números enteros, muestre por pantalla uno de estos mensajes: "El segundo es el cuadrado exacto del primero.", "El segundo es menor que el cuadrado del primero." o "El segundo es mayor que el cuadrado del primero.", dependiendo
de la verificación de la condición correspondiente al significado de cada mensaje.

Saludo.


Título: Re: [python] Disenar este programa.
Publicado por: criskapunk en 3 Octubre 2010, 02:53 am
Un cuadrado perfecto es un numero cuya raiz cuadrada es un numero entero, osea, no tiene parte decimal (Sacado de Wikipedia ;D) y los cuadrados, es elevar el numero al exponente 2 (n ** 2).

Lo que tenes que hacer son tres comprobaciones, y mostrar un mensaje dependiendo de que condicion se cumple.

Un saludo ;)







Título: Re: [python] Disenar este programa.
Publicado por: Meta en 3 Octubre 2010, 03:25 am
Buenas:

¿Te refieres algo así?

Código
  1. # Visualiza temario y da un salto de línea.
  2. print 'Tema 4, apartado 7. \n'
  3.  
  4. # Introducir un valor entero.
  5. a = float(raw_input('Introduce un número: '))
  6.  
  7. a = sqrt(16)**2
  8. print a

Saludo.


Título: Re: [python] Disenar este programa.
Publicado por: criskapunk en 3 Octubre 2010, 03:34 am
Ahi estas "pisando" los valores, porque primero asignas a la variable a el valor ingresado por el usuario, y despues le das como valor el numero 16.

Lo que tenes que hacer es pedir que se ingresen dos numeros enteros (El valor de raw_input() lo tendrias que convertir utilizando int()), y despues hacer un condicional con tres posibles opciones.

Un saludo ;)

Edito:
Una consulta Meta, que manual estas siguiendo?


Título: Re: [python] Disenar este programa.
Publicado por: Meta en 3 Octubre 2010, 03:48 am
Voy a intentarlo.

Estoy siguiendo el manual introducción a la Programación con Python.

No lo tengo completo aún, poco a poco lo estoy consiguiendo por amigos y son en PDF.

Hice algo así:

Código
  1. # Introducir un valor entero.
  2. a = int(raw_input('Introduce un número: '))
  3.  
  4. X = sqrt(16)**2
  5.  
  6. if condición 1:
  7.    print 'El segundo es el cuadrado exacto del primero.'
  8.  
  9. if condición 2:
  10.    print 'El segundo es menor que el cuadrado del primero.'
  11.  
  12. if condición 3:
  13.    print 'El segundo es mayor que el cuadrado del primero.'
  14.  


Título: Re: [python] Disenar este programa.
Publicado por: Meta en 3 Octubre 2010, 04:28 am
Intentando hacer algo de esto:

Código
  1. # Introducir un valor entero.
  2. a = int(raw_input('Introduce un número: '))
  3.  
  4.  
  5. if condición 1:
  6.    X1 = sqrt(16)**2
  7.    print 'El segundo es el cuadrado exacto del primero.'
  8.  
  9. if condición 2:
  10.    X2 = sqrt(16)**2
  11.    print 'El segundo es menor que el cuadrado del primero.'
  12.  
  13. if condición 3:
  14.    X3 = sqrt(16)**2
  15.    print 'El segundo es mayor que el cuadrado del primero.'
  16.  

Sigo intentando y pescando a la vez...

Código
  1.  
  2. from math import sqrt
  3.  
  4. # Introducir un valor entero.
  5. a = int(raw_input('Introduce un número: '))
  6.  
  7.  
  8. if a == 1:
  9.    X1 = sqrt(16)
  10.    print 'El segundo es el cuadrado exacto del primero.'
  11.  
  12. if a < 1:
  13.    X2 = sqrt(16)**2
  14.    print 'El segundo es menor que el cuadrado del primero.'
  15.  
  16. if a > 1:
  17.    X3 = sqrt(16)**2
  18.    print 'El segundo es mayor que el cuadrado del primero.'
  19.  

No se que hay que hacer exactamente. Si hay que usar un if else a lo mejor es buena idea que solo if para arriba y para abajo.

Edito:

Una vez más lo intento, parece que se resiste. Me di cuenta que hay que introducir dos números enteros. Lo leí bien el principio.

Eso si, todavía sigo sin entender ni papa de lo que realmente hay que hacer, por eso estoy así.

Código
  1. from math import sqrt
  2.  
  3. # Introducir un valor entero.
  4. a = int(raw_input('Introduce un n&#250;mero entero: '))
  5. b = int(raw_input('Introduce otro n&#250;mero entero: '))
  6.  
  7.  
  8. if a == b:
  9.    X1 = sqrt(16)
  10.    print 'El segundo es el cuadrado exacto del primero.'
  11.  
  12. if a < b:
  13.    X2 = sqrt(16)**2
  14.    print 'El segundo es menor que el cuadrado del primero.'
  15.  
  16. if a > b:
  17.    X3 = sqrt(16)**2
  18.    print 'El segundo es mayor que el cuadrado del primero.'
  19.  



Código
  1. from math import sqrt
  2.  
  3. # Introducir un valor entero.
  4. a = int(raw_input('Introduce un n&#250;mero entero: '))
  5. b = int(raw_input('Introduce otro n&#250;mero entero: '))
  6.  
  7.  
  8. if a == b:
  9.    X1 = sqrt(b)
  10.    print 'El segundo es el cuadrado exacto del primero.'
  11.  
  12. if a < b:
  13.    X2 = sqrt(b)
  14.    print 'El segundo es menor que el cuadrado del primero.'
  15.  
  16. if a > b:
  17.    X3 = sqrt(b)
  18.    print 'El segundo es mayor que el cuadrado del primero.'

Saludo.


Título: Re: [python] Disenar este programa.
Publicado por: criskapunk en 3 Octubre 2010, 14:44 pm
Buenas,

No entiendo es porque dentro de cada if pones X1 = sqrt(b). En todo caso eso deberia ser parte de la condicion :)

Por ejemplo, la primer condicion dice "El segundo es el cuadrado exacto del primero". Lo que tendrias que hacer seria algo asi:

Código
  1. if a = math.sqrt(b) # La raiz cuadrada del segundo, es el primero

Lo que vos haces en tu script, es comprobar que a y b son iguales. Se nota la diferencia?

Otra cosa, si lo que queres evaluar son varias condiciones, tenes dos formas mas para hacerlo.

Utilizando if's anidados:

Código
  1. if condicion1:
  2.    # Instrucciones a ejecutar
  3. else:
  4.    if condicion2:
  5.        # Instrucciones a ejecutar
  6.    else:
  7.        if condicion3:
  8.            # Instrucciones a ejecutar

O utilizando elif:

Código
  1. if condicion1:
  2.    # Instrucciones
  3. elif condicion2:
  4.    # Instrucciones
  5. elif condicion3:
  6.    # Instrucciones
  7.    # Como ves, la sentencia ELSE no es obligatoria

Un saludo ;)