Programación de placas controladoras
Una placa controladora ejecuta exactamente las instrucciones de su programa, sean correctas o no: no interpreta intenciones. Formalizar el pensamiento algorítmico antes de programar —con pseudocódigo, diagramas de flujo o máquinas de estados— es lo que separa un programa que funciona por casualidad de uno diseñado para funcionar siempre.
Algoritmo y programa
Explica qué es un algoritmo y qué es un programa, y qué diferencia hay entre describirlo en pseudocódigo (con palabras) y con bloques gráficos.
Explica qué es un algoritmo y qué es un programa, y qué diferencia hay entre describirlo en pseudocódigo (con palabras) y con bloques gráficos.
Las instrucciones del programa de un semáforo están desordenadas: (a) esperar 2 segundos, (b) encender la luz roja y apagar las demás, (c) encender la luz verde y apagar…
Las instrucciones del programa de un semáforo están desordenadas: (a) esperar 2 segundos, (b) encender la luz roja y apagar las demás, (c) encender la luz verde y apagar las demás, (d) volver al principio, (e) esperar 8 segundos (aparece dos veces en el ciclo), (f) encender la luz ámbar y apagar las demás. Ordénalas correctamente y describe qué hace el programa completo.
Entradas y condicionales: combinar con Y, O, NO
Explica qué significa «leer una entrada» en un programa de control y qué diferencia hay entre leer un pulsador (que da 0 o 1) y leer un sensor de luz (que da un número…
Explica qué significa «leer una entrada» en un programa de control y qué diferencia hay entre leer un pulsador (que da 0 o 1) y leer un sensor de luz (que da un número dentro de un rango).
Explica qué es una instrucción condicional («si... entonces... si no...») y escribe la condición que necesitan estos dos avisos: una alarma que suena cuando se abre una…
Explica qué es una instrucción condicional («si... entonces... si no...») y escribe la condición que necesitan estos dos avisos: una alarma que suena cuando se abre una puerta y un aviso que pita cuando la temperatura pasa de $40\ ^\circ\text{C}$.
La barrera de un parking solo debe subir cuando hay un coche esperando (sensor) y además el conductor ha cogido el ticket (pulsador); baja cuando el coche ha pasado (un…
La barrera de un parking solo debe subir cuando hay un coche esperando (sensor) y además el conductor ha cogido el ticket (pulsador); baja cuando el coche ha pasado (un segundo sensor). Escribe el pseudocódigo completo del ciclo, combinando las dos condiciones a la vez.
Bucles y temporización no bloqueante
¿Para qué sirve la instrucción «esperar» (una pausa) en un programa de control? Pon dos ejemplos en los que, sin esa pausa, el sistema no haría su función.
¿Para qué sirve la instrucción «esperar» (una pausa) en un programa de control? Pon dos ejemplos en los que, sin esa pausa, el sistema no haría su función.
Explica por qué casi todos los programas de las placas controladoras llevan un bucle («repetir siempre») y describe qué haría un semáforo cuyo programa no tuviera bucle.
Explica por qué casi todos los programas de las placas controladoras llevan un bucle («repetir siempre») y describe qué haría un semáforo cuyo programa no tuviera bucle.
En un semáforo con botón para peatones, el programa solo lee el botón una vez en cada ciclo de 30 segundos. Explica qué nota el peatón al pulsar y razona por qué las…
En un semáforo con botón para peatones, el programa solo lee el botón una vez en cada ciclo de 30 segundos. Explica qué nota el peatón al pulsar y razona por qué las pausas largas dentro del programa afectan a la rapidez de respuesta del sistema.
Diagramas de flujo
El diagrama de flujo de la figura gobierna la barrera de entrada de un aparcamiento, pero falta la pregunta del rombo. Escribe la condición que debería comprobarse ahí y…
El diagrama de flujo de la figura gobierna la barrera de entrada de un aparcamiento, pero falta la pregunta del rombo. Escribe la condición que debería comprobarse ahí y describe el comportamiento completo de la barrera.
Traduce a un diagrama de flujo, descrito bloque a bloque, este programa: «repetir siempre: leer la humedad; si es menor que el 30 %, encender la bomba; si no, apagarla;…
Traduce a un diagrama de flujo, descrito bloque a bloque, este programa: «repetir siempre: leer la humedad; si es menor que el 30 %, encender la bomba; si no, apagarla; esperar 10 minutos». Señala dónde está el bucle, dónde la decisión y dónde la temporización.
Secuencias de espera frente a máquinas de estados
Escribe en pseudocódigo el programa completo de un semáforo sencillo: verde durante 8 segundos, ámbar durante 2, rojo durante 8, y vuelta a empezar. Indica en cada paso…
Escribe en pseudocódigo el programa completo de un semáforo sencillo: verde durante 8 segundos, ámbar durante 2, rojo durante 8, y vuelta a empezar. Indica en cada paso qué luces están encendidas y cuáles apagadas.
Dos equipos programan el mismo semáforo peatonal: uno encadena esperas fijas una tras otra; el otro usa estados (verde para coches, ámbar, rojo con verde para peatones)…
Dos equipos programan el mismo semáforo peatonal: uno encadena esperas fijas una tras otra; el otro usa estados (verde para coches, ámbar, rojo con verde para peatones) y condiciones para cambiar de estado. Compara ambos enfoques y razona cuál es más fácil de modificar cuando llega una petición nueva: «añade un parpadeo del verde peatonal antes de cortar».
Depuración
Un programa cuenta coches: «repetir siempre: esperar a que el sensor pase de 0 a 1; sumar 1 a la variable coches». Explica qué hace, para qué puede servir y qué problema…
Un programa cuenta coches: «repetir siempre: esperar a que el sensor pase de 0 a 1; sumar 1 a la variable coches». Explica qué hace, para qué puede servir y qué problema aparece si un coche se para justo encima del sensor.
Un programa de ventilador dice: «si la temperatura es mayor que $26\ ^\circ\text{C}$, apagar el ventilador; si es menor que $26\ ^\circ\text{C}$, encenderlo». Describe…
Un programa de ventilador dice: «si la temperatura es mayor que $26\ ^\circ\text{C}$, apagar el ventilador; si es menor que $26\ ^\circ\text{C}$, encenderlo». Describe el comportamiento real del ventilador y escribe el programa corregido.
Depura este programa de barrera: «repetir siempre: si el sensor detecta coche, subir la barrera; bajar la barrera». Explica el fallo, qué hará la barrera en la práctica…
Depura este programa de barrera: «repetir siempre: si el sensor detecta coche, subir la barrera; bajar la barrera». Explica el fallo, qué hará la barrera en la práctica y escribe el programa corregido.