[Código] Cuadrado del primero - Ejercicio [Python]

Iniciado por @Sthéfano, 16 Octubre 2010, 00:15 AM

0 Miembros y 1 Visitante están viendo este tema.

@Sthéfano

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 ;)

[L]ord [R]NA

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.

@Sthéfano

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 ;)

marino90

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'

[L]ord [R]NA

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"?