UD 2. PROGRAMACIÓN POR BLOQUES
UD 2. PROGRAMACIÓN POR BLOQUES
CONTENIDOS
En el curso pasado estuvimos trabajando con un lenguaje de programación por bloques, concretamente con Scratch. ¿Recuerdas sus funcionamiento? ¿Serías capaz de explicar el funcionamiento del siguiente programa?
En este curso comenzaremos dando un repaso a los principales bloques con los hemos trabajado en cursos anteriores. Tras este breve repaso nos convertiremos en programadores expertos para solucionar determinados problemas que encontraremos en distintos programas que no están funcionamiento como el usuario espera. Terminaremos la unidad realizando un proyecto de una temática libre siempre que tu profesor apruebe el proyecto.
En los lenguajes de programación por bloques se suelen clasificar las distintas instrucciones en categorías y suelen utilizar un color distinto para cada una de ellas tal y como podemos ver en la siguiente imagen:
Como ya sabemos, dentro de cada categoría existe una gran cantidad de bloques que combinándolos entre si nos permiten construir muchísimos programas distintos, tantos como nuestra imaginación nos permita.
Seguidamente vamos a repasar las principales instrucciones de Scratch con las que hemos estado trabajando en cursos anteriores. Recuerda que podamos acceder a Scratch desde el siguiente enlace: https://scratch.mit.edu/
Recuerda que:
Todo programa siempre tiene un INICIO y un FINAL.
El ordenador ejecuta o interpreta cada bloque desde arriba hacia abajo.
Existen bloques que pueden modificar el flujo o camino del programa ( ¿Cuál o cuales eran estos bloques? )
Scratch es un lenguaje preparado para controlar los eventos, pero.....¿Qué era un evento?
Estos bloques son los que nos permitirán que nuestros programas comiencen a funcionar. Por ejemplo:
Los programas suelen interactuar con los usuarios normalmente solicitándoles información (Entrada) y mostrándoles información (Salida). El bloque que se encarga de representar las operaciones de Entrada y Salida en Scratch es el siguiente:
Cuando lanzamos una pregunta con Scratch, el programa se parará hasta que el usuario introduzca una respuesta. Una vez el usuario inserta el valor, este guardará el valor en la variable respuesta.
En este apartado recordaremos la finalidad de las variables. Las variables nos permiten almacenar datos dentro del ordenador mientras el programa está funcionando. El valor de dichos datos puede variar durante la ejecución del programa. Las variables se caracterizan por una etiqueta (nombre que le damos a dicha variable, por ejemplo: puntos) y por un valor (por ejemplo, los puntos que vamos sumando en el juego). Es habitual que las variables puedan ser de varios tipos:
Numéricas: el valor que contiene es un número.
Texto: el valor que contiene es un carácter o cadena de caracteres.
Boolean: el valor que contiene es “verdadero” (1) o “falso” (0).
En Scratch las variables son solo de tipo numérico. Existen también listas, que almacenan varias cadenas de caracteres.
En ocasiones necesitamos que nuestros programas evalúen determinadas condiciones para que en el caso de cumplirse la condición se ejecuten un conjunto de instrucciones distintas a las instrucciones que ejecutaríamos si la condición no se cumple. La condición nos daría respuesta a "....Si esto se cumple, entonces haz esto otro.....".
Por ejemplo: "Si Manolo estudia y realiza las prácticas de Scratch entonces aprobará la asignatura y sus padres estarán muy contentos pero Si Manolo NO estudio o NO realizar las prácticas de Scratch entonces NO aprobará la asignatura y sus padres estarán tristes."
En Scratch ejemplos de bloques de decisión serían los siguientes:
Estos bloques nos permiten establecer operaciones matemáticas, elegir un número al azar, realizar uniones y divisiones; además se puede unir texto y calcular la longitud de los mismos. Estos son algunos de los bloques de operación más usados, aunque hay muchos más:
Los Bloques hexagonales se corresponden con OPERACIONES y los bloques redondos con DATOS.
Este programa consiste en hacer que el personaje que tu quieras le pregunte al usuario la edad que tiene y cúal es su nombre. Una vez que el usuario nos da su edad y nombre debemos responderle con el siguiente mensaje:
'Hola NOMBRE_USUARIO bienvenido a nuestro primer programa de 3º ESO. Hemos podido averiguar que tu año de nacimiento es AÑO_DE_NACIMIENTO del usuario'
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Estos bloques nos permiten establecer operaciones matemáticas, elegir un número al azar, realizar uniones y divisiones; además se puede unir texto y calcular la longitud de los mismos. Estos son algunos de los bloques de operación más usados, aunque hay muchos más:
Las estructuras o bloques repetitivos también conocidos como estructuras o bloques de repetición nos permiten repetir un conjunto de operaciones o instrucciones un determinado número de veces. Al igual que las estructuras de decisión, estas estructuras son muy útiles en cualquier lenguaje de programación.
En Scratch 3.0 tenemos las siguientes estructuras repetitivas:
Este programa consiste en hacer que el personaje que tu quieras se desplace sin parar siguiendo una serie de direcciones (las que tu quieras) y se pare cuando pulsemos la tecla 'r'.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Este programa consiste en hacer que el personaje que tu quieras se desplace hacia la derecha o hacia la izquierda cuando se pulse la tecla de la flecha derecha o tecla de la flecha izquierda y para cuando pulse la tecla 'a.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Una de las funciones más importantes en todos los lenguajes de programación es la modularidad. La modularidad consiste en construir “instrucciones” nuevas que contengan otras instrucciones en su interior. Estas nuevas instrucciones en algunos lenguajes de programación se llaman funciones o procedimientos, en Scratch se les llama bloques. Estos bloques, funciones o procedimientos pueden utilizar unos parámetros de entrada, es decir, unos datos de entrada que se utilizan dentro de las instrucciones del bloque.
En muchas ocasiones los programas que desarrollamos son tremendamente largos. Hacer un seguimiento del programa es complicado incluso para el programador que lo desarrolló. Es por ello, que lo que solemos hacer es aplicar una de las bases principales del pensamiento computacional, se trata de abordar la solución por partes. Es decir, si tenemos un programa grande, podemos descomponer la solución en partes más pequeñas e ir construyendo la solución final combinando las soluciones de cada una de estas partes más pequeñas. Estas partes se suelen llamar subalgoritmos, funciones y/o procedimientos.
También usamos las funciones para evitar reescribir el mismo código una y otra vez. Lo veremos haciendo la siguiente actividad.
Realiza un programa SIN UTILIZAR BLOQUES NUEVOS donde un personaje de Scratch haga lo siguiente:
Se desplace 50 pasos hacia la izquierda y mirando a la izquierda.
Se desplace 50 pasos hacia la derecha y mirando a la derecha.
Nos salude tras realizar los pasos anteriores.
Se desplace 50 pasos hacia la izquierda y mirando a la izquierda.
Se desplace 50 pasos hacia la derecha y mirando a la derecha.
Nos salude tras realizar los pasos anteriores.
Se desplace 50 pasos hacia la izquierda y mirando a la izquierda.
Se desplace 50 pasos hacia la derecha y mirando a la derecha.
Nos salude tras realizar los pasos anteriores.
Finalizamos dando un salto de alegría¡¡¡
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Realiza el mismo programa que en la Actividad anterior pero ahora es obligatorio que utilices BLOQUES NUEVOS creados por ti mismo en Scratch.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Realiza un programa donde el personaje de Scratch (El gato) aprenda a contar:
El usuario debe introducir el número hasta el que debe contar el gato.
El programa debe llamar a una función con el nombre CONTAR, que se encargará de contar desde el 0 hasta el número introducido dejando un segundo entre número y número.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
A continuación puedes ver el resultado final del programa.
Realiza un programa en Scratch capaz de calcular el Área Geométrica de las siguientes figuras:
Rectángulo.
Círculo.
Trapecio.
Rombo.
El programa debe ser lo más original posible y debe solicitar al usuario la siguiente información:
Figura para la que desea obtener el cálculo del área.
Datos de entrada necesarios para la fórmula de cada figura geométrica.
Cuando se calcule el área de la figura, el programa deberá dibujar la figura.
Cuando finalices tu programa tienes que añadir esta actividad a tu CUADERNO DIGITAL del tema. Recuerda que para cada actividad debe aparecer en tu cuaderno digital la siguiente información:
El título de la Actividad.
Breve descripción de lo que hace tu programa.
Una imagen de tu programa.
Un enlace al programa de Scratch.
No olvides actualizar el índice de tu cuaderno digital para que aparezca la nueva actividad que has incluido.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Seguro que estas muy acostumbrado a realizar listas en el día a día, pero ¿Qué son las listas de Scratch?. Las listas son un tipo de variables que nos permiten almacenar una lista de elementos. Las encontramos en la categoría de Variables tal y como podemos ver en la siguiente imagen:
Las listas nos permiten almacenar datos, tanto en texto como en número, que en Scratch se denominan “elementos”, y a los que podrán acceder uno o todos los objetos de nuestro proyecto.
Como vemos, una vez hemos creada una lista, tendremos las siguientes opciones:
añadir tantos elementos como queramos.
eliminar todos o bien un elemento concreto (para lo que debemos conocer su posición dentro de la lista).
insertar nuevos elementos en una posición concreta de la lista.
reemplazar, modificando el contenido de un elemento ya existente en la lista.
mostrar o esconder los elementos en la lista de la pantalla.
Además, como vemos en la imagen anterior, se generan una serie de bloques que nos permiten obtener parámetros de las listas, estos son:
elementos, es decir, cada dato que hayamos introducido en nuestra lista y que cuenta con una posición determinada.
longitud, se refiere al número de elementos totales que hemos introducido en la lista.
…está en.., permitiéndonos comprobar si la lista contiene un elemento determinado.
Y como no hay mejor manera de aprender que haciendo, vamos a realizar una pequeña actividad para que aprendamos a utilizar las listas perfectamente¡¡¡
Últimamente las entradas para ir a ver un concierto de Manuel Carrasco se agotan con muchísima facilidad. Es más, en el momento en que se abre la venta de entradas todos los usuarios se conectan al mismo tiempo para adquirir la mejor entrada posible. En el último concierto de Manuel Carrasco muchos usuarios se quejaron debido a que le habían asignado los mismos asientos a personas distintas. Se lío una buena con las reclamaciones que tuvo el concierto.
Cuando el equipo técnico reviso lo ocurrido detectaron que el programa que asignaba las entradas no estaba funcionando correctamente ya que no estaban haciendo uso de ninguna lista de datos en su interior. Ahora vamos a ver como nosotros hubiésemos resuelto este gran problema.
Haz un programa en Scratch que nos permita comprar entradas para ir a ver un Concierto de Manuel Carrasco. El programa debe cumplir con los siguientes requisitos:
Debe tener una imagen de fondo chula de algún concierto de Manuel Carrasco.
Debe tener un botón que el usuario pulse para comprar su entrada. Al pulsar el botón debemos pedirle al usuario su nombre y apellidos y guardar sus datos en una lista.
Debe tener un botón para obtener el listado de todas las entradas vendidas y por orden de llegada. Es decir, cuando el usuario pulse este botón el programa debe ir mostrando los nombres de los usuarios que han obtenido su entrada y por orden de llegada, es decir, primero deben aparecer los usuarios que primero compraron su entrada.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.
Inspirado en el famoso personaje Sheldon Cooper de la serie The Big Bang Theory, te proponemos crear el juego "Piedra, Papel, Tijera, Lagarto, Spock" en Scratch. Esta versión ampliada del clásico juego de "Piedra, Papel, Tijera" añade dos opciones más: lagarto y Spock. La combinación de cinco opciones permite un sistema de reglas más complejo y divertido.
Desarrolla un juego en Scratch donde el jugador pueda competir contra la computadora eligiendo entre las cinco opciones. Aplicando lógica y programación condicional, crearás un sistema que determine quién gana cada ronda y mantenga un marcador hasta llegar a un ganado. El programa debe cumplir con los siguientes requisitos:
Pantalla de Inicio y Botón de "Jugar"
Crea una pantalla inicial con el título del juego ("Piedra, Papel, Tijera, Lagarto, Spock") y un botón que diga "Jugar".
Al hacer clic en "Jugar", debe comenzar la primera ronda del juego.
Interfaz de Selección
Diseña cinco botones o iconos en pantalla representando cada una de las opciones: piedra, papel, tijera, lagarto y Spock.
Programa cada botón para que, al hacer clic, guarde la elección del jugador.
Reglas del Juego (SON LAS MÁS IMPORTANTES DEL PROGRAMA QUE VAS A REALIZAR)
Usa las siguientes reglas para programar el juego:
La piedra aplasta la tijera y aplasta al lagarto.
El papel cubre la piedra y refuta a Spock.
La tijera corta el papel y decapita al lagarto.
El lagarto envenena a Spock y devora el papel.
Spock rompe la tijera y vaporiza la piedra.
Si el jugador y la máquina eligen la misma opción, es un empate.
Opción Aleatoria de la máquina
Crea una función para que la computadora elija al azar una de las cinco opciones cada ronda.
Para esto, usa el bloque de Scratch de "elegir número al azar entre 1 y 5" y asocia cada número con una opción (1=piedra, 2=papel, etc.).
Sistema de Puntuación
Crea una variable llamada “Puntos del Jugador” y otra llamada “Puntos de la máquina”.
Suma un punto al jugador si gana la ronda y suma un punto a la computadora si gana ella.
Si es un empate, no se suman puntos.
Resultados de cada Ronda
Después de cada elección, muestra un mensaje con el resultado (por ejemplo, "La piedra aplasta la tijera, ganaste la ronda").
Actualiza los puntos en pantalla después de cada ronda.
Fin del Juego
Establece una meta de puntos (por ejemplo, 5 puntos) para terminar el juego.
Cuando alguno de los jugadores (jugador o computadora) llegue a esa cantidad, muestra una pantalla de "Fin del Juego" que indique quién ha ganado.
Botón de Reinicio
Añade un botón de "Reiniciar" en la pantalla final que permita volver a jugar desde cero.
IMPORTANTE: Cuando finalices la actividad debes subir a Classroom tu Cuaderno Digital.