Pensamiento computacional: 

Resolución de un problema con Scratch

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Actividad de consolidación.

App Kahoot

Problema. Se tienen 3 números enteros y se desea saber, cuál de los tres es el mayor. 

 

Antes de iniciar el diseño e implementación en Scratch, será necesario pensar en la forma en que hemos de resolver y con el mismo, consolidaremos el aprendizaje de todo el corte.

Una de las metodologías muy efectivas en la resolución de problemas es la de “divide y vencerás”, que no es más que fragmentar el problema en problemas más pequeños. Utilizaremos esta metodología en el problema que nos atañe.

Primeramente, asigaremos cada número a una letra diferente: A, B y C.

A continuación, compararemos A con B, para determinar cuál es el mayor de ellos. Acto seguido, el que sea mayor de ellos, lo comparemos con C y así sabremos cuál es el mayor de los tres.

Otras variantes de la misma solución pueden ser:

  • comparar B con C, determinar cuál es mayor y comparar el resultado con A.

  • comparar A con C, determinar cuál es mayor y comparar el resultado con B.

En cualquiera de los casos obtendremos el resultado deseado.

La metodología anterior planteada es nada más y nada menos que el ALGORITMO de solución al problema que escrito en forma de “receta” puede ser algo así:

1. Leer los datos de entrada: los números A, B y C a comparar.

2. Comparar dos de ellos para obtener el mayor.

3. Comparar al tercero con el mayor de la comparación anterior.

4. Escribir el resultado.

¿Se te ocurre otra solución?

A continuación, será necesario construir el DIAGRAMA DE FLUJO que represente al algoritmo anterior:

El seudocódigo será el siguiente:

Observa la alineación en la sangría de los párrafos escritos. En los lenguajes de programación tradicionales, esta alineación es muy importante ya que de no hacerse es muy fácil perderse en el desarrollo del programa.

Probemos la efectividad del algoritmo con un ejemplo. 

Elijamos los siguientes números 8, 3, 10, a los que asignaremos a las respectivas letras:

 

A = 8, B = 3 y C = 10

El algoritmo entonces procederá de esta forma:

  • Compara 8 con 3. Pregunto: ¿8 es mayor que 3? La respuesta es sí.

  • Entonces ahora comparo 8 con 10. Pregunto: ¿8 es mayor que 10? La respuesta es no.

  • Entonces el mayor de los tres es 10.

 

Probemos con otros tres números, por ejemplo 2, 15, 7. Asignemos estos valores respectivamente a las letras:

 

A = 2, B = 15 y C = 7

Ejecutemos el algoritmo nuevamente:

 

  • Compara 2 con 15. Pregunto: ¿2 es mayor que 15? La respuesta es no.

  • Entonces el mayor de los dos es 15.

  • Ahora compara 15 con 7. Pregunto: ¿15 es mayor que 7? La respuesta es si.

  • Entonces el mayor de los tres es 15.

 

Podemos probar nuestro algoritmo con cualquier serie de números y siempre obtendremos el mismo resultado: el mayor de los tres números.

Como ya mencionamos, con el pseudocódigo estamos a un paso de la programación. Si esto lo escribiera en un lenguaje programación, no visual (digamos Java), más o menos tendría el siguiente aspecto (incluida la pantalla de salida y la interfaz con el usuario):

Quizás se ve un poco intimidante por la cantidad de “códigos precisos” que piden los lenguajes de programación tradicionales: int, System, nextInt, Scanner, etcétera… pero no te asustes, lo que es importante es que aprendas la lógica que lleva el programa, es decir, el pensamiento computacional que hay detrás de todo esto, que nos permite dar solución a los problemas.

Aquí vemos en la práctica la diferencia que hay entre aprender a programar y realizar pensamiento computacional.

Implementemos pues la solución del problema en Scratch.

Ingresa a tu cuenta de Scratch en https://scratch.mit.edu y crea un nuevo proyecto:

En principio utilizaremos el mismo personaje sin fondo para garantizar el correcto funcionamiento del programa, ya después podremos cambiarlos.

 

Para iniciar, necesitamos que el programa lea los números que el usuario le proporciona con el fin de realizar la comparación. Para ello necesitamos crear tres variables que almacenen dichos números. Para este ejemplo, asignaremos a estas variables los identificadores NúmeroA, NúmeroB y NúmeroC. Todas ellas estarán definidas Para todos los objetos, es decir, serán variables globales.

Recuerda que el proceso de programación es tan libre como tu misma creatividad, así que sí tú decides darles nombres diferentes a las variables, está bien, solo no olvides como las llamaste.

Observa que al crearse las mismas, inmediatamente se muestran en el área de ejecución, junto con el valor que tienen en ese momento.

Es útil dejarlas por el momento visibles, solo para verificar el buen funcionamiento del programa. Para ocultarlas, solo basta deseleccionar la variable deseada.

Sigamos el siguiente algoritmo para resolver el problema.

Paso 1. Leer los datos de entrada: los números A, B y C a comparar.

Esto se hace a través de preguntar y cambiar la variable por la respuesta dada por el usuario.

 

Esto lo encontrarás en los bloques Sensores y Variables, respectivamente.

Puedes definir la pregunta y asignación de NúmeroA para después duplicar los bloques para los otros dos números a capturar, como se muestra en la imagen, dando clic derecho.

Paso 2. Comparar dos de ellos para obtener el mayor.

Del bloque Control utilizaremos el Si – Entonces – si no

y para realizar la comparación, agregaremos del bloque Operadores la comparación “mayor que” (>) con las respectivas Variables a comparar.

Paso3. Comparar al tercero con el mayor de la comparación anterior.

 

Para realizar esto es necesario volver a utilizar un bloque Si – Entonces – si no

Paso 4. Escribir el resultado. Del bloque Apariencia utiliza decir, agregándole Unir que encontrarás en Operadores para escribir un mensaje junto con el resultado de la comparación final.

Como este es un procedimiento genérico hay que completar las opciones faltantes. Recuerda el pseudocódigo elaborado:

Implementado en Scratch, esto tendrá más o menos la siguiente forma:

Ejecuta el programa:

Con esto lograremos que el programa realice lo deseado, sin embargo, hay algunos detalles que hay que completar en el mismo:

a) Para ser formal en el inicio del programa hay que agregar del bloque Eventos, la instrucción Al presionar (bandera).

b) Para garantizar que las variables operen de manera correcta, será necesario inicializarlas a cero al principio. Esto se logra utilizando la instrucción establecer (mi variable) a 0 (cero) que encontrarás en el bloque Variables.

Con esto, el programa completo nos quedará de la siguiente forma:

Prueba con diferentes números y observarás que el procedimiento arrojará el mayor de tres números, incluso, si dos o los tres son iguales.

Finalmente, podemos utilizar la versatilidad de Scratch cambiando al personaje y el fondo del área de ejecución.

Explora los personajes y los fondos disponibles, sé creativo. Yo utilicé los siguientes:

Agregaremos también otra cosa: cada vez que se obtenga un número y la respuesta final, podemos cambiar los disfraces del mismo personaje.

Agreguemos este cambio de disfraces en el código y tendremos un programa ¡más divertido!

Tarea Semana 10

Productos y actividades solicitadas en clase:

  • T22. Participación activa en clase.

  • T23. Actividad de pensamiento computacional- Iteración controlada por decisión

Productos DE TAREA A ENTREGAR:

  • T24. Conclusiones del corte publicadas en Facebook.

  • T25. Autoevaluación del corte.

  • T26. Comentario del Capítulo 16 en facebook

contáctame: 

  • w-facebook
  • Twitter Clean