Exercicis: Programació per blocs
Explica amb les teves paraules què fan les tres estructures bàsiques d'un programa —seqüència, bucle i condicional— i posa un exemple de la vida quotidiana de cadascuna…
Explica amb les teves paraules què fan les tres estructures bàsiques d'un programa —seqüència, bucle i condicional— i posa un exemple de la vida quotidiana de cadascuna que no tingui a veure amb ordinadors.
Un programa té aquests blocs solts: «dir Adéu!», «en prémer la bandera», «esperar un moment», «dir Hola!». Ordena'ls a la pila correcta i descriu què passarà exactament…
Un programa té aquests blocs solts: «dir Adéu!», «en prémer la bandera», «esperar un moment», «dir Hola!». Ordena'ls a la pila correcta i descriu què passarà exactament en executar el programa.
El programa de la figura, format per blocs encaixats, hauria de fer que un personatge recorri el quadrat de punts i avisi en acabar, però a dins del bucle hi falta un…
El programa de la figura, format per blocs encaixats, hauria de fer que un personatge recorri el quadrat de punts i avisi en acabar, però a dins del bucle hi falta un bloc.
Indica quin bloc falta dins del bucle perquè el personatge completi el recorregut del quadrat i explica què fa cada part del programa.
Els blocs d'esdeveniment decideixen quan comença a funcionar una pila de blocs. Explica què fa arrencar cadascun d'aquests tres esdeveniments: «en prémer la bandera»,…
Els blocs d'esdeveniment decideixen quan comença a funcionar una pila de blocs. Explica què fa arrencar cadascun d'aquests tres esdeveniments: «en prémer la bandera», «en prémer la tecla espai» i «en fer clic al personatge», i descriu què passaria si un projecte té dues piles diferents amb dos esdeveniments diferents.
Aquests blocs d'aparença estan solts: «canviar a la disfressa de pirata», «dir Hola, em dic Marc! durant 2 segons», «en prémer la bandera», «esperar 1 segon». Ordena'ls…
Aquests blocs d'aparença estan solts: «canviar a la disfressa de pirata», «dir Hola, em dic Marc! durant 2 segons», «en prémer la bandera», «esperar 1 segon». Ordena'ls per presentar un personatge que primer saluda i després es disfressa, i descriu el que veurà l'espectador.
En un joc, un gat corre per l'escenari i un gos el persegueix. Explica on col·locaries el bloc «tocar el so miau» perquè soni exactament quan el gos atrapa el gat, quin…
En un joc, un gat corre per l'escenari i un gos el persegueix. Explica on col·locaries el bloc «tocar el so miau» perquè soni exactament quan el gos atrapa el gat, quin bloc de comprovació l'acompanya i què passaria si el so estigués fora d'aquesta comprovació.
L'escenari d'un programa per blocs funciona com un mapa de coordenades: la «x» indica la posició horitzontal i la «y» la vertical, i el centre és el punt $(0, 0)$.…
L'escenari d'un programa per blocs funciona com un mapa de coordenades: la «x» indica la posició horitzontal i la «y» la vertical, i el centre és el punt $(0, 0)$. Explica on apareixerà el personatge amb el bloc «anar a x: 0, y: 0» i cap a on es mourà si la «x» augmenta o si la «y» disminueix.
Un programa té aquesta pila: «en prémer la bandera», «dir 3», «esperar un moment», «dir 2», «esperar un moment», «dir 1», «dir Ja!». Descriu amb detall què veurà i què…
Un programa té aquesta pila: «en prémer la bandera», «dir 3», «esperar un moment», «dir 2», «esperar un moment», «dir 1», «dir Ja!». Descriu amb detall què veurà i què escoltarà l'usuari des que prem la bandera fins al final, i explica quina utilitat tenen les esperes.
Un programa vol comptar de l'un al deu amb aquests blocs: «repetir 10 vegades: dir el número; sumar 1 al número». En executar-lo, el compte no comença per l'u i, cada…
Un programa vol comptar de l'un al deu amb aquests blocs: «repetir 10 vegades: dir el número; sumar 1 al número». En executar-lo, el compte no comença per l'u i, cada vegada que es torna a executar, comença per un número diferent. Explica quin bloc falta i on s'hauria de col·locar, i en quina posició de la pila cal posar el valor inicial del número.
Descriu amb les teves paraules els blocs d'un programa que pregunta l'edat de l'usuari i respon «pots passar» si té 14 anys o més, i «ho sento» en cas contrari. Indica…
Descriu amb les teves paraules els blocs d'un programa que pregunta l'edat de l'usuari i respon «pots passar» si té 14 anys o més, i «ho sento» en cas contrari. Indica quin tipus de bloc de decisió utilitzaries i quina comprovació faria exactament.
La figura mostra dos programes que mouen un personatge amb dos tipus de bucle diferents. Explica quina diferència hi ha entre els dos bucles, posa una situació en què…
La figura mostra dos programes que mouen un personatge amb dos tipus de bucle diferents.
Explica quina diferència hi ha entre els dos bucles, posa una situació en què convingui utilitzar cadascun i raona què pot passar amb el bucle de la dreta si la meta no existís.
La figura mostra un programa amb una variable anomenada «punts» que controla un bucle. Fes la traça del programa: indica quantes vegades s'executa el bucle i quants…
La figura mostra un programa amb una variable anomenada «punts» que controla un bucle.
Fes la traça del programa: indica quantes vegades s'executa el bucle i quants passos fa el personatge en total. Després raona què passaria si el bloc «posar punts a 0» estigués dins del bucle en lloc d'abans.
Una cafeteria del barri regala un cafè només als socis i només abans de les 10 del matí. Descriu els blocs de decisió niats del programa que ho comprova i explica la…
Una cafeteria del barri regala un cafè només als socis i només abans de les 10 del matí. Descriu els blocs de decisió niats del programa que ho comprova i explica la diferència entre posar dos «si» un dins de l'altre i posar dos «si» seguits, utilitzant aquest exemple.
Els blocs d'operadors «i», «o» i «no» combinen comprovacions. Explica què fa cadascun i descriu les condicions completes d'aquests dos sistemes: una porta que s'obre si…
Els blocs d'operadors «i», «o» i «no» combinen comprovacions. Explica què fa cadascun i descriu les condicions completes d'aquests dos sistemes: una porta que s'obre si la targeta és vàlida i a més l'empremta coincideix, i una alarma que sona si s'obre la finestra o es trenca el vidre.
Per animar un personatge s'utilitza «repetir 4 vegades: següent disfressa; esperar mig segon». Explica què aconsegueix aquest bucle i calcula quant dura l'animació…
Per animar un personatge s'utilitza «repetir 4 vegades: següent disfressa; esperar mig segon». Explica què aconsegueix aquest bucle i calcula quant dura l'animació completa si cada espera és de $0,5\ \text{s}$ i el canvi de disfressa és instantani.
En un projecte hi ha dos personatges: un botó i un mag. En fer clic al botó, el mag ha d'aparèixer. Explica per a què serveixen els blocs «envia el missatge» i «en rebre…
En un projecte hi ha dos personatges: un botó i un mag. En fer clic al botó, el mag ha d'aparèixer. Explica per a què serveixen els blocs «envia el missatge» i «en rebre el missatge», descriu les piles de blocs que portaria cada personatge i raona per què no n'hi ha prou amb posar els blocs del mag dins del botó.
Un company ha programat el cicle d'un semàfor per a cotxes (verd: 10 s; ambre: 3 s; vermell: 12 s) i un semàfor de vianants sincronitzat. Per a fer-ho, ha creat dos…
Un company ha programat el cicle d'un semàfor per a cotxes (verd: 10 s; ambre: 3 s; vermell: 12 s) i un semàfor de vianants sincronitzat. Per a fer-ho, ha creat dos programes independents amb «en fer clic a la bandera verda» i bucles «per sempre» amb blocs d'espera a cada objecte. Després d'un minut de simulació, els cotxes i els vianants tenen llum verda al mateix temps.
- a) Justifica per què es produeix aquesta desincronització perillosa en utilitzar bucles amb temps d'espera independents.
- b) Dissenya una solució amb blocs que garanteixi que mai coincideixin en verd, explicant si utilitzes variables d'estat o missatges («envia el missatge i espera») i detallant l'ordre exacte dels canvis de llum.
En un videojoc, s'ha inclòs aquest bloc dins del bucle «per sempre» del personatge principal: «si <tocant Moneda?> llavors [suma 1 a Punts]» «si <tocant Enemic?> llavors…
En un videojoc, s'ha inclòs aquest bloc dins del bucle «per sempre» del personatge principal:
-
«si llavors [suma 1 a Punts]»
-
«si llavors [suma -1 a Vides]»
-
«si llavors [atura-ho tot]»
En provar-ho, es detecten dues errades greus: en tocar una única moneda el comptador puja de cop entre 15 i 20 punts, i en fregar un enemic les 3 vides es perden de manera instantània.
- a) Justifica tècnicament per què passa això tenint en compte la velocitat d'execució dels bucles per segon.
- b) Dissenya la modificació necessària en els blocs de la moneda i del personatge per a corregir tots dos comportaments sense pausar el moviment general del joc (considera amagar/destruir objectes i períodes d'invulnerabilitat).
Un estudiant programa el moviment d'una pilota amb aquest codi: «per sempre: mou-te 10 passos rebota en tocar una vora» En executar el programa amb una pilota que no té…
Un estudiant programa el moviment d'una pilota amb aquest codi:
«per sempre:
mou-te 10 passos
rebota en tocar una vora»
En executar el programa amb una pilota que no té la disfressa perfectament centrada, observa que en certs angles la pilota es queda tremolant i encallada a la vora de la pantalla sense poder-ne sortir.
- a) Explica pas a pas per què es produeix aquest bloqueig segons com Scratch calcula la col·lisió amb la vora i la posició del centre de la disfressa.
- b) Es solucionaria el problema simplement invertint l'ordre dels dos blocs dins del bucle? Justifica la teva resposta preveient què passaria a cada iteració.
- c) Dissenya una modificació en els blocs que garanteixi que la pilota es desenganxi de la vora i continuï la seva trajectòria amb normalitat.
En un joc de contrarellotge es vol registrar el rècord del menor temps emprat per a completar un circuit. Un alumne escriu aquest codi en arribar a la meta: «si…
En un joc de contrarellotge es vol registrar el rècord del menor temps emprat per a completar un circuit. Un alumne escriu aquest codi en arribar a la meta:
«si <Temps_Partida < Rècord> llavors [assigna a Rècord el valor Temps_Partida]»
Tanmateix, en jugar per primera vegada després de crear la variable Rècord (que Scratch inicialitza per defecte a 0), el rècord no s'actualitza mai, sense importar com de ràpid vagi el cotxe.
- a) Justifica per què falla aquesta comprovació i explica la diferència d'inicialització entre buscar un rècord de màxima puntuació i un de temps mínim.
- b) Dissenya l'estructura de blocs que resolgui aquest problema per a la primera partida i les següents sense haver d'escriure manualment un valor inicial fictici abans de prémer la bandera verda.
En un joc espacial, l'objecte 'Asteroide' té programades aquestes tres piles: Pila 1: «en fer clic a la bandera verda: per sempre [espera 2 s; crea un clon de mi…
En un joc espacial, l'objecte 'Asteroide' té programades aquestes tres piles:
Pila 1: «en fer clic a la bandera verda: per sempre [espera 2 s; crea un clon de mi mateix]»
Pila 2: «en rebre Alerta_Meteorits: crea un clon de mi mateix»
Pila 3: «quan comencis com a clon: mostra; per sempre [suma -5 a y; si <posició y < -170> llavors [amaga]]»
Després de jugar un parell de minuts, el joc pateix alentiments greus, es deixen de crear asteroides i cada vegada que arriba el missatge Alerta_Meteorits el nombre de clons es multiplica de manera incontrolada.
- a) Justifica per què el bloc «amaga» fa que el joc deixi de respondre i arribi al límit de clons de Scratch.
- b) Explica la fallada de la Pila 2: per què els mateixos clons existents dupliquen la quantitat d'asteroides en rebre un missatge?
- c) Dissenya la solució correcta amb blocs per a la creació, moviment i eliminació definitiva dels clons.
Un joc de plataformes té aquest script en el personatge: «en fer clic a la bandera verda: fixa Vides a 3 si <Vides = 0> llavors [atura-ho tot] per sempre: si <tocant…
Un joc de plataformes té aquest script en el personatge:
«en fer clic a la bandera verda:
fixa Vides a 3
si llavors [atura-ho tot]
per sempre:
si <tocant Trampa?> llavors:
suma a Vides -2
espera 0,5 s»
El joc presenta dues fallades: la partida mai s'acaba encara que el jugador toqui la trampa repetidament, i si un jugador cau a la trampa tenint 1 vida, el marcador passa a -1 vides sense aturar el joc.
- a) Justifica per què la comprovació de final de partida tal com està col·locada no atura el joc en cap moment.
- b) Explica per què utilitzar la condició estricta és un error de disseny quan el dany resta més d'1 vida.
- c) Dissenya la solució reubicant i modificant els blocs condicionals per assegurar que la partida finalitzi exactament quan les vides s'esgotin o quedin per sota de zero.
Per mesurar la durada d'una partida, es crea aquest cronòmetre: «en fer clic a la bandera verda: fixa Segons a 0 per sempre: espera 1 s suma a Segons 1» En comparar…
Per mesurar la durada d'una partida, es crea aquest cronòmetre:
«en fer clic a la bandera verda:
fixa Segons a 0
per sempre:
espera 1 s
suma a Segons 1»
En comparar aquest comptador amb un rellotge real després de 10 minuts de joc intens, el cronòmetre de Scratch marca només 9 minuts i 35 segons (un desfasament de 25 segons).
- a) Justifica per què un bucle amb el bloc «espera 1 s» acumula retard quan el joc processa molts personatges i moviments simultanis.
- b) Dissenya un cronòmetre alternatiu en blocs utilitzant el sensor «cronòmetre» i variables que no depengui de la velocitat de refresc del joc i mostri el temps transcorregut en segons amb un decimal (per exemple: 14,2 s).
- c) Justifica per què la teva proposta manté la precisió exacta encara que hi hagi alentiments a la pantalla.
En un joc de Pong per a dos jugadors (pales esquerra i dreta), es detecten aquests errors d'interacció: 1. En sobrepassar la pala, la pilota rebota a la vora del darrere…
En un joc de Pong per a dos jugadors (pales esquerra i dreta), es detecten aquests errors d'interacció:
-
En sobrepassar la pala, la pilota rebota a la vora del darrere i suma diversos punts consecutius abans que es reiniciï el punt.
-
Mentre la pilota torna al centre després d'un punt, els jugadors poden continuar colpejant-la sumant punts falsos.
-
Si la pilota frega la part del darrere de la pala quan aquesta puja ràpidament, la pilota surt disparada cap a dins de la porteria pròpia.
- a) Dissenya l'estructura de blocs de la pilota per gestionar el punt: detecció del gol, aturada momentània del joc i comunicació amb els marcadors mitjançant missatges.
- b) Dissenya la condició de rebot de la pala perquè només retorni la pilota cap al camp contrari si l'impacte passa a la seva cara frontal, és a dir, quan la pilota es dirigeix cap a la pala.
- c) Explica com han de reaccionar les pales i la pilota al missatge de 'nou punt' per reprendre el joc de manera justa i sincronitzada.