A continuación encontrarás una posible solución a los ejercicios planteados a lo largo del curso «Fundamentos de la Programación». Estos te ayudarán a comprobar tus avances a través de este fascinante mundo.
NOTA
Dado que el curso se encuentra actualmente en publicación, los ejercicios se actualizarán el día siguiente de la publicación de la nueva entrada.
Tipos de Datos
Ejercicio 01
Determina el tipo de dato correcto de los siguientes ejemplos:
- 25 -> Número Entero (int)
- “Barcelona” -> Cadena de Texto (str)
- 12.0 -> Número con Coma Flotante (float)
- True -> Booleano (bool)
- “” -> Cadena de Texto (str)
- false -> Error de tipo, los booleanos empiezan con mayúsculas
Ejercicio 02
Crea el programa más famoso de todo el sector de la programación: Hola Mundo. Este simplemente muestra por pantalla la cadena “¡Hola Mundo!”.
print("¡Hola Mundo!")
Este ejercicio no tiene ninguna complicación, simplemente debemos mostrar la cadena por pantalla mediante la función print().
Ejercicio 03
Crea un programa cuya finalidad sea el cálculo del área de un círculo (π·r²).
r = float(input("Introduce el radio del círculo: "))
a = 3.14*r*r
print("El área del círculo es: ", a)
Ahora ya nos enfrentamos a un ejercicio algo más complejo. Lo más importante es recordar que la función input(), que nos permite interactuar con el usuario y que este introduzca datos al programa, siempre nos generará una cadena de texto, por lo que es necesario convertirla mediante la función float() para poder operar con dicho valor (línea 1).
El resto es sencillo: simplemente operar con los datos y mostrar el resultado por pantalla.
Estructuras de Control
Ejercicio 04
Crea un programa que reciba dos números enteros y nos indique si uno es mayor o menor que otro o si son iguales.
a = int(input("Introduce el primer número: "))
b = int(input("Introduce el segundo número: "))
if a > b:
print("El número", a, "es mayor que el número", b)
elif b > a:
print("El número", a, "es menor que el número", b)
else:
print("Ambos números son iguales")
Veamos este código:
- Las dos primeras líneas se encargan de obtener los datos del usuario. Atención a la conversión a enteros, pues era uno de los requisitos del ejercicio.
- A continuación utilizamos la sentencia «if» para ver si el primero es mayor que el segundo. De ser cierto, se indica al usuario.
- En la línea 5 hemos utilizado la sentencia «elif» en lugar de anidar sentencias «if/else».
- Finalmente, si ninguna de las condiciones se han cumplido, sólo nos queda la opción de que sean iguales, así que lo indicamos sin necesidad de realizar ninguna comprobación extra.
Ejercicio 05
En este ejercicio vas a tener que programar una calculadora básica. Al usuario se le pedirá que introduzca dos números, para posteriormente mostrarle un menú desde el que seleccionará la operación a realizar (suma, resta, multiplicación o división). La calculadora deberá ejecutarse de forma continua hasta que el usuario seleccione la opción de salir del menú.
print("-------------")
print(" CALCULADORA ")
print("-------------")
# MENU EN BUCLE
while True:
print("==========================")
print("Selecciona la operación:")
print("1- SUMA")
print("2- RESTA")
print("3- PRODUCTO")
print("4- DIVISIÓN")
print("5- SALIR")
print("==========================")
opcion = int(input("Opción: "))
# Comprobamos si el usuario quiere salir
if(opcion == 5):
break
# Introducción de Operandos y Operación
op1 = float(input("Introduce el primer operando: "))
op2 = float(input("Introduce el segundo operando: "))
if(opcion == 1):
#SUMA
resultado = op1 + op2
print("La suma es: ", resultado)
elif(opcion == 2):
#RESTA
resultado = op1 - op2
print("La resta es: ", resultado)
elif(opcion == 3):
#PRODUCTO
resultado = op1 * op2
print("El producto es: ", resultado)
elif(opcion == 4):
#DIVISION
if(op2 == 0):
print("No se puede dividir por cero")
else:
resultado = op1 / op2
print("La división es: ", resultado)
else:
#ERROR
print("ERROR: Opción No Valida")
Estamos ante nuestro programa más largo hasta ahora, aunque no por ello el más complejo. Veámoslo en detalle:
- En las primeras líneas le mostramos al usuario que programa está ejecutando. Esta es una buena práctica, e incluso podría ir acompañada de una breve descripción de uso y la versión actual.
- En la línea 6 comienza el bucle principal del programa. En esta ocasión, he optado por un bucle continuo que se deberá romper desde el interior del mismo, pero otra posible implementación sería comprobar la opción del usuario como condición del bucle.
- Esta versión utiliza un menú creado a base de texto para interactuar con el usuario: se le muestran distintas opciones, y a continuación se le solicita que introduzca la desea. Hoy en día básicamente sólo se utilizan interfaces gráficas, pero en este curso no se verán (quizás en próximos).
- El if de salir se debe escribir antes de la solicitud de operandos, fuera del grupo de resto de opciones. De no ser así, se solicitarían los operandos e inmediatamente se saldría del programa, cosa que no tiene mucho sentido.
- Prestad atención a la línea 40. Dado que no es posible matemáticamente dividir por cero, tenemos que asegurarnos de que no es así antes de realizar la operación.
- Finalmente, en la línea 45 tratamos cualquier opción errónea introducida por el usuario que no esté en el menú.
Este programa podría mejorarse mucho, pero a estas alturas del curso, considero que cumple con el contenido suficiente.
Ejercicio 06
Escribe un programa que solicite un número al usuario y a continuación muestre el factorial del mismo.
print("-CALCULO DE FACTORIAL-")
numero = int(input("Introduce un número: "))
factorial = 1
# EL NÚMERO DEBE SER POSITIVO
if(numero < 0):
numero *= -1
while(numero > 1):
factorial *= numero
numero -= 1
print("El factorial es: ", factorial)
- En la línea 3, inicializamos el valor del factorial a 1. De esta forma, tenemos cubiertos ya los casos donde el número introducido sea 0 o 1.
- Dado que sólo existen los factoriales de números naturales (enteros positivos), mediante el if de la línea 6 nos aseguramos de que así sea (en la mayoría de calculadoras científicas, los factoriales de números negativos se calculan como si fueran positivos, así que aquí hacemos lo mismo).
- El bucle de la línea 9 realiza el cálculo del factorial en si. Mediante la condición, nos aseguramos de que sólo se calcule si el número es mayor que 1, dado que los casos anteriores a este ya están tratados. El contenido del bucle es simplemente la fórmula de calculo del factorial.
Estructuras de Datos (I)
Ejercicio 07
Escribe un programa que, una vez solicitado al usuario un vector de cualquier dimensión, calcule la media de todos sus elementos.
vector = []
media = 0
longitud = int(input("Introduce la longitud del vector a generar: "))
# Generación del vector
for i in range(0, longitud):
elemento = float(input("Introduce el elemento "+str(i)+": "))
vector.append(elemento)
#Calculo de la media
for i in vector:
media += i
media = media / longitud
print("La media del vector es: ", media)
- En la línea 1 inicializamos la variable vector como una lista vacía, para posteriormente ir añadiéndole los elementos necesarios
- El bucle de la línea 7 es el típico de creación de listas. En este caso, se le ha solicitado previamente la longitud de la misma al usuario.
- El segundo bucle (línea 12) se encarga de calcular la media. Fijaos lo útil que resulta el bucle For-In para recorrer listas.
#04 / Fundamentos de la Programación
- Introducción a la Programación
- Tipos de Datos
- Estructuras de Control (If/Else)
- Estructuras de Control (Bucles)
- Estructuras de Datos (Listas)
- Estructuras de Datos (Ordenación)
- Estructuras de Datos (Matrices)
- Funciones
- Funciones (Recursividad)
- Estructuras de Datos (Registros)
- Ficheros
- ANEXO – Ejercicios Resueltos
Proyecto Final – LIFE, el Juego de la Vida
