Programació de plaques controladores
Una placa controladora no interpreta les teves intencions: executa exactament el que has escrit, encara que estigui malament. Llegir entrades, decidir, repetir i mesurar el temps són les quatre peces amb què es construeix quasi qualsevol programa de control, des d'un semàfor fins a un robot seguidor de línia.
Llegir entrades: convertir el món en nombres
Explica què és un algorisme i què és un programa, i quina diferència hi ha entre descriure'l en pseudocodi (amb paraules) i amb blocs gràfics.
Explica què és un algorisme i què és un programa, i quina diferència hi ha entre descriure'l en pseudocodi (amb paraules) i amb blocs gràfics.
Les instruccions del programa d'un semàfor estan desordenades: (a) esperar 2 segons, (b) encendre la llum vermella i apagar les altres, (c) encendre la llum verda i…
Les instruccions del programa d'un semàfor estan desordenades: (a) esperar 2 segons, (b) encendre la llum vermella i apagar les altres, (c) encendre la llum verda i apagar les altres, (d) tornar al principi, (e) esperar 8 segons (apareix dues vegades en el cicle), (f) encendre la llum ambre i apagar les altres. Ordena-les correctament i descriu què fa el programa complet.
Escriu en pseudocodi el programa complet d'un semàfor senzill: verd durant 8 segons, ambre durant 2, vermell durant 8, i tornar a començar. Indica a cada pas quins llums…
Escriu en pseudocodi el programa complet d'un semàfor senzill: verd durant 8 segons, ambre durant 2, vermell durant 8, i tornar a començar. Indica a cada pas quins llums estan encesos i quins apagats.
Decidir amb condicionals
El diagrama de flux de la figura governa la barrera d'entrada d'un aparcament, però falta la pregunta del rombe. Escriu la condició que s'hauria de comprovar aquí i…
El diagrama de flux de la figura governa la barrera d'entrada d'un aparcament, però falta la pregunta del rombe. Escriu la condició que s'hauria de comprovar aquí i descriu el comportament complet de la barrera.
Explica què vol dir «llegir una entrada» en un programa de control i quina diferència hi ha entre llegir un polsador (que dona 0 o 1) i llegir un sensor de llum (que…
Explica què vol dir «llegir una entrada» en un programa de control i quina diferència hi ha entre llegir un polsador (que dona 0 o 1) i llegir un sensor de llum (que dona un nombre dins d'un interval).
Un llum d'escala funciona així: en prémer el botó s'encén; passats 30 segons s'apaga sol; i el cicle es pot repetir. Dibuixa o descriu el seu diagrama de flux i escriu…
Un llum d'escala funciona així: en prémer el botó s'encén; passats 30 segons s'apaga sol; i el cicle es pot repetir. Dibuixa o descriu el seu diagrama de flux i escriu després el pseudocodi corresponent.
Pots fer-ho en paper i enviar una foto amb la teva resposta.
Repetir en bucles: el programa que no acaba
Un programa té només aquestes línies: «repetir sempre: llegir el polsador; si està premut, encendre el LED; si no, apagar el LED». Descriu amb les teves paraules què fa…
Un programa té només aquestes línies: «repetir sempre: llegir el polsador; si està premut, encendre el LED; si no, apagar el LED». Descriu amb les teves paraules què fa el muntatge i raona què passaria si s'esborrés la part «si no, apagar el LED».
El diagrama de flux de la figura és el programa d'un robot seguidor de línia amb un únic sensor que va sobre la vora de la línia, però falta la condició del rombe.…
El diagrama de flux de la figura és el programa d'un robot seguidor de línia amb un únic sensor que va sobre la vora de la línia, però falta la condició del rombe. Completa-la, descriu què fa el robot en cada cas i raona què passarà quan la línia s'acabi.
La barrera d'un pàrquing només ha de pujar quan hi ha un cotxe esperant (sensor) i a més el conductor ha agafat el tiquet (polsador); baixa quan el cotxe ha passat (un…
La barrera d'un pàrquing només ha de pujar quan hi ha un cotxe esperant (sensor) i a més el conductor ha agafat el tiquet (polsador); baixa quan el cotxe ha passat (un segon sensor). Escriu el pseudocodi complet del cicle, combinant les dues condicions alhora.
Mesurar el temps sense bloquejar el programa
Una alarma d'habitatge, en detectar la porta oberta, espera 10 segons abans de sonar per donar temps a desactivar-la amb un codi. Escriu el seu pseudocodi incloent-hi la…
Una alarma d'habitatge, en detectar la porta oberta, espera 10 segons abans de sonar per donar temps a desactivar-la amb un codi. Escriu el seu pseudocodi incloent-hi la comprovació del codi i explica per a què serveix aquest retard.
Un programa compta cotxes: «repetir sempre: esperar que el sensor passi de 0 a 1; sumar 1 a la variable cotxes». Explica què fa, per a què pot servir i quin problema…
Un programa compta cotxes: «repetir sempre: esperar que el sensor passi de 0 a 1; sumar 1 a la variable cotxes». Explica què fa, per a què pot servir i quin problema apareix si un cotxe s'atura just a sobre del sensor.
El diagrama de flux de la figura governa la barrera de sortida d'un pàrquing, amb un sensor situat sota la barrera, però falta una de les condicions. Completa-la,…
El diagrama de flux de la figura governa la barrera de sortida d'un pàrquing, amb un sensor situat sota la barrera, però falta una de les condicions. Completa-la, descriu el comportament complet i explica quin accident evita aquesta segona comprovació.
Depurar un programa que no fa el que hauria de fer
Un equip de robòtica prova un rastrejador seguidors de línia amb dos sensors d'infrarojos (E i D) separats 2,0 cm, dissenyats per seguir una línia negra d'1,5 cm sobre…
Un equip de robòtica prova un rastrejador seguidors de línia amb dos sensors d'infrarojos (E i D) separats 2,0 cm, dissenyats per seguir una línia negra d'1,5 cm sobre fons blanc. El programa actual aplica la lògica clàssica: avançar recte si tots dos veuen blanc, girar a la dreta si D trepitja negre i a l'esquerra si E trepitja negre.
- a) Prediu què succeirà en una corba molt tancada a 90° si el robot entra ràpid i els dos sensors queden alhora sobre el fons blanc fora de la línia. Justifica per què l'algorisme bàsic entra en fallada.
- b) Dissenya en pseudocodi una millora que utilitzi una variable de memòria (
ultim_vist) perquè el robot sàpiga cap a quin costat girar quan perd la línia per complet. - c) Si la pista tingués una línia negra ampla de 3,5 cm (més ampla que la distància entre sensors), prediu el comportament del robot en una recta i explica quina condició addicional hauries de programar per gestionar quan ambdós sensors detectin negre al mateix temps.
Un instal·lador programa la central d'alarma d'un habitatge amb un sensor magnètic a la porta, un altre a la finestra i un interruptor d'armat mitjançant aquest…
Un instal·lador programa la central d'alarma d'un habitatge amb un sensor magnètic a la porta, un altre a la finestra i un interruptor d'armat mitjançant aquest algorisme:
repetir sempre:
si (armada == VERITABLE) i (porta == OBERTA o finestra == OBERTA) llavors:
activar_sirena()
esperar(60) // segons
desactivar_sirena()
- a) Analitza el codi i raona dues fallades crítiques de seguretat: què passa si un intrús obre la finestra, entra i la torna a tancar en 3,0 s? I què passa si transcorren els 60 s i l'intrús continua a dins amb la finestra oberta?
- b) Dissenya en pseudocodi un algorisme robust amb variables d'estat que garanteixi: 1) un cop disparada, la sirena sonarà almenys 60 s encara que es torni a tancar l'accés; 2) no s'apagarà mentre persisteixi l'obertura dels sensors; i 3) si l'usuari apaga l'interruptor d'armat, la sirena s'aturarà immediatament en qualsevol instant.
Un estudiant programa l'encesa de la llum d'una escala comunitària: en prémer l'interruptor, la llum ha de romandre encesa 30 s i després apagar-se. a) Si l'estudiant…
Un estudiant programa l'encesa de la llum d'una escala comunitària: en prémer l'interruptor, la llum ha de romandre encesa 30 s i després apagar-se.
- a) Si l'estudiant implementa el retard amb una funció bloquejant del tipus
esperar(30), prediu què succeirà si un segon veí prem l'interruptor al cap de 15 s d'haver-se encès la llum. Compleix aquest comportament la funció d'un temporitzador d'escala rearmable? Justifica la teva resposta. - b) Dissenya en pseudocodi un sistema rearmable no bloquejant emprant una variable
temps_restanti comprovacions periòdiques (per exemple, cada 1,0 s), de manera que cada nova pulsació reiniciï el compte enrere a 30 s sense apagar la llum. - c) Prediu quin risc hi ha si un polsador físic s'encalla i queda permanentment activat, i proposa una modificació lògica per evitar que la llum quedi encesa de manera indefinida.