Pensamiento computacional

con Scratch

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

Actividad de consolidación.

App Mentimeter

MENTIMETER.jpg

Ahora vamos a crear un juego útil para la mente y en especial para las matemáticas.

 

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:

17.jpg
18.jpg

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 en el lenguaje de programación Java), más o menos tendría el siguiente aspecto (incluida la pantalla de salida y la interfaz con el usuario):

19.jpg

Quizás se ve un poco intimidante por la cantidad de “códigos precisos” que solicitan al usario 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:

01.jpg

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.

02.jpg

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

03.jpg

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

04.jpg

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.

05.jpg

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.

06.jpg

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

07.jpg

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.

08.jpg

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

18.jpg

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

09.jpg

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:

10.jpg
11.jpg

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.

12.jpg

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

13.jpg

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

14.jpg

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

15.jpg
16.jpg

Tarea Semana 10

Productos y actividades solicitadas en clase:

  • T18.C2 Participación activa en clase

  • T19.C2 Archivo generado en Scratch

Productos DE TAREA A ENTREGAR:

  • T20.C2 Enviar al profesor las respuestas del Insumo5.docx

TIC3_Corte2_Insumo5.docx >>