Volver a la portadaCiencias de la Computación · 8° EBI · Cambiar asignatura
Empezar gratis
8° EBI · Ciencias de la Computación
La creación de contenidos digitales · Creación y programación sencilla

Programación por bloques

Te conviene dominar: Los programas y las aplicaciones (7.° grado de Educación Básica Integrada (1.° de liceo))

En el recreo, Valentina quiere programar un jueguito en la computadora del Plan Ceibal: un gato que recorre el escenario, junta monedas y avisa cuando termina. No tiene que escribir ni una letra de código: va a encajar bloques, como piezas de un puzle. ¿Qué piezas necesita y en qué orden las pone para que el gato haga exactamente lo que ella quiere?

Las tres estructuras básicas

Esquema de las tres estructuras básicas de programación: secuencia de tres bloques apilados, bucle con un grupo de bloques que se repite y condicional con dos caminos, si y si no. secuencia repetir bucle si / si no condicional
Practica★☆☆Sin empezar
Explicá con tus palabras qué hacen las tres estructuras básicas de un programa —secuencia, bucle y condicional— y poné un ejemplo de la vida diaria de cada una que no…

Explicá con tus palabras qué hacen las tres estructuras básicas de un programa —secuencia, bucle y condicional— y poné un ejemplo de la vida diaria de cada una que no tenga que ver con computadoras.

Resolver
Practica★☆☆Sin empezar
Un programa tiene estos bloques sueltos: «decir ¡Adiós!», «al hacer clic en la bandera», «esperar un momento», «decir ¡Hola!». Ordenalos en la pila correcta y describí…

Un programa tiene estos bloques sueltos: «decir ¡Adiós!», «al hacer clic en la bandera», «esperar un momento», «decir ¡Hola!». Ordenalos en la pila correcta y describí qué ocurrirá exactamente al ejecutar el programa.

Resolver
Practica★☆☆Sin empezar
Estos bloques de apariencia están sueltos: «cambiar al disfraz de pirata», «decir ¡Hola, me llamo Marco! durante 2 segundos», «al hacer clic en la bandera», «esperar 1…

Estos bloques de apariencia están sueltos: «cambiar al disfraz de pirata», «decir ¡Hola, me llamo Marco! durante 2 segundos», «al hacer clic en la bandera», «esperar 1 segundo». Ordenalos para presentar a un personaje que primero saluda y luego se disfraza, y describí lo que va a ver el espectador.

Resolver
Practica★☆☆Sin empezar
Un programa tiene esta pila: «al pulsar la bandera», «decir 3», «esperar un momento», «decir 2», «esperar un momento», «decir 1», «decir ¡Ya!». Describí con detalle qué…

Un programa tiene esta pila: «al pulsar la bandera», «decir 3», «esperar un momento», «decir 2», «esperar un momento», «decir 1», «decir ¡Ya!». Describí con detalle qué verá y qué escuchará el usuario desde que pulsa la bandera hasta el final, y explicá qué utilidad tienen las esperas.

Resolver

Eventos, movimiento y el escenario

El escenario es un plano de coordenadas: la «x» es la posición horizontal, la «y» la vertical, y el centro es $(0, 0)$. Arrastrá el punto y mirá cómo cambian los valores.

Cada personaje tiene uno o varios disfraces: imágenes distintas de su apariencia. Los bloques «cambiar al disfraz de pirata» y «siguiente disfraz» eligen cuál se muestra. Si alternás disfraces con una espera entre cambio y cambio, el personaje parece moverse: así se hace una animación.

Practica★☆☆Sin empezar
El programa de la figura, formado por bloques encajados, debería hacer que un personaje recorra el cuadrado punteado y avise al terminar, pero dentro del bucle falta un…

El programa de la figura, formado por bloques encajados, debería hacer que un personaje recorra el cuadrado punteado y avise al terminar, pero dentro del bucle falta un bloque.

al pulsar la bandera repetir 4 veces dar un paso ? decir ¡Llegué!

Indicá qué bloque falta dentro del bucle para que el personaje complete el recorrido del cuadrado y explicá qué hace cada parte del programa.

Resolver
Practica★☆☆Sin empezar
Los bloques de evento deciden cuándo empieza a funcionar una pila de bloques. Explicá qué hace arrancar cada uno de estos tres eventos: «al presionar la bandera», «al…

Los bloques de evento deciden cuándo empieza a funcionar una pila de bloques. Explicá qué hace arrancar cada uno de estos tres eventos: «al presionar la bandera», «al presionar la tecla espacio» y «al hacer clic en el personaje», y describí qué pasaría si un proyecto tiene dos pilas distintas con dos eventos distintos.

Resolver
Practica★☆☆Sin empezar
El escenario de un programa por bloques funciona como un mapa de coordenadas: la «x» indica la posición horizontal y la «y» la vertical, y el centro es el punto…

El escenario de un programa por bloques funciona como un mapa de coordenadas: la «x» indica la posición horizontal y la «y» la vertical, y el centro es el punto $(0, 0)$. Explicá dónde aparecerá el personaje con el bloque «ir a x: 0, y: 0» y hacia dónde se moverá si la «x» aumenta o si la «y» disminuye.

Resolver

Variables y bucles controlados

Animación de una variable «puntos» en un bucle: un resaltado recorre los bloques; en cada vuelta se comprueba la cabecera del bucle, «sumar 1 a puntos» llena un indicador y luego se da un paso. Con tres indicadores llenos el flujo sale del bucle y se resalta «decir ¡Meta!». poner puntos a 0 repetir hasta que puntos = 3 sumar 1 a puntos dar un paso decir ¡Meta!

Listas

Una variable guarda un valor. Una lista guarda muchos, ordenados por posición (1.º, 2.º, 3.º…). Por ejemplo, una lista «compras» con «yerba», «pan» y «dulce de leche». Los bloques típicos son «añadir a la lista», «eliminar el elemento 2», «elemento 1 de la lista» y «longitud de la lista».

Practica★★☆Sin empezar
Un programa quiere contar del uno al diez con estos bloques: «repetir 10 veces: decir el número; sumar 1 al número». Al ejecutarlo, la cuenta no empieza en uno y, cada…

Un programa quiere contar del uno al diez con estos bloques: «repetir 10 veces: decir el número; sumar 1 al número». Al ejecutarlo, la cuenta no empieza en uno y, cada vez que se vuelve a ejecutar, empieza en un número distinto. Explicá qué bloque falta y dónde debería colocarse, y en qué posición de la pila hay que poner el valor inicial del número.

Resolver
Practica★★☆Sin empezar
La figura muestra un programa con una variable llamada «puntos» que controla un bucle. Hacé la traza del programa: indicá cuántas veces se ejecuta el bucle y cuántos…

La figura muestra un programa con una variable llamada «puntos» que controla un bucle.

al pulsar la bandera poner puntos a 0 repetir hasta que puntos = 3 sumar 1 a puntos dar un paso decir ¡Meta!

Hacé la traza del programa: indicá cuántas veces se ejecuta el bucle y cuántos pasos da el personaje en total. Después razoná qué ocurriría si el bloque «poner puntos a 0» estuviera dentro del bucle en lugar de antes.

Resolver
Practica★★☆Sin empezar
Para animar un personaje se usa «repetir 4 veces: siguiente disfraz; esperar medio segundo». Explicá qué consigue ese bucle y calculá cuánto dura la animación completa…

Para animar un personaje se usa «repetir 4 veces: siguiente disfraz; esperar medio segundo». Explicá qué consigue ese bucle y calculá cuánto dura la animación completa si cada espera es de $0,5\ \text{s}$ y el cambio de disfraz es instantáneo.

Resolver
Practica★★★Sin empezar
En un juego de contrarreloj se quiere registrar el récord del menor tiempo empleado en completar un circuito. Un alumno escribe este código al llegar a la meta: «si…

En un juego de contrarreloj se quiere registrar el récord del menor tiempo empleado en completar un circuito. Un alumno escribe este código al llegar a la meta:

«si <Tiempo_Partida < Récord> entonces [fijar Récord a Tiempo_Partida]»

Sin embargo, al jugar por primera vez tras crear la variable Récord (que Scratch inicializa por defecto en 0), el récord nunca se actualiza, sin importar lo rápido que vaya el auto.

  1. a) Justificá por qué falla esta comprobación y explicá la diferencia de inicialización entre buscar un récord de máxima puntuación y uno de tiempo mínimo.
  2. b) Diseñá la estructura de bloques que resuelva este problema para la primera partida y las siguientes sin tener que escribir manualmente un valor inicial ficticio antes de pulsar la bandera verde.
Resolver

Tipos de bucle y bucles anidados

Hay bucles de cantidad fija («repetir 10») y bucles con condición («repetir hasta que »). El primero conviene cuando sabés cuántas veces; el segundo, cuando no lo sabés pero sí sabés cuándo parar. «Por siempre» no para nunca (hasta detener el programa) y sirve para vigilar durante todo el juego.

Un bucle anidado es un bucle dentro de otro. El de adentro se ejecuta completo en cada vuelta del de afuera.

Practica★★☆Sin empezar
La figura muestra dos programas que mueven a un personaje con dos tipos de bucle distintos. Explicá qué diferencia hay entre los dos bucles, poné una situación en la que…

La figura muestra dos programas que mueven a un personaje con dos tipos de bucle distintos.

al empezar repetir 10 veces dar un paso al empezar repetir hasta la meta dar un paso

Explicá qué diferencia hay entre los dos bucles, poné una situación en la que convenga usar cada uno y razoná qué puede ocurrir con el bucle de la derecha si la meta no existiera.

Resolver
Practica★★☆Sin empezar
Para animar un personaje se usa «repetir 4 veces: siguiente disfraz; esperar medio segundo». Explicá qué consigue ese bucle y calculá cuánto dura la animación completa…

Para animar un personaje se usa «repetir 4 veces: siguiente disfraz; esperar medio segundo». Explicá qué consigue ese bucle y calculá cuánto dura la animación completa si cada espera es de $0,5\ \text{s}$ y el cambio de disfraz es instantáneo.

Resolver

Condicionales anidados y operadores lógicos

Un bucle «por siempre» no termina solo: se corta con el bloque «detener todos», que frena todos los programas del proyecto. Se coloca dentro de un «si» que comprueba la condición de fin, y esa comprobación tiene que estar dentro del bucle, para que se repita en cada vuelta.

Practica★☆☆Sin empezar
En un juego, un gato corre por el escenario y un perro lo persigue. Explicá dónde colocarías el bloque «tocar sonido miau» para que suene exactamente cuando el perro…

En un juego, un gato corre por el escenario y un perro lo persigue. Explicá dónde colocarías el bloque «tocar sonido miau» para que suene exactamente cuando el perro alcanza al gato, qué bloque de comprobación lo acompaña y qué pasaría si el sonido estuviera fuera de esa comprobación.

Resolver
Practica★★☆Sin empezar
Describí con tus palabras los bloques de un programa que pregunta la edad del usuario y responde «puedes pasar» si tiene 14 años o más, y «lo siento» en caso contrario.…

Describí con tus palabras los bloques de un programa que pregunta la edad del usuario y responde «puedes pasar» si tiene 14 años o más, y «lo siento» en caso contrario. Indicá qué tipo de bloque de decisión usarías y qué comprobación haría exactamente.

Resolver
Practica★★☆Sin empezar
Una cafetería del barrio regala un café solo a los socios y solo antes de las 10 de la mañana. Describí los bloques de decisión anidados del programa que lo comprueba y…

Una cafetería del barrio regala un café solo a los socios y solo antes de las 10 de la mañana. Describí los bloques de decisión anidados del programa que lo comprueba y explicá la diferencia entre poner dos «si» uno dentro de otro y poner dos «si» seguidos, usando este ejemplo.

Resolver
Practica★★☆Sin empezar
Los bloques de operadores «y», «o» y «no» combinan comprobaciones. Explicá qué hace cada uno y describí las condiciones completas de estos dos sistemas: una puerta que…

Los bloques de operadores «y», «o» y «no» combinan comprobaciones. Explicá qué hace cada uno y describí las condiciones completas de estos dos sistemas: una puerta que se abre si la tarjeta es válida y además la huella coincide, y una alarma que suena si se abre la ventana o se rompe el vidrio.

Resolver
Practica★★★Sin empezar
Un juego de plataformas tiene este script en el personaje: «al presionar bandera verde: fijar Vidas a 3 si <Vidas = 0> entonces [detener todos] por siempre: si <tocando…

Un juego de plataformas tiene este script en el personaje:

«al presionar bandera verde:

fijar Vidas a 3

si entonces [detener todos]

por siempre:

si <tocando Trampa?> entonces:

  cambiar Vidas por -2

  esperar 0,5 s»

El juego presenta dos fallos: la partida nunca termina aunque el jugador toque la trampa repetidamente, y si un jugador cae en la trampa teniendo 1 vida, el marcador pasa a -1 vidas sin detener el juego.

  1. a) Justificá por qué la comprobación de fin de partida tal como está colocada no detiene el juego en ningún momento.
  2. b) Explicá por qué utilizar la condición estricta es un error de diseño cuando el daño resta más de 1 vida.
  3. c) Diseñá la solución reubicando y modificando los bloques condicionales para asegurar que la partida finalice exactamente cuando las vidas se agoten o queden por debajo de cero.
Resolver

Comunicación entre personajes

Diagrama de comunicación por mensajes: la pila del botón (al hacer clic, enviar «aparecer») envía el mensaje al mago, cuya pila «al recibir aparecer» ejecuta mostrarse. emisor: botón receptor: mago botón: al hacer clic enviar «aparecer» mago: al recibir «aparecer» mostrarse mensaje
Practica★★☆Sin empezar
En un proyecto hay dos personajes: un botón y un mago. Al hacer clic en el botón, el mago debe aparecer. Explicá para qué sirven los bloques de «enviar mensaje» y «al…

En un proyecto hay dos personajes: un botón y un mago. Al hacer clic en el botón, el mago debe aparecer. Explicá para qué sirven los bloques de «enviar mensaje» y «al recibir mensaje», describí las pilas de bloques que llevaría cada personaje y razoná por qué no basta con poner los bloques del mago dentro del botón.

Resolver
Practica★★★Sin empezar
En un videojuego, se incluyó este bloque dentro del bucle «por siempre» del personaje principal: «si <tocando Moneda?> entonces [cambiar Puntos por 1]» «si <tocando…

En un videojuego, se incluyó este bloque dentro del bucle «por siempre» del personaje principal:

  • «si entonces [cambiar Puntos por 1]»

  • «si entonces [cambiar Vidas por -1]»

  • «si entonces [detener todos]»

Al probarlo, se detectan dos fallos graves: al tocar una única moneda el contador sube de golpe entre 15 y 20 puntos, y al rozar a un enemigo las 3 vidas se pierden de forma instantánea.

  1. a) Justificá técnicamente por qué ocurre esto teniendo en cuenta la velocidad de ejecución de los bucles por segundo.
  2. b) Diseñá la modificación necesaria en los bloques de la moneda y del personaje para corregir ambos comportamientos sin pausar el movimiento general del juego (considerá ocultar/destruir objetos y períodos de invulnerabilidad).
Resolver

Resumen

Vuelta al principio: el gato de Valentina necesita un evento que lo arranque, un bucle para recorrer el escenario, un condicional para detectar monedas y una variable (o lista) para llevar el puntaje.

Ver todos los ejercicios de este apartado