Exercícios: Programação de placas controladoras
Explique o que é um algoritmo e o que é um programa, e qual a diferença entre descrevê-lo em pseudocódigo (com palavras) e com blocos gráficos.
Explique o que é um algoritmo e o que é um programa, e qual a diferença entre descrevê-lo em pseudocódigo (com palavras) e com blocos gráficos.
As instruções do programa de um semáforo estão desordenadas: (a) esperar 2 segundos, (b) acender a luz vermelha e apagar as demais, (c) acender a luz verde e apagar as…
As instruções do programa de um semáforo estão desordenadas: (a) esperar 2 segundos, (b) acender a luz vermelha e apagar as demais, (c) acender a luz verde e apagar as demais, (d) voltar ao início, (e) esperar 8 segundos (aparece duas vezes no ciclo), (f) acender a luz amarela e apagar as demais. Ordene-as corretamente e descreva o que faz o programa completo.
O fluxograma da figura governa a cancela de entrada de um estacionamento, mas falta a pergunta do losango. Escreva a condição que deveria ser verificada ali e descreva o…
O fluxograma da figura governa a cancela de entrada de um estacionamento, mas falta a pergunta do losango. Escreva a condição que deveria ser verificada ali e descreva o comportamento completo da cancela.
Explique o que significa «ler uma entrada» em um programa de controle e qual a diferença entre ler um botão (que dá 0 ou 1) e ler um sensor de luz (que dá um número…
Explique o que significa «ler uma entrada» em um programa de controle e qual a diferença entre ler um botão (que dá 0 ou 1) e ler um sensor de luz (que dá um número dentro de uma faixa).
Um programa tem apenas estas linhas: «repetir sempre: ler o botão; se estiver pressionado, acender o LED; se não, apagar o LED». Descreva com suas palavras o que faz a…
Um programa tem apenas estas linhas: «repetir sempre: ler o botão; se estiver pressionado, acender o LED; se não, apagar o LED». Descreva com suas palavras o que faz a montagem e raciocine sobre o que ocorreria se a parte «se não, apagar o LED» fosse apagada.
Explique o que é uma instrução condicional («se... então... senão...») e escreva a condição de que precisam estes dois avisos: um alarme que soa quando uma porta é…
Explique o que é uma instrução condicional («se... então... senão...») e escreva a condição de que precisam estes dois avisos: um alarme que soa quando uma porta é aberta e um aviso que apita quando a temperatura passa de $40\ ^\circ\text{C}$.
Para que serve a instrução «esperar» (uma pausa) em um programa de controle? Dê dois exemplos em que, sem essa pausa, o sistema não cumpriria sua função.
Para que serve a instrução «esperar» (uma pausa) em um programa de controle? Dê dois exemplos em que, sem essa pausa, o sistema não cumpriria sua função.
Explique por que quase todos os programas das placas controladoras têm um laço («repetir sempre») e descreva o que faria um semáforo cujo programa não tivesse laço.
Explique por que quase todos os programas das placas controladoras têm um laço («repetir sempre») e descreva o que faria um semáforo cujo programa não tivesse laço.
Escreva em pseudocódigo o programa completo de um semáforo simples: verde por 8 segundos, amarelo por 2, vermelho por 8, e recomeçar. Indique em cada passo quais luzes…
Escreva em pseudocódigo o programa completo de um semáforo simples: verde por 8 segundos, amarelo por 2, vermelho por 8, e recomeçar. Indique em cada passo quais luzes estão acesas e quais estão apagadas.
Uma luz de escada funciona assim: ao pressionar o botão, ela acende; passados 30 segundos, apaga sozinha; e o ciclo pode se repetir. Desenhe ou descreva seu fluxograma e…
Uma luz de escada funciona assim: ao pressionar o botão, ela acende; passados 30 segundos, apaga sozinha; e o ciclo pode se repetir. Desenhe ou descreva seu fluxograma e escreva depois o pseudocódigo correspondente.
Você pode fazer no papel e enviar uma foto com a sua resposta.
O fluxograma da figura é o programa de um robô seguidor de linha com um único sensor que fica sobre a borda da linha, mas falta a condição do losango. Complete-a,…
O fluxograma da figura é o programa de um robô seguidor de linha com um único sensor que fica sobre a borda da linha, mas falta a condição do losango. Complete-a, descreva o que o robô faz em cada caso e raciocine sobre o que ocorrerá quando a linha acabar.
A cancela de um estacionamento só deve subir quando há um carro esperando (sensor) e, além disso, o motorista pegou o ticket (botão); desce quando o carro passou (um…
A cancela de um estacionamento só deve subir quando há um carro esperando (sensor) e, além disso, o motorista pegou o ticket (botão); desce quando o carro passou (um segundo sensor). Escreva o pseudocódigo completo do ciclo, combinando as duas condições ao mesmo tempo.
Um alarme residencial, ao detectar a porta aberta, espera 10 segundos antes de soar para dar tempo de desativá-lo com um código. Escreva seu pseudocódigo incluindo a…
Um alarme residencial, ao detectar a porta aberta, espera 10 segundos antes de soar para dar tempo de desativá-lo com um código. Escreva seu pseudocódigo incluindo a verificação do código e explique para que serve esse atraso.
Um programa conta carros: «repetir sempre: esperar que o sensor passe de 0 a 1; somar 1 à variável carros». Explique o que ele faz, para que pode servir e que problema…
Um programa conta carros: «repetir sempre: esperar que o sensor passe de 0 a 1; somar 1 à variável carros». Explique o que ele faz, para que pode servir e que problema aparece se um carro parar bem em cima do sensor.
Um programa de ventilador diz: «se a temperatura for maior que $26\ ^\circ\text{C}$, desligar o ventilador; se for menor que $26\ ^\circ\text{C}$, ligá-lo». Descreva o…
Um programa de ventilador diz: «se a temperatura for maior que $26\ ^\circ\text{C}$, desligar o ventilador; se for menor que $26\ ^\circ\text{C}$, ligá-lo». Descreva o comportamento real do ventilador e escreva o programa corrigido.
Em um semáforo com botão para pedestres, o programa só lê o botão uma vez a cada ciclo de 30 segundos. Explique o que o pedestre percebe ao pressionar e raciocine por…
Em um semáforo com botão para pedestres, o programa só lê o botão uma vez a cada ciclo de 30 segundos. Explique o que o pedestre percebe ao pressionar e raciocine por que as pausas longas dentro do programa afetam a rapidez de resposta do sistema.
O fluxograma da figura controla a cancela de saída de um estacionamento, com um sensor situado sob a cancela, mas falta uma das condições. Complete-o, descreva o…
O fluxograma da figura controla a cancela de saída de um estacionamento, com um sensor situado sob a cancela, mas falta uma das condições. Complete-o, descreva o comportamento completo e explique que acidente essa segunda verificação evita.
Uma equipe de robótica testa um rastreador seguidor de linha com dois sensores de infravermelho (E e D) separados por 2,0 cm, projetados para seguir uma linha preta de…
Uma equipe de robótica testa um rastreador seguidor de linha com dois sensores de infravermelho (E e D) separados por 2,0 cm, projetados para seguir uma linha preta de 1,5 cm sobre fundo branco. O programa atual aplica a lógica clássica: avançar em linha reta se ambos veem branco, virar à direita se D pisa no preto e à esquerda se E pisa no preto.
- a) Preveja o que acontecerá em uma curva muito fechada de 90° se o robô entrar rápido e os dois sensores ficarem ao mesmo tempo sobre o fundo branco fora da linha. Justifique por que o algoritmo básico falha.
- b) Projete em pseudocódigo uma melhoria que use uma variável de memória (
ultimo_visto) para que o robô saiba para qual lado girar quando perde a linha por completo. - c) Se a pista tivesse uma linha preta larga de 3,5 cm (mais larga que a distância entre os sensores), preveja o comportamento do robô em uma reta e explique qual condição adicional você deveria programar para tratar o caso em que ambos os sensores detectam preto ao mesmo tempo.
Um instalador programa a central de alarme de uma residência com um sensor magnético na porta, outro na janela e uma chave de armação por meio deste algoritmo: a)…
Um instalador programa a central de alarme de uma residência com um sensor magnético na porta, outro na janela e uma chave de armação por meio deste algoritmo:
repetir sempre:
se (armada == VERDADEIRO) e (porta == ABERTA ou janela == ABERTA) então:
ativar_sirene()
esperar(60) // segundos
desativar_sirene()
- a) Analise o código e raciocine sobre duas falhas críticas de segurança: o que ocorre se um intruso abre a janela, entra e a fecha de novo em 3,0 s? E o que acontece se passam os 60 s e o intruso continua dentro com a janela aberta?
- b) Projete em pseudocódigo um algoritmo robusto com variáveis de estado que garanta: 1) uma vez disparada, a sirene soará pelo menos 60 s mesmo que o acesso seja fechado novamente; 2) não será desligada enquanto persistir a abertura dos sensores; e 3) se o usuário desligar a chave de armação, a sirene será interrompida imediatamente em qualquer instante.
Um estudante programa o acendimento da luz de uma escada de condomínio: ao pressionar o interruptor, a luz deve permanecer acesa por 30 s e depois apagar. a) Se o…
Um estudante programa o acendimento da luz de uma escada de condomínio: ao pressionar o interruptor, a luz deve permanecer acesa por 30 s e depois apagar.
- a) Se o estudante implementa o atraso com uma função bloqueante do tipo
esperar(30), preveja o que acontecerá se um segundo morador pressionar o interruptor 15 s depois de a luz ter acendido. Esse comportamento cumpre a função de um minuteiro de escada rearmável? Justifique sua resposta. - b) Projete em pseudocódigo um sistema rearmável não bloqueante empregando uma variável
tempo_restantee verificações periódicas (por exemplo, a cada 1,0 s), de modo que cada nova pressão reinicie a contagem regressiva em 30 s sem apagar a luz. - c) Preveja que risco existe se um botão físico travar e ficar permanentemente acionado, e proponha uma modificação lógica para evitar que a luz fique acesa indefinidamente.
Para controlar um semáforo de veículos que inclui um botão de solicitação para pedestres, comparam-se duas estruturas de programação: Opção A (sequencial linear): laço…
Para controlar um semáforo de veículos que inclui um botão de solicitação para pedestres, comparam-se duas estruturas de programação:
-
Opção A (sequencial linear): laço com chamadas bloqueantes
esperar(t)sucessivas (verde 30 s, amarelo 3 s, vermelho 15 s). -
Opção B (máquina de estados): o sistema permanece no estado
CARROS_VERDEe só transita de estado se detectar o sinal do botão de pedestres.
- a) Justifique por que a opção A é inadequada para atender imediatamente ao acionamento de um pedestre e que defeito de resposta isso provocará.
- b) Se for solicitado acrescentar uma nova função («o verde de pedestres deve piscar 3 vezes durante 3,0 s antes de passar a vermelho, mas somente se o sensor para deficientes visuais não estiver ativo»), raciocine sobre quais vantagens de modularidade e manutenção a opção B apresenta em relação à A.
- c) Projete o diagrama de estados ou pseudocódigo geral da opção B identificando claramente os estados, os eventos de entrada e as ações associadas a cada transição.
O sistema de controle de uma cancela automática de pedágio dispõe de um sensor de presença 1 (logo antes da cancela) e de um sensor 2 (logo depois). Um operário propõe…
O sistema de controle de uma cancela automática de pedágio dispõe de um sensor de presença 1 (logo antes da cancela) e de um sensor 2 (logo depois). Um operário propõe este código:
repetir sempre:
se (sensor_1 == DETECTADO) então:
subir_cancela()
se (sensor_1 == LIVRE) então:
baixar_cancela()
- a) Preveja que acidente ocorrerá fisicamente assim que a frente do carro ultrapassar o sensor 1, se a parte traseira ainda estiver sob a cancela. Justifique por que a proposta do operário de «acrescentar uma pausa de 5,0 s antes de baixar» não resolve o problema com tráfego lento ou veículos articulados.
- b) Elabore em pseudocódigo um algoritmo seguro que utilize ambos os sensores para garantir que a cancela suba quando o veículo chegar, permaneça levantada enquanto qualquer um dos dois sensores detectar presença, e só baixe quando o veículo tiver liberado totalmente o sensor 2.
Em uma ponte levadiça acionada por um motorredutor elétrico, propõe-se substituir os dois fins de curso físicos (fc_abajo e fc_arriba) por um controle baseado…
Em uma ponte levadiça acionada por um motorredutor elétrico, propõe-se substituir os dois fins de curso físicos (fc_abajo e fc_arriba) por um controle baseado exclusivamente em tempos: fazer o motor girar durante 5,0 s para abrir e 5,0 s para fechar.
- a) Preveja e justifique pelo menos duas situações reais (mecânicas, meteorológicas ou elétricas) em que este sistema por tempo fará com que a ponte não feche por completo ou acabe danificando o motor.
- b) Elabore em pseudocódigo o ciclo completo de manobra: ao detectar um barco, colocar o semáforo de trânsito viário em vermelho, esperar 3,0 s para desocupação, subir a ponte até
fc_arriba, permitir a passagem fluvial com semáforo náutico em verde e, quando o barco sair, fechar atéfc_abajo. - c) Incorpore ao seu algoritmo um mecanismo de segurança por tempo máximo (watchdog): se transcorrerem mais de 8,0 s sem que o fim de curso correspondente seja ativado durante o movimento, o motor deve parar imediatamente e ativar um sinal luminoso de alarme.
Para automatizar a irrigação de uma horta escolar, dispõe-se de um sensor de umidade analógico e uma eletrobomba. Um primeiro programa aplica esta regra: «repetir…
Para automatizar a irrigação de uma horta escolar, dispõe-se de um sensor de umidade analógico e uma eletrobomba. Um primeiro programa aplica esta regra: «repetir sempre: se umidade < 30,0 %, ligar bomba; senão, desligar bomba; esperar 1 segundo».
- a) Se a leitura do sensor oscilar rapidamente entre 29,8 % e 30,2 % devido à absorção localizada ou a ruído elétrico, preveja qual comportamento a eletrobomba terá e quais serão as consequências mecânicas e elétricas.
- b) Explique por que substituir a espera por «esperar 10 minutos» também não garante uma irrigação ideal (analise o atraso na infiltração da água e o risco de irrigação excessiva).
- c) Elabore uma solução por controle com histerese: defina dois limiares lógicos de umidade distintos (partida e parada) e redija o pseudocódigo estruturado ou descreva detalhadamente o fluxograma correspondente, justificando por que ele evita as comutações constantes.