Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: @Sthéfano en 16 Octubre 2010, 00:15 am



Título: [Código] Cuadrado del primero - Ejercicio [Python]
Publicado por: @Sthéfano en 16 Octubre 2010, 00:15 am
Bueno, la verdad me asombro ver como les costo hacerlo a otras personas. Es algo muy sencillo.

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.

Aquí les dejo mi solución, bien simple y con explicaciones.

Código
  1. #!/usr/bin/env python
  2.  
  3. def Comprobacion(X, Y): # Creamos la funcion para comprobar lo que pide el ejercicio
  4.    Z = X * X # Establecemos 'Z' como el cuadrado del primer numero, nos ayudara en las comprobaciones de los condicionales
  5.    if (Y == Z): # Establecemos una condición. Si el segundo numero es igual a 'Z'
  6.        return 'El segundo es el cuadrado exacto del primero' # Mensaje a retornar si se cumple la condicion
  7.    elif (Y < Z): # Establecemos una condición. Si el segundo numero es menor que 'Z'
  8.        return 'El segundo es menor que el cuadrado del primero' # Mensaje a retornar si se cumple la condicion
  9.    else:
  10.        return 'El segundo es mayor que el cuadrado del primero'
  11.  
  12. while True: # Bucle Infinito
  13.    try: # Inicilizamos el manejo de errores. 'intentamos' hacer lo siguiente. En caso de error, devolvera el contenido de 'except'
  14.        X = int(input('Ingrese un numero entero: ')) # Pedimos un numero entero, que se llamara 'X'
  15.        Y = int(input('Ingrese otro numero entero: ')) # Pedimos un numero entero, que se llamara 'Z'
  16.        print '%s' % Comprobacion(X, Y) # Imprimimos el valor que nos devuelve la funcion 'Comprobacion'
  17.    except: # Contenido del except, con el cual controlamos el manejo de errores
  18.        print 'Surgio un error, intente nuevamente' # Mensaje a devolver en caso de que haya surgido un error mientras se ejecutaba el 'try'.

Este corto y sencillo código, nos devuelve:

Código:
IDLE 2.6.5      ==== No Subprocess ====
>>>
Ingrese un numero entero: 2
Ingrese otro numero entero: 4
El segundo es el cuadrado exacto del primero
Ingrese un numero entero: 2
Ingrese otro numero entero: 3
El segundo es menor que el cuadrado del primero
Ingrese un numero entero: 2
Ingrese otro numero entero: 5
El segundo es mayor que el cuadrado del primero
Ingrese otro numero entero: HOLA
Surgio un error, intente nuevamente

Como veran, cumple con los requerimientos de el ejercicio y cumple con el manejo de errores.

Saludos a todos, y espero ver sus formas de resolver este problema :D

Saludos a todos ;)


Título: Re: [Código] Cuadrado del primero - Ejercicio [Python]
Publicado por: [L]ord [R]NA en 16 Octubre 2010, 00:20 am
Sugerencias:
  • La variable Z en la funcion esta de mas, puedes remplazarla por su valor (X**2)
  • el ultimo elif cambialo por un else.
  • Coloca la comprobacion de errores dentro de la funcion, asi la puedes implementar en cualquier momento sin tener que colocar una comprobacion de errores dentro de cada programa que la utilice.


Título: Re: [Código] Cuadrado del primero - Ejercicio [Python]
Publicado por: @Sthéfano en 16 Octubre 2010, 00:24 am
Me parecio mejor definir la variable Z. Ya que de este modo evito poner (X ** 2) cada vez que lo necesite.

Sobre el elif, tienes mucha razon. Y la comprobacion tambien, pero lo hize en 5 minutos y luego explique, no hubo mucho desempeño :P

Saludos compañero ;)


Título: Re: [Código] Cuadrado del primero - Ejercicio [Python]
Publicado por: marino90 en 6 Enero 2011, 04:30 am
p_num = int(raw_input('Ingrese el primer numero'))
s_num = int(raw_input('Ingrese el segundo numero'))

from math import *
if sqrt(s_num) == p_num:
    print 'El segundo es exactamente el cuadrado del primero'
elif sqrt(s_num) < p_num:
    print 'El segundo es menor que el cuadrado del primero'
else:
    print 'El segundo es mayor que el cuadrado del primero'


Título: Re: [Código] Cuadrado del primero - Ejercicio [Python]
Publicado por: [L]ord [R]NA en 8 Enero 2011, 17:44 pm
p_num = int(raw_input('Ingrese el primer numero'))
s_num = int(raw_input('Ingrese el segundo numero'))

from math import *
if sqrt(s_num) == p_num:
    print 'El segundo es exactamente el cuadrado del primero'
elif sqrt(s_num) < p_num:
    print 'El segundo es menor que el cuadrado del primero'
else:
    print 'El segundo es mayor que el cuadrado del primero'

Que sucede si el usuario en p_num introduce "J"?