última actualización: 08 de septiembre de 2026
En este post os propongo dos ejercicios de introducción a la programación, el primer tema de mis apuntes de Java. Se trata de pensar, plantear una solución al problema propuesto, y plasmarla luego en un diagrama de flujo y con pseudocódigo.
Existen varias soluciones posibles para resolver un mismo problema, unas más eficientes que otras. Pero desde luego, antes de ponernos a programar, tenemos que plantear la solución al problema que queremos resolver programando.
Aquí podéis ver una solución posible para cada ejercicio propuesto, que por supuesto no es la única posible y que probablemente no sea la más eficiente.
Ejercicio 1:
Dibuja el diagrama de flujo y escribe el pseudocódigo de un algoritmo que calcule el factorial de un número n.
El flujograma de una posible solución sería:

Y el pseudocódigo asociado:
Inicio
Iniciamos resultado con valor igual a 1.
Iniciamos contador con valor igual a 1.
Comprobamos si el contador es menor o igual al número n del que queremos calcular el factorial
Si verdadero:
Hacemos resultado igual a su valor actual multiplicado por contador.
E incrementamos el valor del contador en 1.
Si falso:
Acabamos el programa. En resultado tendremos el valor del factorial del número n.
Fin
Ejercicio 2
Dibuja el diagrama de flujo y escribe el pseudocódigo de un algoritmo que ordene de mayor a menor un conjunto de n números.
El flujograma de una posible solución sería:

Y el pseudocodigo asociado:
Inicio
Nos colocamos en la primera posición de la lista
Si el valor siguiente es mayor que el actual:
Cambiamos los valores de posición y volvemos empezar desde el principio de la lista.
Si el valor siguiente no es mayor que el valor actual:
Nos movemos una posición hacia adelante.
Si esta posición es la última de la lista, ya hemos terminado y tenemos la lista ordenada.
Si esta posición no es la última de la lista, volvemos al punto de la primera comprobación.
Fin
Ejercicio 3
Diseña un flujograma que lea las temperaturas de 10 días seguidos. Las temperaturas tienen que estar en el rango de valores de -30ºC a 50ºC (incluye ambos valores). Si la lectura de una temperatura está fuera de ese rango se contabiliza como lectura incorrecta.
Al final el programa tiene que indicar cuantas lecturas de la temperatura han sido incorrectas y la media de las temperaturas de las lecturas correctas.
El flujograma de una posible solución sería:

Ejercicio 4
Dibuja el flujograma de un algoritmo que solicite enteros positivos y se detenga cuando el valor actual sea menor o igual que el anterior. Si el valor introducido por el usuario no es un entero positivo, simplemente se ignora y se pide al usuario que introduzca otro número.
Al finalizar, muestra el mayor y el menor de los números válidos introducidos.
SOLUCIÓN 1:
En esta ocasión, voy a plantear dos soluciones. En la primera, sencillamente se definen todas las variables y a cada iteración se comprueba si es menor que menor, o mayor que mayor, y se actualizan esos valores.
La condición de terminar la controlamos por comparación con anterior
El flujograma sería:

SOLUCIÓN 2:
Un poco más sofisticado que la solución 1.
Asumimos que siempre que no se cumpla la condición de salida (que el número actual es menor que el anterior), el número introducido será el mayor.
Sin embargo, lo que no podemos asumir es que cuando se cumple la condición de salida, el número introducido es el menor, porque podría serlo el primer número introducido (Ejemplo: 1, 2, 7, 6). Despues de hacerse verdadera la condición de salida, habrá que comprobar si el número de salida es el menor y actualizar menor en ese caso
También podemos modificar el flujograma para tener un único punto en el flujograma donde leer num. Podríamos usar un contador y en la primera iteración inicializamos los valores al número leido. O inicializar los valores a cero y para detectar que es la primera lectura, comprobarÍamosque cualquiera de las variables es cero y pasaríamos a inicializar todas las variables al número leido.

Ejercicio 5
Diseña un flujograma para controlar la retirada de dinero de un cajero automático. El usuario introduce la cantidad que quiere retirar y el cajero automático entrega dicha cantidad con el menor número de billetes posible.
Hay 3 tipos de billetes: 50€, 20€ y 10€.
La cantidad introducida por el usuario tiene que ser múltiplo de 10. Si no se cumple esta regla hay que pedirle al usuario que vuelva a introducir la cantidad. Si la cantidad es válida hay que calcular la combinación que emplee el menor número de billetes posibles.
El programa tiene que mostrar el número de billetes de cada tipo que entrega al usuario y el número total de billetes entregados.
Casos de prueba
- Cantidad = 180€ → 3 billetes de 50€, 1 billete de 20€ y 1 billetes de 10€
(total 5 billetes) - Cantidad = 70 → 1 billete de 50€, 1 billete de 20€ y 0 billetes de 10€
(total 2 billetes)
Pistas para tu flujograma
Se puede redondear un número a entero simplemente usando la instrucción redondear. Ejemplo: Redondear (45,6) = 45
Se puede extraer el resto de una división empleando la instrucción Resto. Ejemplo: Resto (7/2) = 1
SOLUCIÓN 1:
En este caso también propongo un par de soluciones. En la primera, dividimos la cantidad inicial por 50, el redondeo del resultado de dicha división nos da el número de billetes de 50, y el resto de dicha división la cantidad que quedaría por entregar.
Lo que queda por entregar se divide por 20, y el redondeo de dicha operación nos dará el número de billetes de 20, el resto lo que queda por entregar.
Finalmente, dividimos lo que queda por entregar entre 10. Aquí no hace falta redondear ni calcular el resto, porque llegados a este punto, y al ser cantidad múltiplo de 10, o quedan 10€ por entregar o no queda nada por entregar.
El orden de las divisiones tiene que ser de mayor a menor valor del billete, para asegurar que se entrega la cantidad pedida por el usuario empleando el menor número de billetes posibles.
El flujograma sería:

SOLUCIÓN 2:
Una solución más eficiente que la anterior sería comprobar después del cálculo del número de billetes de cada tipo si ya se ha entregado todo el dinero, y en caso de que fuera verdadero salir directamente del programa.
En esta solución hay que inicializar a cero el número de billetes de cada tipo.
El flujograma sería:

Más ejercicios
Si quieres practicar con más ejercicios de flujogramas, aquí te dejo los enunciados de varios de ellos, y el fichero respuesta que podras encontrar en el repositorio de GitHub: Ejercicios_java. En la carpeta: 01.-Introducción a la programación.
- Dibuja el flujograma de un algoritmo que realice la suma de dos números. Solución: sumar_dos_numeros.drawio
- Flujograma para un algoritmo que calcule el área de un círculo. Solución: area_circulo.drawio
- Dibuja el flujograma para un algoritmo que calcule el área de un triangulo. Solución: area_triangulo.drawio
- Dibuja el flujograma para un algoritmo que indique si el usuario es mayor o menor de edad. El usuario introduce la edad que tiene. Solución: mayor_menor_de_edad.drawio
- Dibuja el flujograma para un algoritmo que indique si un número introducido por el usuario es igual, mayor o menor que cero. Solución: mayor_menor_iguala0.drawio
- Dibuja el flujograma para un algoritmo que lea dos números y presente por pantalla la suma, la resta, la multiplicación y la división de los dos números. Solución: operaciones_aritmeticas.drawio
- Un colegio desea saber qué porcentaje de niños y qué porcentaje de niñas hay en el curso actual. Diseñar un algoritmo para este propósito y dibujar el flujograma del algoritmo. Solución: porcentaje_de_niños.drawio
- Una tienda ofrece un descuento del 15% sobre el total de la compra durante el mes de octubre. Dado un mes y un importe, calcular cuál es la cantidad que se debe cobrar al cliente. Dibujar el flujograma del algoritmo. Solución: descuento_en_octubre.drawio
- Dibuja el flujograma de un algoritmo que obtenga el máximo, el mínimo y la media de un conjunto de números que introduce el usuario. El algoritmo finaliza y deja de pedir al usuario que introduzca más números cuando el número introducido es 0. Solución: media_maximo_minimo.drawio
- Dibuja el flujograma para un algoritmo que pida las notas de varios alumnos. Los alumnos tienen 3 notas que se introducen de forma consecutiva, y a continuación se calcula la media. El programa finaliza cuando se introduce como nombre de alumno la cadena vacía(pulsa enter). Solución: notas_de_alumnos.drawio
- Dibuja el flujograma para un algoritmo que lea la edad, peso y estatura de una persona, y luego imprima estos datos y su IMC (Indice de masa corporal). El IMC se calcula dividiendo el peso entre la altura al cuadrado (peso en Kg y altura en m). Solución: calculo_IMC.drawio
- Realizar un algoritmo que, dado un número entero, visualice en pantalla si es par o impar. En el caso de ser 0, debe visualizar “el número no es par ni impar”. Dibuja el flujograma del algoritmo. Solución: par_o_impar.drawio
- Dibuja el flujograma para un algoritmo que lea un número n y calcule la suma de los n primeros números naturales. Solución: suma_n_primeros_numeros_naturales.drawio
- Dibuja el flujograma de un algoritmo que calcule las soluciones de una ecuación de segundo grado. Si las soluciones son imaginarias hay que indicar que la ecuación no tiene soluciones reales. Solución: soluciones_ecuacion_segundo_grado.drawio
- Dibuja el flujograma del funcionamiento de un reloj digital en permanente funcionamiento. Para que el reloj realmente cuente el tiempo, debes hacer esperar al programa 1 seg antes de incrementar en 1 los segundos del reloj. Solución: reloj.drawio
- Dibuja el flujograma para un algoritmo que presenta la tabla de multiplicar del número que introduzca el usuario. Solución: tabla_multiplicar.drawio
- Dibuja el flujograma para un algoritmo que dibuje un cuadrado hueco de lado n, empleando el carácter que quieras. El usuario introduce el valor de n, siendo n el número de caracteres. Solución: dibujar_cuadrado_hueco.drawio
- Dibuja el flujograma para un algoritmo que dado un año, nos diga si es bisiesto o no. Un año es bisiesto bajo las siguientes condiciones: (1) es divisible por 4 ; (2) no es divisible entre 100. Si un año es divisible entre 100 y además es divisible entre 400, también resulta bisiesto. Solución: año_bisiesto.drawio
- Dibuja el flujograma para un algoritmo que gestione una agenda de contactos. La agenda guarda los contactos del nombre y el número de teléfono, y debe proporcionar al usuario las siguientes 5 opciones de gestión: Agregar contacto, Buscar contacto, Eliminar contacto, Mostrar contacto y Salir. Solución: agenda_telefonica.drawio
- Dibuja el flujograma para un algoritmo que pida al usuario que introduzca una palabra para acertar una clave (clave a acertar: «eureka»). El usuario tiene 3 intentos para acertar, si falla en los 3 intentos se muestra un mensaje indicandalo y se acaba el programa. Si acierta antes se indica y se sale del programa. Solución: acertar_clave.drawio
- Dibuja el flujograma para el juego de 3 en raya. El juego de 3 en raya o 3 en línea, es un juego de estrategia simple para dos jugadores. Se juega en una cuadrícula de 3×3. Cada jugador usa un simbolo, uno usa «X» y el otro «O». Los jugares se van turnando para colocar sus símbolos en una casilla vacía. Gana el jugador que consiga alinear 3 de sus simbolos en fila, columna o diagonal. Si se llenan todas las casillas sin que ningún jugador consiga alinear tres, el juego termina en empate. Solución: tres_en_linea.drawio
- Dibujar el flujograma del juego de las 7 y media. Cuando empieza el juego aparece un menú, donde el usuario puede realizar las siguientes opciones: (1) Pedir carta: Se saca una carta de la baraja española, se muestra que carta es y se dice la puntuación que tiene (de 1 a 7 desde el As al siete, y medio punto la sota, el caballo y el rey) No se puede repetir la carta sacada. Si la puntuación supera el 7.5 has perdido y debes quedarte lo más cerca de esa puntuación. (2) Plantarse: Estás conforme con la suma de la puntuación y dejas jugar a la máquina que sacará cartas para acercarse a las 7.5. Si se pasa, gana el jugador, si supera la puntuación del jugador sin pasarse, gana la máquina. Cuando acabe la máquina se debe visualizar la baraja. (3) Se visualiza la baraja, marcando con XXXX las cartas que se han sacado. (4) Salir del juego. Solución: juego_siete_y_media.drawio
NOTA: Este post es parte de la colección “Conceptos básicos de programación”. Puedes ver el índice de esta colección aquí.