Exercicis de programació per blocs — Tecnologia i Digitalització 2n ESO
Programar és donar instruccions precises a un ordinador, i aquests exercicis t'ho fan practicar amb paraules i amb blocs. Primer escrius algorismes ordenats per a tasques quotidianes, com travessar un pas de vianants, i expliques quines característiques ha de tenir un bon algorisme. Després treballes les estructures de control: la seqüència, els bucles i els condicionals «si... llavors... si no». Al final descrius programes de Scratch amb variables i esdeveniments, per exemple un comptador de punts en un joc. Errors freqüents: confondre el bucle «per sempre» amb «repeteix N vegades» i escriure algorismes amb passos ambigus o sense final.
Nivell bàsic
Exercici 1
Digues quines tres característiques ha de tenir un bon algorisme.
Mostra la solució
Ha de ser ordenat (els passos van en un ordre concret), precís (cada pas és clar i sense ambigüitats) i finit (té un principi i un final, no s'allarga per sempre).
Exercici 2
Digues quina estructura (seqüència, bucle o condicional) correspon a cada cas: (a) fer parpellejar un llum per sempre; (b) fer tres accions una rere l'altra.
Mostra la solució
(a) Fer parpellejar un llum sense parar és repetir contínuament: és un bucle (per sempre). (b) Fer tres accions una rere l'altra en ordre és una seqüència.
Exercici 3
Explica què és una variable i posa un exemple d'un joc on en faries servir una.
Mostra la solució
Una variable és un espai amb nom que guarda un valor que pot canviar mentre s'executa el programa. Per exemple, en un joc de plataformes faria servir una variable 'vides' que comença a 3 i li resto 1 cada cop que el personatge toca un enemic.
Exercici 4
Un personatge de Scratch ha de dibuixar un quadrat. Quants graus ha de girar a cada cantonada i quantes vegades ha de repetir «mou i gira»?
Mostra la solució
Un quadrat té quatre costats iguals i quatre angles rectes.
A cada cantonada ha de girar 90 graus.
Cal repetir «mou i gira» 4 vegades.
Comprovació: 4 · 90° = 360°, una volta completa.
Exercici 5
Relaciona cada bloc de Scratch amb la seva categoria: «mou 10 passos», «digues Hola!», «quan es fa clic a la bandera verda» i «repeteix 5 vegades». Categories: moviment, aspecte, esdeveniments, control.
Mostra la solució
«mou 10 passos» → moviment.
«digues Hola!» → aspecte (és un bloc d'aparença).
«quan es fa clic a la bandera verda» → esdeveniments.
«repeteix 5 vegades» → control (bucle).
Exercici 6
Explica la diferència entre l'escenari, un objecte (sprite) i una disfressa a Scratch.
Mostra la solució
L'escenari és el fons on passa l'acció, i també pot tenir programes.
Un objecte (sprite) és un personatge o element que es mou i té els seus propis blocs.
Una disfressa és cadascuna de les imatges que pot tenir un objecte; canviar de disfressa fa que sembli que es mogui.
Exercici 7
Classifica aquests valors segons el tipus de dada: 25, «Hola», 3,5 i cert (una pregunta com «tocant el color vermell?» pot donar cert o fals).
Mostra la solució
25 → un nombre (enter).
3,5 → un nombre (decimal).
«Hola» → un text (cadena de caràcters).
cert → un valor booleà (cert o fals), que és el que retornen les condicions.
Exercici 8
A Scratch, la variable «punts» val 7. Quant val «punts · 2 + 1»? I quant valdria «punts» si després s'executa «canvia punts en -3»?
Mostra la solució
Primer es multiplica: 7 · 2 = 14, i després se suma 1: 14 + 1 = 15.
Amb «canvia punts en -3», la variable passa de 7 a 7 - 3 = 4.
L'expressió no modifica la variable; només el bloc «canvia» o «fixa» ho fa.
Exercici 9
Ordena aquests blocs perquè l'objecte avanci 50 passos i després giri 90 graus quan es faci clic a la bandera verda: (a) mou 50 passos; (b) gira 90 graus; (c) quan es fa clic a la bandera verda.
Mostra la solució
L'ordre correcte és: (c), (a), (b).
Primer va el bloc d'esdeveniment, que és el que inicia el programa.
Després s'executen els blocs en seqüència, de dalt a baix: primer mou 50 passos i després gira 90 graus.
Exercici 10
Què és un error (bug) en un programa i què vol dir depurar? Si un personatge va cap a l'esquerra en prémer la fletxa dreta, quin podria ser l'error?
Mostra la solució
Un bug és un error que fa que el programa no faci el que s'esperava. Depurar és buscar-lo i corregir-lo, provant el programa pas a pas.
En aquest cas, probablement el bloc mou el personatge cap a una direcció negativa (per exemple «canvia x en -10») en lloc de positiva, o s'ha associat la tecla equivocada.
Es corregeix posant «canvia x en 10».
Nivell intermedi
Exercici 11
Associa cada símbol de diagrama de flux amb el seu significat: òval, rectangle, rombe.
Mostra la solució
L'òval indica l'inici o el final del programa; el rectangle representa una acció o instrucció; el rombe representa una decisió (una pregunta de sí o no de la qual surten dos camins).
Exercici 12
Escriu, en forma d'algorisme ordenat, els passos per travessar un carrer amb semàfor de vianants.
Mostra la solució
- Acosta't al pas de vianants i atura't a la vora. 2. Mira el semàfor de vianants. 3. Si està vermell, espera. 4. Quan es posi verd, mira a banda i banda. 5. Travessa el carrer caminant. 6. Arriba a l'altra vorera. És ordenat, precís i finit.
Exercici 13
Explica la diferència entre un bucle 'repeteix 10 vegades' i un bucle 'per sempre'.
Mostra la solució
El bucle 'repeteix 10 vegades' fa les instruccions exactament deu cops i després s'atura i continua amb la resta del programa. El bucle 'per sempre' repeteix les instruccions sense parar, fins que s'atura tot el programa, així que mai no passa al que hi ha després.
Exercici 14
Escriu amb paraules un condicional 'si... llavors... si no' per a un joc: si el personatge toca un enemic, perd una vida; en cas contrari, continua.
Mostra la solució
Si (el personatge toca un enemic) llavors resta 1 a les vides; si no, continua movent-se. La condició que es comprova és 'toco un enemic?'; si és certa es fa una cosa (perdre una vida) i si és falsa se'n fa una altra (seguir).
Exercici 15
Digues quin esdeveniment de Scratch faries servir en cada cas: (a) engegar el programa; (b) moure el personatge amb el teclat.
Mostra la solució
(a) Per engegar el programa, l'esdeveniment 'quan es fa clic a la bandera verda'. (b) Per moure el personatge amb el teclat, l'esdeveniment 'quan es prem una tecla' (per exemple, la fletxa dreta).
Exercici 16
Descriu, amb blocs de Scratch en paraules, un programa que sumi 1 a la variable 'punts' cada cop que es prem la barra espaiadora.
Mostra la solució
Faria servir l'esdeveniment 'quan es prem la tecla espai' com a barret, i just a sota el bloc 'canvia punts en 1'. Així, cada cop que es prem la barra espaiadora es dispara l'esdeveniment i la variable 'punts' augmenta d'un en un.
Exercici 17
Un objecte executa «repeteix 4 vegades: mou 100 passos, gira 90 graus». Quin dibuix fa i quants passos recorre en total? Què caldria canviar per fer un triangle equilàter?
Mostra la solució
Dibuixa un quadrat de 100 passos de costat.
Recorregut total: 4 · 100 = 400 passos.
Per fer un triangle equilàter cal repetir 3 vegades i girar 120 graus ().
Exercici 18
La variable «punts» val 0. S'executa: repeteix 5 vegades [canvia punts en 3; si punts > 10 llavors digues «Molt bé!»]. Fes una traça de cada volta i digues quantes vegades surt el missatge i quant val «punts» al final.
Mostra la solució
Volta 1: punts = 3, no passa res.
Volta 2: punts = 6, no passa res.
Volta 3: punts = 9, no passa res.
Volta 4: punts = 12 > 10, diu «Molt bé!».
Volta 5: punts = 15 > 10, diu «Molt bé!».
El missatge surt 2 vegades i «punts» val 15 al final.
Exercici 19
Una màquina de cinema deixa entrar si (edat ≥ 12) i (edat ≤ 17). Indica què passa amb edats de 12, 17 i 18. Per què s'usa l'operador «i» i no «o»?
Mostra la solució
Edat 12: 12 ≥ 12 és cert i 12 ≤ 17 és cert, així que entra.
Edat 17: 17 ≥ 12 és cert i 17 ≤ 17 és cert, així que entra.
Edat 18: 18 ≥ 12 és cert però 18 ≤ 17 és fals, així que no entra.
Amb «i» han de ser certes les dues condicions. Amb «o» bastaria una, i entraria tothom, perquè qualsevol edat compleix almenys una de les dues.
Exercici 20
Dos objectes d'un joc, un gat i un ratolí, han de coordinar-se: quan el gat toca el ratolí, aquest ha de desaparèixer. Explica com ho faries amb missatges (difusió) a Scratch.
Mostra la solució
El gat té el bloc «si toca el ratolí, llavors envia el missatge atrapat» dins d'un bucle «per sempre».
El ratolí té el bloc «quan rebis el missatge atrapat» seguit de «amaga».
Així cada objecte només sap fer la seva part i el missatge els connecta.
Exercici 21
El bloc «escull un nombre aleatori entre 1 i 6» simula un dau. Quins valors pot donar? Pot sortir el 7 o un 2,5? Com ho faries per simular un dau de 12 cares?
Mostra la solució
Pot donar qualsevol enter de 1 a 6, tots amb la mateixa possibilitat.
No pot sortir 7 perquè està fora del rang; i com que els dos límits són enters, el resultat també és un enter, així que no pot sortir 2,5.
Per a un dau de 12 cares, es canvia a «escull un nombre aleatori entre 1 i 12».
Nivell avançat
Exercici 22
Fes una traça d'aquest programa: total = 0; per a n de 1 a 10: si (n mod 2) = 0 llavors total = total + n. Quant val total al final? Què calcula el programa?
Mostra la solució
«n mod 2» és el residu de dividir n entre 2, que és 0 si n és parell.
Només se sumen els nombres parells: 2 + 4 + 6 + 8 + 10 = 30.
Total = 30 al final.
El programa suma els nombres parells de l'1 al 10.
Exercici 23
Descriu amb blocs (en pseudocodi) un joc en què l'ordinador pensa un nombre del 1 al 20 i el jugador l'ha d'endevinar. Cal dir «massa alt», «massa baix» o «correcte».
Mostra la solució
1) Fixa «secret» a un nombre aleatori entre 1 i 20.
2) Repeteix fins que (resposta = secret):
pregunta «Quin nombre és?» i desa la resposta;
si resposta > secret, digues «massa alt»;
si resposta < secret, digues «massa baix».
3) Digues «Correcte!».
Es necessita una variable, un bucle i dos condicionals.
Exercici 24
Un programa fa «repeteix 10 vegades: mou 10 passos» i un altre fa «mou 100 passos». Fan el mateix? Què passa si ara es vol que avanci 250 passos en trams de 10? Explica l'avantatge dels bucles.
Mostra la solució
En el resultat final sí, avança 100 passos, però el primer ho fa en 10 trams i es veu avançar; el segon salta de cop.
Per a 250 passos en trams de 10, n'hi ha prou de canviar 10 per 25 (25 · 10 = 250).
El bucle evita repetir blocs, fa el programa més curt i més fàcil de modificar.
Exercici 25
Corregeix l'error: «Quan es fa clic a la bandera verda: si tecla fletxa dreta premuda, llavors canvia x en 10». L'alumne diu que el personatge només es mou un cop i no continua movent-se.
Mostra la solució
L'error és que el condicional s'executa només una vegada, just en iniciar el programa, i en aquell moment la tecla probablement no està premuda.
Solució: posar el «si» dins d'un bucle «per sempre» perquè es comprovi contínuament.
Alternativa: usar l'esdeveniment «quan es prem la tecla fletxa dreta».
Exercici 26
Un joc té vides = 3. Cada cop que l'heroi toca un enemic, vides baixa en 1; si vides = 0, diu «Fi del joc» i atura el programa. Si l'heroi toca enemics repetidament, en quin toc s'acaba el joc? Fes la traça.
Mostra la solució
Toc 1: vides = 2. Toc 2: vides = 1. Toc 3: vides = 0, es compleix «vides = 0» i diu «Fi del joc».
El joc s'acaba al toc 3.
El programa s'atura, així que un possible toc 4 ja no s'arriba a produir.
Cal comprovar la condició després de restar, i no abans.
Exercici 27
Dissenya, amb variables i un bucle, un programa que calculi la suma dels nombres de l'1 al n. Fes la traça per a n = 5 i digues el resultat per a n = 100.
Mostra la solució
Variables: suma = 0 i i = 1.
Repeteix n vegades: suma = suma + i; i = i + 1.
Per a n = 5: 0+1 = 1; 1+2 = 3; 3+3 = 6; 6+4 = 10; 10+5 = 15.
Per a n = 100: 1 + 2 + ... + 100 = 100 · .
Exercici 28
Una variable «i» va de l'1 al 5 i a cada volta es diu «i · i». Quins nombres es diran? Com canviaries el programa perquè només digui els resultats parells?
Mostra la solució
Els valors són 1, 4, 9, 16 i 25.
Per dir només els parells s'afegeix un condicional dins del bucle: si (i · i) mod 2 = 0, llavors digues i · i.
Només se'n diran 4 i 16.
Exercici 29
Descriu un diagrama de flux que decideixi si un nombre és parell o senar. Indica quins símbols hi has de posar i prova'l amb 7 i amb 12.
Mostra la solució
Inici (òval) → llegir el nombre N (paral·lelogram o rectangle) → decisió (rombe): «N mod 2 = 0?».
Si és sí, escriure «parell»; si és no, escriure «senar»; i finalment Fi (òval).
Prova N = 7: 7 mod 2 = 1, no és 0, per tant és senar.
Prova N = 12: 12 mod 2 = 0, per tant és parell.
Exercici 30
Analitza el programa: repeteix 4 vegades [repeteix 3 vegades [mou 10 passos]; gira 90 graus]. Quants passos fa en total, quina figura dibuixa i de quina mida?
Mostra la solució
El bucle interior fa 3 · 10 = 30 passos recte.
El bucle exterior repeteix 4 vegades «30 passos i gir de 90 graus».
Total: 4 · 30 = 120 passos.
Dibuixa un quadrat de 30 passos de costat. Els bucles niuats multipliquen les repeticions.
T'encalles amb aquest tema?
A L'Acadèmia de Vic t'ajudem amb classes individuals. Escriu-nos per WhatsApp.
Escriu-nos per WhatsApp (604 95 79 95)Més informació: Reforç d'ESO a Vic · Classes particulars
Preguntes freqüents
Què és una variable en programació?
Un espai de memòria amb un nom que guarda un valor que pot canviar mentre s'executa el programa, com els punts o les vides d'un joc.
Quina diferència hi ha entre «per sempre» i «repeteix 10 vegades»?
«Repeteix 10 vegades» executa els blocs un nombre fix de cops i continua. «Per sempre» no s'acaba mai, fins que atures el programa.