Ejercicio 39 del libro "Introduccion a la programacion con python"

Iniciado por D3ivid, Marzo 02, 2015, 07:13:53 AM

Tema anterior - Siguiente tema

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

Marzo 02, 2015, 07:13:53 AM Ultima modificación: Marzo 02, 2015, 08:44:26 AM por ANTRAX

Buenas, este será el comienzo de una serie de ejercicios del libro mencionado en el titulo, en el cual pondré el codigo de los ejercicios resueltos, bien para que los comenteis, critiqueis,  debatais  y corrigais si asi lo estimais oportuno, los código son básicos, pero si de los miles de usuarios que miran en el foro aunque sea a uno le sirve... entoces merece la pena. Bueno al lio.

ejer.39 Haz un programa que pida al usuario una cantidad de euros, una tasa de interés, y unos años. Muestra en pantalla el resultado del capital transcurrido esos años.

Hemos de saber que formula es C*(1+x/100)**n en Euros   Para el que no sepa en python * (multiplicación)  ** (elevado)

Código: python

# Capital obtenido

cantidad=float(raw_input("Ponga que cantidad desea destinar a la inversion"))
interes=float(raw_input("Seleccione el inter?s acordado sin el signo %"))
tiempo=float(raw_input("Tiempo en a?os de la inversion"))


#Recuerda que un capital de C euros a un inter?es del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.
cantidad_final=int(cantidad*(1+interes/100)**tiempo)
beneficio= int(cantidad_final-cantidad)

print "El capital al final del transcurso es ",cantidad_final,
print "habiendo incrementado el patrimonio en ",beneficio,"?"


Espero os guste y que el código me haya quedado bien por que es mi primera vez un saludo underc0ders :)


Pd. Quien no sepa nada sobre python y/o programación y desea aprender el libro está en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta Cualquier duda o reflexión aqui estamos

Hola windux, es bueno que coloques ejemplos del libro que recomiendas, respecto a tu código, yo lo haría de la siguiente forma (respondo entre líneas)

Código: python
#Usaría input en vez de raw_input porque solamente cachas números

cantidad=input("Ponga que cantidad desea destinar a la inversion")
interes=input("\nSeleccione el inter?s acordado sin el signo %")
tiempo=input("\nTiempo en a?os de la inversion")


#Recuerda que un capital de C euros a un interés del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.

#Vas a realizar una operación de los valores que ingreso el usuario, pero como manejas divisiones, obviamente requieres un cierto nivel de precisión para el manejo de decimales, es por eso que, se divide el interés entre 100.0, cuando a un entero le agregas el .0(punto 0), hace el cast automático a float.

cantidad_final=cantidad*(1+interes/100.0)**tiempo
beneficio=cantidad_final-cantidad

#Y al final como veo que lo quieres imprimir redondeado, pues haces el cast de la variable con int(variable)
print "\nEl capital al final del transcurso es ",int(cantidad_final),"\n"
print "habiendo incrementado el patrimonio en ",int(beneficio),"?"



-Salud y Libertad-


No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Hola windux, es bueno que coloques ejemplos del libro que recomiendas, respecto a tu código, yo lo haría de la siguiente forma (respondo entre líneas)

Código: python
#Usaría input en vez de raw_input porque solamente cachas números

cantidad=input("Ponga que cantidad desea destinar a la inversion")
interes=input("\nSeleccione el inter?s acordado sin el signo %")
tiempo=input("\nTiempo en a?os de la inversion")


#Recuerda que un capital de C euros a un interés del x por cien durante n a?nos se convierten
#en C ? (1 + x/100)n euros.

#Vas a realizar una operación de los valores que ingreso el usuario, pero como manejas divisiones, obviamente requieres un cierto nivel de precisión para el manejo de decimales, es por eso que, se divide el interés entre 100.0, cuando a un entero le agregas el .0(punto 0), hace el cast automático a float.

cantidad_final=cantidad*(1+interes/100.0)**tiempo
beneficio=cantidad_final-cantidad

#Y al final como veo que lo quieres imprimir redondeado, pues haces el cast de la variable con int(variable)
print "\nEl capital al final del transcurso es ",int(cantidad_final),"\n"
print "habiendo incrementado el patrimonio en ",int(beneficio),"?"


Yo creo que ahí ya depende de la lógica que se quiera implementar.
Cada entrada está asociada a un tipo de dato (entero, decimal, etc.). Eso el programador o el cliente lo define.

En entradas del tipo variable = float(raw_input(...)) podemos dividir sin problemas por un valor entero, Ej: variable / 100   y no habrá problema con el manejo de decimales.

Saludos

¡< blozzter >!