Ejercicios resueltos

Secuenciación de ejercicios

A la hora de plantear ejercicios con nuestro alumnado, con cada concepto nuevo que introduzcamos deberemos respetar una secuencia lógica que vaya poniendo en juego habilidades cognitivas de menor a mayor complejidad, según nos indica la Taxonomía de Bloom revisada por Anderson y Krathwohl. Para ello recomendamos:

  1. Partir de programas realizados en los que tengan que analizar sus elementos, predecir su comportamiento, comentarlos, encontrar errores, etc... (CONOCER, COMPRENDER)
  2. Continuar proponiendo modificaciones a programas proporcionados para personalizarlos (APLICAR)
  3. Comparar programas propuestos para solucionar un mismo problema atendiendo a diferentes criterios: funcionalidad, complejidad, cantidad de código empleado... (ANALIZAR, EVALUAR)
  4. Por último crear programas sencillos desde cero partiendo de problemas reales. (CREAR)

Proponemos a continuación algunos ejemplos para verlo de forma más concreta.

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

Ejercicios de conocimiento y comprensión

EJEMPLO 1

ENUNCIADO:

Dado el siguiente código:

image-1654441595250.png

a) Explica para qué sirve este programa.

b) Detecta si existe algún error en el código y justifica por qué.

c) Realiza el diagrama de flujo del mismo.

d) Cópialo en un fichero de PseInt y comprueba si has contestado correctamente los apartados a), b) y c)

e) Introduce los comentarios necesarios para su mejor comprensión.

SOLUCION

a) Es un sencillo programa para comparar dos números introducidos por el usuario.

b) Al reproducirlo con PseInt se detectan dos errores:

image-1654441901371.png

1. Esto es erróneo, debería poner num1 es menor que num2 para ser cierta la condición de la línea anterior.

2. Falta un punto y coma al final

c) El diagrama de flujo es:

image-1654442006509.png

e) Un ejemplo de este programa comentado podría ser:

image-1654442142463.png


EJEMPLO 2

ENUNCIADO:

Dado el siguiente diagrama de bloques

image-1654442512547.png

a) Dí qué realiza este programa.

b) Identifica en el dibujo qué elementos pertenecen a Entradas, Salidas, Datos u Operaciones.

c) ¿Detectas algún error o imprecisión?

d) Realiza el diagrama de flujo del mismo.

e) Reproduce el programa en Scratch y comprueba tus respuestas anteriores.

f) OPCIONAL: ¿Se te ocurre alguna forma más sencilla de reescribir este programa?

SOLUCION:

a) Es un programa que muestra en pantalla un mensaje elegido por el usuario 5 veces, durante 2 segundos y dejando un espacio entre un mensaje y otro de 1 segundo.

b) 

image-1654442962524.png

c) El error es que la variable num no tiene un valor inicial predefinido, aunque sería más una imprecisión puesto que si no se asigna valor inicial, se asume el valor 0 que es el que nosotros queríamos poner.

image-1654443077535.png

d) Diagrama de flujo:

image-1654443217068.png

f) Si realmente se quiere repetir el mensaje 5 veces y no un número determinado por el usuario bastaría con este esquema.

image-1654443297281.png

El código inicial solo tiene sentido si el número de veces que se repite también quiere ser personalizado por la persona usuaria.

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

Ejercicios de aplicación

EJEMPLO 1:

ENUNCIADO:

Dado el siguiente código,

image-1654443470796.png

a) Realiza su diagrama de flujo

b)  Realiza tres programas similares que realicen la RESTA, PRODUCTO y DIVISIÓN de DOS NÚMEROS dados.

SOLUCIÓN:

a)

image-1654443572461.png

b) ALGORITMO RESTA

image-1654443846701.png

ALGORITMO PRODUCTO

image-1654444236190.png

ALGORITMO DIVISIÓN

image-1654444312628.png

EJEMPLO 2:

ENUNCIADO

A partir del siguiente diagrama de bloques

image-1654444641103.png

a) Explica qué hace este programa

b) Realiza otros tantos programas que permitan dibujar un hexágono, un octógono y un dodecágono. Elige un color y un grosor deseado y añade las mejoras que quieras.

SOLUCIÓN

a) Dibuja un pentágono regular con el color y grosor predeterminado por el programa.

b) Posible código a implementar.

image-1654444951237.png

Como mejoras aparte de fijar el color y el tamaño, puede ser el marcar el lugar de inicio del dibujo, e incluso la orientación para asegurarse que siempre se dibuja en el centro del lienzo.

image-1654445054419.png

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

Ejercicios de análisis y evaluación

EJEMPLO 1

ENUNCIADO:

Compara los siguientes procedimientos para realizar la misma acción

image-1654451674408.png

Escribe en cada caso como los utilizarías en un programa  que a partir de dos números nos devolviera su cociente.

SOLUCIÓN

image-1654452224529.png

Opción 2: Es una función que no devuelve un valor (procedimiento) por lo tanto puede ser invocada por separado, si bien necesita que se le pasen dos parámetros para realizarse, que el programa habrá tenido que proporcionar antes.

image-1654452417008.png

image-1654452522328.png

La elección entre unas u otras vendrá determinada por lo que sea más conveniente en el programa.  La opción 3 es la que resulta más conveniente cuando una misma expresión se va a utilizar repetidas veces a lo largo del código, mientras que la opción 1 puede resultar conveniente si ese resultado quisiéramos introducirlo en posteriores instrucciones para tomar decisiones o realizar otras operaciones.

EJEMPLO2

ENUNCIADO

Compara los siguientes programas.

Programa 1

image-1663095545071.png

Programa 2

image-1663092570898.png

a) ¿Hacen lo mismo?

b) Justifica sus diferencias y  explica cuál utilizarías tú y por qué.

SOLUCIÓN

a) Efectivamente hacen lo mismo. Es un programa que al introducir una calificación numérica evalúa que esté en el rango correcto y si no, devuelve un mensaje de error, y si está en el rango correcto evalúa si corresponde a un APROBADO o un SUSPENSO. Es el programa descrito en el último ejemplo del capítulo anterior.

b) La diferencia es:

En el programa 2 el código es más sencillo y por lo tanto es la opción más recomendable.

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

Ejercicios de creación

EJEMPLO 1

ENUNCIADO

A partir de los ejercicios vistos anteriormente realiza un programa que simule ser una pequeña calculadora con las cuatro operaciones básicas (sumar, restar, multiplicar y dividir):

SOLUCIÓN

Seguimos los mismos pasos vistos en el capítulo anterior en la creación de un programa.

Pasos 1 y 2: Análisis y diagrama de flujo del programa Calculadora.

Los elementos implicados son

En cuanto a la estructura del programa se propone realizar funciones parciales para cada una de las operaciones.

Para mostrar el menú se propone la estructura SEGUN ya que las opciones son discretas (4 operaciones) dentro de una estructura REPETIR hasta que la opción seleccionada sea la correcta.

El reinicio se realiza al finalizar cada operación, preguntando y si la respuesta es afirmativa, modificar la condición que volvía a mostrar el menú inicial (operac).

Diagrama de flujo:

diagramaflujo.png

Las dimensiones del diagrama no permiten distinguirlo bien, pero sí notar que hay una estructura REPETIR HASTA QUE la variable operac tenga un valor comprendido entre 1 y 4, que muestra el mensaje inicial con las operaciones a elegir.

image-1664305359822.png

image-1664305246214.png

Dentro de ella una estructura SEGÚN que abre 5 opciones posibles, la última la de que se haya elegido un número distinto del 1 al 4 que vuelve a iterar el proceso, y las otras 4 una por cada operación.

También que cada una de las 4 operaciones termina con un bloque condicional para preguntar por el reinicio, y en caso de querer reiniciar, le da a la variable operac un valor diferente de 1,2, 3 y 4 lo que reactiva el bucle repetir hasta que.

image-1664305097276.png

Pasos 3, 4 y 5: Codificación, compilación y verificación del programa Calculadora con PSeInt.

Empezamos por definir las funciones. La suma la haremos directamente dentro del algoritmo principal para ver la diferencia.

image-1654451001598.png

El algoritmo principal quedaría de la siguiente forma:

image-1664305476461.png

image-1664305520242.png

image-1664305565107.png

EJEMPLO2

ENUNCIADO

Crea un programa en Scratch para aprender las tablas de multiplicar. Las condiciones del programa son:

SOLUCIÓN

Seguimos los mismos pasos vistos en el capítulo anterior en la creación de un programa.

Pasos 1 y 2: Análisis y diagrama de flujo del programa Tabla de multiplicar

Los elementos implicados son

Diagrama de flujo:

image-1663263840580.png

Pasos 3, 4 y 5: Codificación, compilación y verificación del programa Tabla de multiplicar con Scratch

Como siempre empezamos por definir las variables. Definimos una variable contador y le asignamos el valor 0 al inicio del programa. La otra variable no será necesario crearla puesto que al ser respuesta de una pregunta, la crea el programa por defecto.

image-1663264147617.png

image-1663264137317.png

Saludamos y realizamos la pregunta con los bloques correspondientes de Apariencia y Sensores ya que son Salidas.

image-1663264272988.png

Ahí comienza el primer bucle, en este caso condicional puesto que depende de la respuesta obtenida. En scratch el bloque que realiza esta operación es Repetir hasta que

image-1663264383423.png

Cuando realizamos comparaciones con textos, hay que tener en cuenta las variaciones de mayúsculas, minúsculas, tildes, etc...Lo mejor en ese caso sería usar el operador "O" que nos admite como válidas cualquiera de las posibilidades (Sí, Si, SI, si)

Una vez obtenida la respuesta afirmativa (ENTRADA), pasamos a preguntar de nuevo por el número del 1 al 10 del que se quiere usar la tabla (SALIDA).

image-1663264617264.png

Con la respuesta obtenida (ENTRADA) realizamos otro bucle en este caso del 0 al 10 por lo que son 11 veces, donde se va a mostrar en pantalla al personaje diciendo el numero de la tabla x contador = resultado y el valor del contador se va incrementando de uno en uno en cada iteración.

image-1663264859184.png

Tras una última salida con la despedida, el programa quedaría así.

image-1663264971872.png

Por último vendría el momento de verificación del funcionamiento.

image-1663265372307.gif

Consideraciones finales:

Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png

Y la LOMLOE "pa cuándo"?

En la nueva normativa educativa publicada el año 2022 se impulsa de forma decisiva la enseñanza de contenidos relacionados con la programación tanto desde las primeras etapas como por supuesto en Secundaria y Bachillerato.

En concreto los contenidos abordados en este curso corresponden a la Competencia Específica nº 5 de la materia de Tecnología y Digitalización desarrollada en la Orden ECD/1172/2022, de 2 de agosto, por la que se aprueban el currículo y las características de la evaluación de la Educación Secundaria Obligatoria . En concreto esta competencia consiste en "Desarrollar algoritmos y aplicaciones informáticas en distintos entornos, aplicando los principios del pensamiento computacional e incorporando las tecnologías emergentes, para crear soluciones a problemas concretos, automatizar procesos y aplicarlos en sistemas de control o en robótica."

Específicamente en los criterios de evaluación de dicha competencia, para el curso de 2º de ESO, se habla de:

Asimismo el currículo de dicha materia establece como uno de los bloques de saberes básicos de esta materia aquellos concernientes a Programación, pensamiento computacional y robótica, estableciendo como conocimientos, destrezas y actitudes a desarrollar con el alumnado en 2º de ESO las siguientes:

Algorítmica y diagramas de flujo.
Aplicaciones informáticas sencillas para ordenadores: Programación por bloques.

Autoconfianza e iniciativa: el error, la reevaluación y la depuración de errores como parte del proceso de aprendizaje

Por lo tanto tanto los ejercicios planteados en el curso así como la metodología encajan perfectamente en la programación de esta materia en 2º de ESO, siendo los contenidos de robótica tratados en otros cursos de Aularagón más propios de la misma materia pero en 3º.

A pesar de que en el currículo habla de programación por bloques, nos ha parecido interesante en este curso introducir en paralelo un programa de pseudocódigo como PSeInt para acompañar al alumnado en esa transición desde lo intuitivo de una programación por bloques, visual y con la que muchos ya vienen familiarizados desde Educación Primaria, con la sintaxis de los lenguajes de programación, con los que tendrán que empezar a manejarse en cursos posteriores.

Una vez que el alumnado se ha familiarizado con los conceptos básicos de la programación estructurada contenidos en este curso, es tiempo de plantearle situaciones de aprendizaje en los que aplicarlos, preferentemente en la resolución de problemas reales y aplicando metodologías de trabajo en equipo. Esto correspondería a la última fase de Ejercicios de Creación. descrita en el apartado de Ejercicios resueltos.

La Competencia arriba descrita también se encuentra en el Currículo de la materia optativa de 3º de ESO de Programación y Robótica como Competencia Específica nº 4 de esa materia, pudiendo aplicarse todo lo dicho anteriormente también en el desarrollo de dicha materia.


Financiado por el Ministerio de Educación y Formación Profesional y por la Unión Europea - NextGenerationEU

logo.png