Test Foro de elhacker.net SMF 2.1

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.

CitarHaz 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 (python) [Seleccionar]
#!/usr/bin/env python

def Comprobacion(X, Y): # Creamos la funcion para comprobar lo que pide el ejercicio
   Z = X * X # Establecemos 'Z' como el cuadrado del primer numero, nos ayudara en las comprobaciones de los condicionales
   if (Y == Z): # Establecemos una condición. Si el segundo numero es igual a 'Z'
       return 'El segundo es el cuadrado exacto del primero' # Mensaje a retornar si se cumple la condicion
   elif (Y < Z): # Establecemos una condición. Si el segundo numero es menor que 'Z'
       return 'El segundo es menor que el cuadrado del primero' # Mensaje a retornar si se cumple la condicion
   else:
       return 'El segundo es mayor que el cuadrado del primero'

while True: # Bucle Infinito
   try: # Inicilizamos el manejo de errores. 'intentamos' hacer lo siguiente. En caso de error, devolvera el contenido de 'except'
       X = int(input('Ingrese un numero entero: ')) # Pedimos un numero entero, que se llamara 'X'
       Y = int(input('Ingrese otro numero entero: ')) # Pedimos un numero entero, que se llamara 'Z'
       print '%s' % Comprobacion(X, Y) # Imprimimos el valor que nos devuelve la funcion 'Comprobacion'
   except: # Contenido del except, con el cual controlamos el manejo de errores
       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:

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:
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
Cita de: 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'

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