Ejercicios con Scratch (II)

0
257

Bienvenidas/os al segundo artículo de ejercicios con Scratch. En la primera tanda, que podéis consultar en este artículo, explicamos y ejercitamos el concepto de las condiciones iniciales. Hoy, no obstante, conociendo ya los conceptos básicos, vamos a pasar directamente a los ejercicios prácticos.

Recordad que, para ver los retos, deberéis ir al usuario que he creado para estos artículos aquí.

EJERCICIOS CON SCRATCH II

RETO 3

Lo primero que quiero que consigamos es que BaMiau, al que conocimos en el artículo anterior, ande una gran distancia.

Atención: ¡no nos olvidemos de poner las condiciones iniciales!

  1. Lo primero que haremos será que BaMiau, una vez pulsemos la bandera verde, avance 10 pasos, espere 1 segundo y diga “hola”. Podréis encontrar la solución en el programa que lleva por nombre Reto3-SOL1.
  2. Ahora lo que queremos es que BaMiau repita 10 veces la secuencia de avanzar 10 pasos y luego diga “hola”. Podréis encontrar la solución en el programa que lleva por nombre Reto3-SOL2.

ejercicios con scratch

UN POCO DE TEORÍA

Vamos a conocer un concepto teórico nuevo: el coste de ejecución.

Cada una de las distintas instrucciones de un programa se denomina línea de código y al ordenador o al robot le cuesta unos recursos ejecutarla. Seguro que hemos oído hablar de la memoria RAM (u otros tipos de memorias) de un ordenador. Pues imaginemos que cada dispositivo que vaya a ejecutar un código tiene un coste para cada instrucción y que este no puede superar la memoria disponible.

Además, hay otro coste de memoria: almacenar el propio código.

Imaginemos que tenemos una estantería con capacidad para 100 libros. Vamos a imaginar también que el código que hemos escrito ocupa el espacio de 5 libros. Una vez coloquemos dicho código, habremos reducido el espacio libre un 5%. Por consiguiente, nos quedará un 95% de la capacidad de la memoria para ejecutarlo. Si, en lugar del 5%, ese código tiene un coste de computación de, por ejemplo, un 30% seguro que podrá funcionar.

Pero si el código que hemos escrito ocupa el 80% del espacio de memoria, entonces cuando lo ejecutemos el ordenador o el robot se saturará y no funcionará. Evidentemente esta parte teórica esta pensada para los educadores. Más adelante, en futuros artículos, ya iremos trabajando esto con los peques. Por ahora, este concepto lo podremos presentar como que no nos interesa hacer que el ordenador se agobie.

Y ahora, volvamos a nuestros ejercicios con scratch. Para ello vamos a examinar primero la solución a la segunda propuesta del Reto 3 que hemos ejecutado: veremos que es bastante larga en número de instrucciones. Un total de 24 si contamos el evento disparador y las condiciones iniciales. Sabiendo esto, vamos a por el siguiente reto.

RETO 4

Vamos a volver a intentar hacer el ejercicio anterior pero solamente con 7 instrucciones. Os dejo un rato para que investiguéis las instrucciones y que intentéis encontrar la solución. Para comprobar si lo habéis hecho bien, podréis encontrar una propuesta de solución en el programa de RETO4_SOL.

programación con niños

Lo que hemos hecho es añadir el primer concepto recurrente para la programación: el bucle. Este concepto es vital para poder desarrollar códigos complicados que puedan agilizar las bases del código de un programa.

¿CÓMO FUNCIONA UN BUCLE?

Un bucle es una instrucción que contiene, a su vez, un conjunto de instrucciones. Recordad que ya comentamos que la ejecución del código es secuencial, es decir que las instrucciones se van ejecutando de una en una y por orden. Hasta que llegamos al Bucle. Cuando llegamos al bucle lo que ocurre es que el código mira si se han cumplido las condiciones de salida. Vamos los elementos que contiene para aclarar la notación.

Condición de salida:

ejercicos para niños en scratch

Código dentro del bucle:

bucle en scratch

En este caso, la condición de salida será que el código incluido es que se repita 10 veces.  Es decir, el programa comprobará si se ha repetido diez veces y como el contador estará a cero empezará a ejecutar las dos instrucciones (mover 10 pasos y esperar 1 segundo). A continuación volverá al inicio del bucle y comprobará la condición de salida. Esta vez el contador estará a 1, que seguirá sin ser 10… Y volverá a ejecutar el código que hay dentro del bucle. Y seguirá repitiendo este proceso hasta que el contador llegue a 10. Cuando eso ocurra, el bucle habrá cumplido su condición de salida y pasará a la siguiente instrucción. Pero, en este caso, la instrucción no será el código contenido dentro del bucle sino que será la instrucción para decir “hola”.

Lo que acabamos de hacer es reducir notablemente la cantidad de líneas de código que tenemos escritas en el programa (lo que, además, es en un ahorro de tiempo y esfuerzo para el propio programador) y, con ello, el espacio en memoria que ocuparemos del dispositivo. Evidentemente, la instrucción bucle ocupa más memoria que la suma de la instrucción que hace que BaMiau se mueva 10 pasos sumada a la instrucción para que se espere 1 segundo. Pero, por otro lado, no más que la suma de 10 veces cada instrucción.

RETO 5

Pero los bucles entrañan un riesgo, y es que hay que calcular bien las condiciones de salida. Hagamos una prueba: en lugar de usar el bucle repetir x veces usad el bucle por siempre.

programar bucle en scratch

En este caso, hay una condición de salida, pero esta jamás se acabará. Es por eso que se quedará, hasta que se le acabe la batería, haciendo las instrucciones que haya dentro del bucle sin salir jamás de él.

¡Felicidades! ¡Acabáis de crear vuestro primer bucle infinito y acabáis de colgar vuestro primer robot!

Espero que os haya gustado y recordad que podéis consultarme cualquier duda, ya sea de estos ejercicios con scratch o cualquier otra cosa, mandando un correo electrónico a marc@bebeamordor.com. ¡Nos vemos en el siguiente artículo!

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí

En cumplimiento de la legislación española vigente en materia de protección de datos de carácter personal y del reglamento europeo RGPD 679/2016 le informamos de:
Responsable: Julia María Iriarte Gahete + info
Finalidad: Gestión del envío de información solicitada, gestión de suscripciones al blog y moderación de comentarios. + info
Legitimación:: Consentimiento expreso del interesado. + info
Destinatarios: No se cederán datos a terceros para la gestión de estos datos.
Derechos: Tiene derecho a Acceder, rectificar y suprimir los datos, así como otros derechos, como se explica en la información adicional. + info
Información adicional:: Puede consultar la información adicional y detallada sobre Protección de Datos Personales en mi página web bebeamordor.com + info