Manual Algoritmo de Programacion
Manual Algoritmo de Programacion
1. Información General
Carrera y Nivel:
Docente:
1
Diego Javier Bastidas Logroño
Paralelo
“I”
1. Portada
2. Índice
3. Introducción
4. Objetivos
5. ¿Qué es un algoritmo?
6. ¿Qué es el pseudocódigo?
8. Estructuras básicas:
9. Ejercicios propuestos
10. Glosario
11. Bibliografía
12. Conclusión
3. Introducción
4. Objetivos
6.-¿Qué es pseudocódigo?
Los algoritmos se construyen utilizando tres estructuras fundamentales que permiten organizar y
controlar el flujo de las instrucciones:
1. Secuencia
Es la ejecución ordenada de instrucciones, una tras otra, tal como están escritas. Es la base de
cualquier algoritmo.
2. Decisión (Condicionales)
Permite que el algoritmo tome decisiones según se cumpla o no una condición. Utiliza estructuras
como si...entonces...sino.
3. Iteración (Bucles)
Repite un bloque de instrucciones mientras se cumpla una condición. Es útil cuando se requiere
realizar tareas repetitivas.
9.-Ejercicios propuestos
print("¡Hola Mundo!")
2.- Escribir un programa que almacene la cadena ¡Hola Mundo! en una variable y luego muestre
por pantalla el contenido de la variable.
mensaje = "¡Hola Mundo!"
print(mensaje)
3.- Escribir un programa que pregunte el nombre del usuario en la consola y después de que el
usuario lo introduzca muestre por pantalla la cadena ¡Hola <nombre>!, donde <nombre> es el
nombre que el usuario haya introducido.
nombre = input("Introduce tu nombre: ")
4.- Escribir un programa que muestre por pantalla el resultado de la siguiente operación
aritmética (3+22⋅5)2
print(((3 + 2) / (2 * 5)) ** 2)
5.- Escribe un programa que pregunte al usuario por el número de horas trabajadas y el coste
por hora. Después debe mostrar por pantalla la paga que le corresponde.
horas = float(input("Introduce tus horas de trabajo: "))
6.- Escribir un programa que lea un entero porsitivo, n, introducido por el usuario y después
muestre en pantalla la suma de todos los enteros desde 1 hasta n. La suma de los n primeros
enteros positivos puede ser calculada de la siguiente forma:
suma=n(n+1)2
suma = n * (n + 1) / 2
print("La suma de los primeros números enteros desde 1 hasta " + str(n) + " es " + str(suma))
7.- Escribir un programa que pida al usuario su peso (en kg) y estatura (en metros), calcule el
índice de masa corporal y lo almacene en una variable, e imprima por pantalla la frase Tu índice
de masa corporal es <imc> donde <imc> es el índice de masa corporal calculado redondeado con
dos decimales.
peso = input("¿Cuál es tu peso en kg? ")
imc = round(float(peso)/float(estatura)**2,2)
8.- Escribir un programa que pida al usuario dos números enteros y muestre por pantalla la <n>
entre <m> da un cociente <c> y un resto <r> donde <n> y <m> son los números introducidos por
el usuario, y <c> y <r> son el cociente y el resto de la división entera respectivamente.
n = input("Introduce el dividendo (entero): ")
m = input("Introduce el divisor (entero): ")
print(n + " entre " + m + " da un cociente " + str(int(n) // int(m)) + " y un resto " + str(int(n) %
int(m)))
Ejercicios de Cadenas
1.- Escribir un programa que pregunte el nombre del usuario en la consola y un número entero e
imprima por pantalla en líneas distintas el nombre del usuario tantas veces como el número
introducido.
nombre = input("¿Cómo te llamas? ")
2.- Escribir un programa que pregunte el nombre completo del usuario en la consola y después
muestre por pantalla el nombre completo del usuario tres veces, una con todas las letras
minúsculas, otra con todas las letras mayúsculas y otra solo con la primera letra del nombre y de
los apellidos en mayúscula. El usuario puede introducir su nombre combinando mayúsculas y
minúsculas como quiera.
addCódigo
addTexto
print(name.lower())
print(name.upper())
print(name.title())
3.- Escribir un programa que pregunte el nombre del usuario en la consola y después de que el
usuario lo introduzca muestre por pantalla <NOMBRE> tiene <n> letras, donde <NOMBRE> es el
nombre de usuario en mayúsculas y <n> es el número de letras que tienen el nombre.
nombre = input("¿Cómo te llamas? ")
4.- Los teléfonos de una empresa tienen el siguiente formato prefijo-número-extension donde el
prefijo es el código del país +34, y la extensión tiene dos dígitos (por ejemplo +34-913724710-
56). Escribir un programa que pregunte por un número de teléfono con este formato en la
consola y muestre por pantalla el número de teléfono sin el prefijo y la extensión.
tel = input("Introduce un número de teléfono con el formato +xx-xxxxxxxxx-xx: ")
print(frase[::-1])
6.- Escribir un programa que pida al usuario que introduzca una frase en la consola y una vocal
en minúscula, y después muestre por pantalla la misma frase pero con la vocal introducida en
mayúscula
frase = input("Introduce una frase: ")
print(frase.replace(vocal, vocal.upper()))
7.- Escribir un programa que pregunte el correo electrónico del usuario en la consola y muestre
por pantalla otro correo electrónico con el mismo nombre (la parte delante de la arroba @) pero
con dominio ceu.es.
email = input("Introduce tu correo electrónico: ")
print(email[:email.find('@')] + '@ceu.es')
8.- Escribir un programa que pregunte por consola el precio de un producto en euros con dos
decimales y muestre por pantalla el número de euros y el número de céntimos del precio
introducido.
precio = input("Introduce el precio del producto con dos decimales: ")
Ejercicios de Condicionales
1.- Escribir un programa que pregunte al usuario su edad y muestre por pantalla si es mayor de
edad o no.
age = int(input("¿Cuál es tu edad? "))
else:
2.- Escribir un programa que almacene la cadena de caracteres contraseña en una variable,
pregunte al usuario por la contraseña e imprima por pantalla si la contraseña introducida por el
usuario coincide con la guardada en la variable sin tener en cuenta mayúsculas y minúsculas.
key = "contraseña"
password = input("Introduce la contraseña: ")
if key == password.lower():
else:
3.- Escribir un programa que pida al usuario dos números y devuelva su división. Si el usuario no
introduce números debe devolver un aviso de error y si el divisor es cero también.
n = float(input("Introduce el dividendo: "))
m = float(input("Introduce el divisior: "))
if m == 0:
print("¡Error! No se puede dividir por 0.")
else:
print(n/m)
4.- Escribir un programa que pida al usuario un número entero y muestre por pantalla si es par o
impar.
if n % 2 == 0:
else:
5.- Para tributar un determinado impuesto se debe ser mayor de 16 años y tener unos ingresos
superiores a 1000 € mensuales. Escribir un programa que pregunte al usuario su edad y sus
ingresos mensuales y muestre por pantalla si el usuario tiene que tributar o no.
6.- Los alumnos de un curso se han dividido en dos grupos A y B de acuerdo al sexo y el nombre.
El grupo A esta formado por las mujeres con un nombre anterior a la M y los hombres con un
nombre posterior a la N y el grupo B por el resto. Escribir un programa que pregunte al usuario
su nombre y sexo, y muestre por pantalla el grupo que le corresponde.
7.- Los tramos impositivos para la declaración de la renta en un determinado país son los
siguientes:
Renta Tipo impositivo
Menos de 10000€ 5%
8.- En una determinada empresa, sus empleados son evaluados al final de cada año. Los puntos
que pueden obtener en la evaluación comienzan en 0.0 y pueden ir aumentando, traduciéndose
en mejores beneficios. Los puntos que pueden conseguir los empleados pueden ser 0.0, 0.4. o
0.6, pero no valores intermedios entre las cifras mencionadas. A continuación se muestra una
tabla con los niveles correspondientes a cada puntuación. La cantidad de dinero conseguida en
cada nivel es de 2.400€ multiplicada por la puntuación del nivel.
Nivel Puntuación
Inaceptabl 0.0
Nivel Puntuación
Aceptable 0.4
Meritorio 0.6
Escribir un programa que lea la puntuación del usuario e indique su nivel de rendimiento, así
como la cantidad de dinero que recibirá el usuario.
bonificacion = 2400
inaceptable = 0
aceptable = 0.4
meritorio = 0.6
puntos = float(input("Introduce tu puntuación: "))
# Clasifiación por niveles de rendimiento
if puntos == inaceptable:
nivel = "Inaceptable"
elif puntos == aceptable:
nivel = "Aceptable"
elif puntos >= 0.6:
nivel = "Meritorio"
else:
nivel = ""
# Mostrar nivel de rendimiento
if nivel == "":
print("Esta puntuación no es válida")
else:
print("Tu nivel de rendimiento es %s" % nivel)
print("Te corresponde cobrar %.2f€" % (puntos * bonificacion))
Ejercicios de Bucles
1.- Escribir un programa que pida al usuario una palabra y la muestre 10 veces por pantalla.
2.- Escribir un programa que pregunte al usuario su edad y muestre por pantalla todos los años
que ha cumplido (desde 1 hasta su edad).
3.- Escribir un programa que pida al usuario un número entero positivo y muestre por pantalla
todos los números impares desde 1 hasta ese número separados por comas.
n = int(input("Introduce un número entero positivo: "))
for i in range(1, n+1, 2):
print(i, end=", ")
4.- Escribir un programa que pida al usuario un número entero positivo y muestre por pantalla la
cuenta atrás desde ese número hasta cero separados por comas.
n = int(input("Introduce un número entero positivo: "))
for i in range(n, -1, -1):
print(i, end=", ")
5.- Escribir un programa que pregunte al usuario una cantidad a invertir, el interés anual y el
número de años, y muestre por pantalla el capital obtenido en la inversión cada año que dura la
inversión.
amount = float(input("¿Cantidad a invertir? "))
interest = float(input("¿Interés porcentual anual? "))
years = int(input("¿Años?"))
for i in range(years):
amount *= 1 + interest / 100
print("Capital tras " + str(i+1) + " años: " + str(round(amount, 2)))
6.- Escribir un programa que pida al usuario un número entero y muestre por pantalla un
triángulo rectángulo como el de más abajo, de altura el número introducido.
*
**
***
****
*****
7.- Escribir un programa que muestre por pantalla la tabla de multiplicar del 1 al 10.
for i in range(1, 11):
for j in range(1, 11):
print(i*j, end="\t")
print("")
8.- Escribir un programa que pida al usuario un número entero y muestre por pantalla un
triángulo rectángulo como el de más abajo, de altura el número introducido.
1
31
531
7531
97531
1.- Escribir un programa que almacene las asignaturas de un curso (por ejemplo, Matemáticas,
Física, Química, Historia y Lengua) en una lista y la muestre por pantalla.
2.- Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas,
Física, Química, Historia y Lengua) en una lista y la muestre por pantalla.
3.- Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas,
Física, Química, Historia y Lengua) en una lista y la muestre por pantalla.
4.- Escribir un programa que pregunte al usuario los números ganadores de la lotería primitiva,
los almacene en una lista y los muestre por pantalla ordenados de menor a mayor.
awarded = []
for i in range(6):
awarded.append(int(input("Introduce un número ganador: ")))
awarded.sort()
print("Los números ganadores son " + str(awarded))
5.- Escribir un programa que almacene en una lista los números del 1 al 10 y los muestre por
pantalla en orden inverso separados por comas.
6.- Escribir un programa que almacene las asignaturas de un curso (por ejemplo Matemáticas,
Física, Química, Historia y Lengua) en una lista, pregunte al usuario la nota que ha sacado en
cada asignatura y elimine de la lista las asignaturas aprobadas. Al final el programa debe
mostrar por pantalla las asignaturas que el usuario tiene que repetir.
a) Solución
b) Solución
7.- Escribir un programa que almacene el abecedario en una lista, elimine de la lista las letras
que ocupen posiciones múltiplos de 3, y muestre por pantalla la lista resultante.
a) Solución
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z']
for i in range(len(alphabet), 1, -1):
if i % 3 == 0:
alphabet.pop(i-1)
print(alphabet)
b) Solución
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z']
for i in range(len(alphabet), 1, -1):
if i % 3 == 0:
alphabet.pop(i-1)
print(alphabet)
8.- Escribir un programa que pida al usuario una palabra y muestre por pantalla si es un
palíndromo. (arroz)
10. GLOSARIO
11. BIBLIOGRAFÍA
Van Rossum, G., & Drake, F. L. (2023). The Python Language Reference Manual (3.ª ed.). Network
Theory Ltd.
Zamora, R. (2022). Manual Python: Sin rodeos, directo al código. Independently published.
.
12. Conclusión
El desarrollo de este Manual de Ejercicios de Python sobre Tipos de Datos Simples y Cadenas ha
representado un esfuerzo significativo para abordar la problemática identificada en la enseñanza y
aprendizaje de los fundamentos de la programación. A través de la compilación de una colección
estructurada de ejercicios prácticos, complementados con soluciones detalladas y explicaciones
concisas, se ha buscado proporcionar un recurso didáctico que facilite la comprensión y la
aplicación activa de estos conceptos esenciales del lenguaje Python.
Los objetivos específicos planteados, que incluyeron el diseño de los ejercicios, la elaboración de
sus soluciones y la estructuración pedagógica del manual, se han cumplido, dando como resultado
un material que progresa en dificultad y que busca fomentar un aprendizaje autónomo y efectivo.
La inclusión de un glosario y una bibliografía complementan el contenido principal, ofreciendo
herramientas adicionales para el estudiante.
La relevancia de este trabajo radica en la importancia fundamental de los tipos de datos y las
cadenas como pilares del desarrollo en Python. Un dominio sólido de estos elementos es crucial
para construir una base firme para futuros aprendizajes y para la aplicación de la programación en
diversos campos. Se espera que este manual sirva como un recurso valioso tanto para estudiantes
que se inician en la programación como para aquellos que desean reforzar sus conocimientos
básicos.
Si bien este manual se centra en los tipos de datos simples y las cadenas, se reconoce la vasta
extensión del lenguaje Python y la necesidad de explorar otros conceptos fundamentales en
futuros trabajos. Posibles líneas de continuación podrían incluir la creación de manuales similares
enfocados en estructuras de datos, control de flujo, funciones o programación orientada a objetos
en Python.
En definitiva, se confía en que este Manual de Ejercicios contribuirá significativamente al proceso
de aprendizaje de la programación en Python, proporcionando una herramienta práctica y
accesible que motive a los estudiantes a desarrollar sus habilidades y a construir una base sólida
para futuros desafíos en el mundo de la programación.