Saltar la navegación

Desafíos

Desafío 1

Consigna: crea un programa que permita votar una sola vez. 

En este desafío los estudiantes afrontarán la necesidad de almacenar el voto ingresado, situación que podrá ser aprovechada para abordar el concepto de variables y su utilización. Los ejemplos de solución que se ofrecen a continuación utilizan una variable llamada voto.

Temporalización sugerida.

Este problema se puede abordar de diferentes formas, en su versión más sencilla se sugiere el trabajo en dos horas de clase.

Algoritmo

Para cada problema pueden existir diferentes algoritmos que representen diferentes soluciones, unas más complejas que otras.

A continuación se muestra una posible solución.Inicio

  1. Crear una variable llamada voto para almacenar la opción votada. 
  2. Inicializar la variable creada.
  3. Solicitar al votante que ingrese su opción preferida, opción A u opción B.
  4. Almacenar la respuesta en la variable llamada voto.

Fin

Apoyo visual

Solución en Scratch

En la solución se crea una variable llamada voto y se inicializa.

Posteriormente se solicita el ingreso de la opción a votar y se almacena el valor ingresado en la variable llamada voto

Apoyo visual

Desafío 1

Solución en MakeCode

Se construye esta solución en el apartado de MakeCode que permite construir programas para la placa programable Micro:bit: https://makecode.microbit.org/#

Se crea una variable llamada voto y se utilizan los botones que están presentes en la Micro:bit para ingresar la opción votada.

El programa permanece en una iteración mientras no se ingrese ninguna opción y por consiguiente la variable llamada voto contenga el valor con el que fue inicializada.

El botón A representa la opción A y el botón B la opción B. Al presionar alguno de los botones se guarda en la variable voto el valor que dicho botón posee asociado.

Apoyo visual

Desafío 1

Desafío 2

Consigna: modifica el programa creado en el Desafío 1 para que también guarde el valor uno si la opción votada es la opción A.

Por medio de este desafío los estudiantes aplicarán los contenidos abordados en el Desafío 1. Por otro lado, se deberá abordar el concepto de sentencias selectivas.

En los siguientes ejemplos se utilizan dos variables, en una de ellas se almacenará el voto ingresado y en la otra el valor uno si la opción elegida es A.

Temporalización sugerida.

Sí se realiza el proceso, esta actividad demanda una hora más de clase.

Algoritmo

Para cada problema pueden existir diferentes algoritmos que representen diferentes soluciones, unas más complejas que otras.

A continuación se muestra una posible solución, existen otras más eficientes por lo que se sugiere discutir las diversas posibilidades con los estudiantes. Teniendo en cuenta que posiblemente algunos de ellos recién estén comenzando a utilizar las estructuras de control, se ha evitado incluir en la solución de este desafío sentencias selectivas anidadas.

Inicio

  1. Crear una variable llamada A.
  2. Crear una variable llamada voto para almacenar el voto emitido por cada participante. 
  3. Inicializar las variables creadas.
  4. Solicitar al votante que ingrese su opción preferida, opción A u opción B.
  5. Almacenar la respuesta en la variable llamada voto.
  6. Si el valor almacenado en la variable voto es opción A, entonces guardar el valor 1 en la variable A.

Fin

Apoyo visual

Solución en Scratch

Se agregan instrucciones al programa creado en el Desafío 1 y se mantienen las acciones que ya se realizaban. 

Se crea una nueva variable a la que se le llama A y se inicializa con el valor 0.

Si la variable voto contiene al valor A, entonces se almacena el valor uno en la variable llamada A.

Apoyo visual

Desafío 2

Solución en MakeCode

Existen diversas formas de construir la solución, se propone una de ellas a modo de ejemplo.

Al igual que en la solución creada en Scratch, en este ejemplo se agregan instrucciones al programa creado en el Desafío 1 y se mantienen las acciones que ya se realizaban. 

Se crea una nueva variable a la que se le llama A y se inicializa con el valor 0.

Si en el momento de votar se presiona el botón A, además de guardar esta opción en la variable llamada voto, también se modifica el valor de la variable A asignándole el valor 1.

Apoyo visual

Desafío 3

Consigna: modifica el programa creado en el Desafío 2 para que permita ingresar varios votos, de esa forma podrán participar todos los estudiantes de la clase. Tu programa deberá registrar la cantidad de votos recibidos por cada opción.

En esta etapa los estudiantes enfrentan dos dificultades.

Por un lado deben encontrar la forma de iterar el programa hasta que todas las personas hayan ingresado su voto, por lo que con la guía del docente, será necesario descubrir cuál es la iteración apropiada y cómo utilizarla.

Por otro lado, se espera que descubran el procedimiento para contabilizar cada uno de votos. Se pretende que identifiquen la necesidad de utilizar tres variables, una para almacenar cada uno de los votos ingresados, otra para registrar los votos que recibe la opción A a medida que se ejecuta el programa y la tercera para almacenar los votos que recibe la opción B. Será necesario brindar apoyo para que identifiquen la forma en la que se incrementa el valor de una variable 

La resolución previa del Desafío 2 les permitirá aplicar las sentencias selectivas para resolver el desafío.

Temporalización sugerida.

Continuando el proceso, esta actividad demanda un trabajo mínimo de dos horas adicionales.

Algoritmo

A continuación se muestra una posible solución.

Inicio

  1. Crear una variable llamada A.
  2. Crear una variable llamada B.
  3. Crear una variable llamada voto para almacenar el voto emitido por cada participante. 
  4. Inicializar las variables creadas.
  5. Solicitar al votante que ingrese su opción preferida, opción A u opción B.
  6. Almacenar la respuesta en la variable llamada voto.
  7. Si el valor almacenado en la variable voto es opción A, entonces aumentar en uno al valor almacenado en la variable A.
  8. Si el valor almacenado en la variable voto es opción B, entonces aumentar en uno al valor almacenado en la variable B.
  9. Si se desea finalizar porque no existen más votantes entonces ir al paso siguiente, sino volver al paso 5.

Fin

Apoyo visual

Solución en Scratch

Para repetir el programa mientras existan votantes se utiliza la iteración hasta que. En el momento en que el dato lógico de dicha iteración sea verdadero el programa llegará a su fin.

Existen otras formas de resolver este desafío, por lo que se sugiere discutir las alternativas posibles con los estudiantes.

Apoyo visual

Desafío 3

Solución en MakeCode

Teniendo en cuenta que el programa se debe repetir mientras existan votantes, se propone modificar la condición lógica utilizada en la iteración del programa anterior. En este caso se da fin al programa cuando el usuario presiona los botones A y B en forma simultánea.

Para la contabilización de los votos se incrementan las variables A o B  cada vez que se presiona el botón correspondiente. Para ello se utiliza el bloque "cambiar" que se encuentra en la categoría llamada "Variables". 

Teniendo en cuenta que el despliegue de valores en la pantalla de la Micro:bit es algo lento, se sugiere indicar la función que cumplirá cada botón sólo al inicio del programa, evitando solicitar un nuevo voto o preguntar si existen más votantes en cada iteración.

Apoyo visual

Desafío 4

Consigna: crea un programa que permita recoger los votos de la elección e informe cuál es la opción ganadora una vez finalizado el proceso.

Se espera que los estudiantes reutilicen el programa creado en el Desafío 3. 

Cuando los estudiantes afronten la necesidad de determinar si existen o no más votantes, será posible guiarlos para que descubran el concepto y la utilidad de las iteraciones con condicionales.

Será necesario comparar los valores almacenados en las variables A y B para determinar cuál es la opción ganadora.  

Temporalización sugerida.

Finalizando la secuencia con una hora de clase destinada a esta actividad puede ser suficiente. Al ser una fase final los tiempos pueden variar en función a las dinámicas definidas por el docente.

Algoritmo

A continuación se muestra una posible solución, existen otras más eficientes por lo que se sugiere discutir las diversas posibilidades con los estudiantes. 

Inicio

  1. Crear una variable llamada A.
  2. Crear una variable llamada B.
  3. Crear una variable llamada voto para almacenar el voto emitido por cada participante. 
  4. Inicializar las variables creadas.
  5. Solicitar al votante que ingrese su opción preferida, opción A u opción B.
  6. Almacenar la respuesta en la variable llamada voto.
  7. Si el valor almacenado en la variable voto es opción A, entonces aumentar en uno al valor almacenado en la variable A.
  8. Si el valor almacenado en la variable voto es opción B, entonces aumentar en uno al valor almacenado en la variable B.
  9. Si se desea finalizar porque no existen más votantes entonces ir al paso siguiente, sino volver al paso 5
  10. Si el valor almacenado en la variable A es mayor que el valor almacenado en la variable B, entonces informar que la ganadora es la opción A, sino, si A =B comunicar que se trata de un empate, sino informar que la ganadora es la opción B.

Fin

Apoyo visual

Solución en pseudocódigo

Inicio

Definir variables de tipo entero 

opcionA = 0

opcionB = 0

Definir variable de tipo caracter

voto

Escribir “Ingresar letra A o letra B según desee trabajo individual o grupal " 

Leer voto

Repetir mientras voto = A o voto = B 

Sí voto = A entonces 

 opcionA = opcionA + 1

si no 

 opcionB = opcionB + 1 

fin si

Escribir “Ingresar letra A o letra B según desee trabajo individual o grupal, si presiona otra tecla finaliza el programa " 

Leer voto

Fin de repetir mientras

Si (opcionA = opcionB) entonces

Escribir " EMPATE"

si no si ( opcionA > opcionB)

        Escribir " opcionA ES LA GANADORA" 

si no

 Escribir " opcionB ES LA GANADORA"

 fin si

fin si

fin


Lectura facilitada

Inicio (comienza el algoritmo)


Definir variable de tipo entero (Creación de variables que almacenan los votos de las opciones)

opcionA = 0 (Variable para almacenar los votos de la opción A)

opcionB = 0 (Variable para almacenar los votos de la opción B)


definir variable de tipo caracter (La variable de tipo caracter será la encargada de guardar la A o la B que ingrese el usuario)

voto 


Escribir  " ingresar voto A o B "  (Pedir al usuario que ingrese su voto digitando "A" o "B")

Leer voto (Leer lo que ingresó el usuario)


Sí voto = A entonces (Sí el usuario ingresó una "A" se suma uno a la variable opcionA)

  opcionA = opcionA + 1

si no 

 opcionB = opcionB + 1 (Sí el usuario ingresó una "B" se suma uno a la variable opcionB)

fin si


Sí opcionA > opcionB  (Condición a verificar a través de la comparación de variables para establecer sí A tiene más votos que B) 

  Escribir " opcionA es la ganadora" (Salida del programa en caso de que sea verdadera la condición evaluada)

si no 

  Escribir " opcionB es la ganadora" (Salida del programa en caso de que sea falsa la condición evaluada)

 fin si


fin (Fin del algoritmo)

Apoyo visual

Primero se realiza una explicación a nivel general del algoritmo que reseulve el problema.
Explicación general

A continuación en el siguiente video se realiza una explicación detallada de cada sentencia, se pone énfasis en las estructuras de control.

Explicación paso a paso

Solución en Scratch

La resolución de esta propuesta brinda un espacio en el que los estudiantes pueden aportar diversas ideas y obtener diferentes resultados.

Teniendo en cuenta que en los desafíos anteriores ya se trabajó con sentencias selectivas, se sugiere incorporar las sentencias selectivas anidadas.

Apoyo visual

Otra posible solución en Scratch

Esta opción de solución utiliza botones para ingresar los votos. 

Una vez que los estudiantes hayan resuelto la situación problema como se muestra previamente, se les puede proponer incorporar botones con el fin de hacer más amigable el programa creado. Esto conlleva una nueva dificultad que con el apoyo del docente promoverá nuevos aprendizajes.

Audio

Santiago Hernández. Descripción del programa



Apoyo visual


Lo primero es definir los objetos a utilizar. En Scratch utilizaremos tres objetos de tipo botón, uno para los votos de la opción A, otro para los votos de la opción B y uno para calcular el resultado.
Guía para la creación de objetos
Santiago Hernández. Definir objetos

Luego de difinir los objetos y dar ajustes gráficos procedemos a programar los mismos. Es bueno resaltar que existen muchas formas de resolver este problema, aquí te planteamos una, puedes investigar sobre otras formas.

Comencemos por definir las variables:

Definir variables en Scratch


Luego de definir las variables hay que programar cada botón para que sume un voto en cada ocasión que sea pulsado, por último el botón resultado para que determine el ganador.

Proceso de programación de objetos

Solución en MakeCode

Al resolver este desafío se obtiene una solución a la situación problema planteada al inicio. La solución que se plantea no es la única posible, por lo que se sugiere discutir con los estudiantes y buscar nuevas y mejores alternativas.

Apoyo visual

Creado con eXeLearning (Ventana nueva)