Ejercicios de introducción a la programación

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 o/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:

Diagrama de flujo del calculo del factorial

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:

Diagrama de flujo - ordenar lista de números

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

NOTA:

Este post es parte de la colección “Java” que reproduce los apuntes de la clase que imparto sobre el tema en ESIC. Puedes ver el índice de esta colección aquí.