Lógica de programação: o aluno troca “e” por “ou” nas condições
Condições lógicas mostram se o aluno compreende a regra ou apenas reconhece palavras. Veja como diagnosticar confusões entre “e” e “ou”, limites e ordem das decisões, do 4º ao 8º ano.
Estava corrigindo a lista de condições de uma turma de 8º ano quando percebi o mesmo padrão em quase metade das folhas: o aluno escrevia uma condição com “e” exatamente onde a regra pedia “ou”, e o programa simplesmente não fazia nada. Ninguém tinha errado a sintaxe. O aluno tinha entendido a frase do enunciado, mas não tinha conseguido traduzi-la para a lógica do código.
Esse episódio se repete sempre que trabalho lógica de programação. O erro não aparece como uma falha visível; aparece como um resultado “quase certo”, e é justamente por isso que passa despercebido se o professor não olhar para os testes. Neste guia, reúno o que aprendi com as questões validadas sobre o tema e com a sala de aula.
O que é lógica de programação, explicado para o professor?
Lógica de programação é a habilidade de organizar um raciocínio em passos claros, com decisões bem definidas, de forma que uma máquina possa executá-lo sem ambiguidade. Na prática, ela aparece em três ingredientes: sequência de instruções, decisões (estruturas condicionais como o SE/SENÃO) e repetições. As condições usam operadores relacionais (maior que, menor ou igual) e operadores lógicos (E, OU, NÃO) para combinar critérios.
No currículo, o tema aparece com a habilidade EF15CO02 nos anos iniciais, EF15CO03 para o 4º e 5º ano, EF06CO02 e EF07CO02 nos anos finais, e EF69CO02 e EF69CO04 no 8º ano. Você pode consultar cada uma nas páginas /bncc/EF15CO02, /bncc/EF15CO03, /bncc/EF06CO02, /bncc/EF07CO02, /bncc/EF69CO02 e /bncc/EF69CO04.
Um exemplo simples: “um cinema cobra meia para crianças abaixo de 12 anos ou idosos a partir de 60”. Essa frase tem um “ou”, e é exatamente aí que a turma costuma tropeçar, como veremos adiante.
O que o aluno precisa saber antes?
Nas fichas técnicas das questões validadas, os pré-requisitos se repetem: operadores relacionais básicos, estrutura condicional SE, operadores lógicos, condições lógicas básicas e resolução estruturada de problemas. Ou seja, o aluno precisa já ter noção de comparação (é maior? é igual?) antes de combinar duas comparações com “e” ou “ou”.
Para verificar se a turma tem essa base, sugiro uma atividade rápida de duas perguntas: primeiro, peça que digam em português o que significa “idade maior que 12 e menor que 18”; depois, que digam se uma pessoa de 15 anos satisfaz. Se a resposta vier hesitante, o problema não é o código, é a tradução entre linguagem natural e condição. Nesse caso, volte aos operadores antes de avançar para decisões compostas.
Os erros mais comuns (e por que acontecem)
Os dados das questões mostram padrões claros. Em várias delas, o erro típico é confundir “e” com “ou”, ou “maior que” com “maior ou igual que”. Abaixo, os três erros que mais observo.
Trocar “e” por “ou” (e vice-versa)
Este é o erro central deste guia. Na questão do cinema, por exemplo, a regra pede meia para menores de 12 OU maiores ou iguais a 60, mas o programa usava E. Com E, a condição nunca é verdadeira ao mesmo tempo, então ninguém recebe meia. A causa é linguística: no português, “e” e “ou” são usados de forma intuitiva, e o aluno não percebe que uma condição com E exige que as duas partes sejam verdadeiras simultaneamente. A intervenção que funciona é pedir que o aluno teste um valor concreto (10, 65, 30) e verifique se ele deveria estar em um grupo ou nos dois.
Confundir limites: maior que versus maior ou igual
Na questão do painel de coleta, o programa usava “maior que 80” quando a regra incluía 80%. O aluno testava 80 e via que o aviso não saía. A causa é a leitura apressada da palavra “ou igual”. A intervenção é trabalhar sempre com três valores de teste: o limite menos um, o limite exato e o limite mais um. Isso desmonta a dúvida em segundos.
Inverter a ordem ou a associação entre condições e saídas
Em uma questão sobre cartões de biblioteca, a cor do livro estava certa, mas o aluno associava a cor à pasta errada, ou usava uma condição genérica (“é livro?”) antes da específica (“é livro azul?”). A causa é que a ordem das verificações importa, e o aluno raramente percebe que a condição mais geral “engole” as seguintes. A intervenção: desenhar um fluxograma ou uma tabela com todos os casos possíveis antes de escrever qualquer condição.
Como ensinar passo a passo
Minha sequência em sala costuma ser esta. Comece com a tradução: pegue uma regra do cotidiano (o silêncio do celular à noite, o desconto do cinema, a separação de cartões) e peça que a escrevam em frases. Depois, transforme cada frase em uma condição, com um único operador por vez. Em seguida, teste com valores escolhidos nos limites. Por fim, só então organize as condições em uma estrutura SE/SENÃO, cuidando da ordem.
Um detalhe que faz diferença: peça sempre que o aluno explique, em voz alta, o que o programa faz para cada valor de teste. Quem consegue explicar costuma já ter corrigido o erro sozinho. Esse é também um bom momento para trabalhar pensamento crítico, uma das habilidades socioemocionais mais presentes nas questões do conceito.
Como avaliar: que tipo de questão usar em cada momento
Nem toda questão serve para o mesmo fim. Pelas fichas, as questões de nível médio, com leitura média e sem cálculo, funcionam muito bem como diagnóstico e como parte da prova, porque exigem interpretação e discriminam bem entre quem entendeu e quem apenas decorou. Já questões de leitura baixa e enunciado direto, como as de definição sobre a importância da lógica, servem para abrir uma avaliação ou fazer uma verificação rápida, mas discriminam pouco.
Para simulado, prefira questões com papel de consolidação e poder de discriminação alto, como a do intervalo de horas do silêncio automático. Para atividade de casa, as situacionais com contexto cotidiano funcionam bem, porque o aluno consegue testar a resposta com a própria vida. Quando for usar para diagnóstico, observe a distribuição das respostas erradas: se muitos escolhem a mesma alternativa, você descobriu o erro típico da turma.
O que ensinar antes
Antes de trabalhar operadores lógicos, a turma precisa dominar a resolução de problemas em etapas, a noção de etapas de desenvolvimento de software e a ideia de algoritmo como sequência finita de passos. Sem isso, a condição vira um símbolo solto, sem sentido no conjunto do programa. Vale revisar também a leitura de enunciados, já que boa parte do erro começa na interpretação da frase.
Para onde este conceito leva
O domínio de condições abre caminho para outros conteúdos. A estrutura de repetição depende de uma condição de parada bem escrita, e a repetição condicional exige entender quando a condição é verdadeira. O algoritmo de repetição sem limite final é um erro que nasce exatamente de uma condição mal formulada. Por isso, a importância dos algoritmos e a noção de algoritmo de jogo costumam ser as próximas etapas. A estrutura condicional é a base de tudo isso.
Ligações com outros temas
Lógica de programação conversa com matemática (conjuntos, intervalos e a ideia de “pertence”), com língua portuguesa (interpretação de enunciados) e com ciências e tecnologia, onde o tema transversal aparece com força. As fichas técnicas marcam como tema transversal ciência e tecnologia e como habilidade socioemocional o pensamento crítico e a tomada de decisão. Essa conexão ajuda a justificar o trabalho em projetos interdisciplinares, como a programação de um sistema de avisos para a escola.
8 questões comentadas sobre lógica de programação
Questão 1: painel de coleta de pilhas e o limite de 80%
— O painel marcou 80%, mas o caminhão não recebeu o aviso de retirada — observou a responsável pelo ponto de coleta de pilhas usadas. O programa do painel deve enviar o aviso quando a caixa estiver com 80% ou mais de sua capacidade. Para testar o funcionamento, foram registrados três níveis: 79%, 80% e 81%.
No programa, a decisão está escrita assim: SE nível é maior que 80, exibir “Solicitar retirada”; SENÃO, exibir “Aguardar”. Nos testes, o painel exibiu “Aguardar” para 79% e 80%, e “Solicitar retirada” para 81%.
Analise os testes do programa e identifique a alteração na condição que corrige o aviso sem modificar os demais resultados esperados.
- ❌ A) Substituir a condição por “nível maior que 81”. — Aumenta o limite indevidamente: deixaria de avisar tanto para 80% quanto para 81%.
- ❌ B) Substituir a condição por “nível igual a 80”. — Corrige o teste de 80%, mas não avisa para 81%, que também atende à regra.
- ❌ C) Substituir a condição por “nível menor ou igual a 80”. — Inverte a comparação: avisaria em níveis baixos e deixaria de avisar acima de 80%.
- ❌ D) Substituir a condição por “nível maior ou igual a 79”. — Enviaria aviso também com 79%, nível que deve continuar em espera.
- ✅ E) Substituir a condição por “nível maior ou igual a 80”. — A regra inclui 80% e valores acima; mantém 79% em espera e avisa em 80% e 81%.
O que o erro revela: o aluno que escolhe a alternativa A ou B ainda não lê os limites com precisão. A intervenção é testar sempre o limite menos um, o exato e o mais um.
Questão 2: cartões da biblioteca e a ordem das condições
Em uma biblioteca, um programa separa cartões em três pastas. Cartões com estrela vão para “urgente”. Cartões com desenho de livro e cor azul vão para “estudo”. Cartões com desenho de livro e cor verde vão para “devolução”. A regra deve verificar primeiro o símbolo e, nos cartões com livro, também a cor.
Qual procedimento o programa deve seguir para separar corretamente os novos cartões?
- ✅ A) Se tiver estrela, enviar para “urgente”; caso contrário, se for livro azul, enviar para “estudo”; caso contrário, se for livro verde, enviar para “devolução”. — Testa primeiro a estrela e depois as cores dos livros, sem misturá-las.
- ❌ B) Se tiver estrela, enviar para “urgente”; caso contrário, se for livro azul, enviar para “devolução”; caso contrário, se for livro verde, enviar para “estudo”. — Identifica as cores corretamente, mas troca as pastas associadas.
- ❌ C) Se tiver estrela, enviar para “urgente”; caso contrário, se for livro, enviar para “estudo”; caso contrário, se for livro verde, enviar para “devolução”. — Usa a condição geral “livro” antes de verificar a cor: livros verdes também vão para “estudo”, e a condição seguinte nunca é alcançada.
- ❌ D) Se tiver estrela, enviar para “urgente”; caso contrário, se for livro azul, enviar para “devolução”; caso contrário, se for livro, enviar para “estudo”. — Envia o livro azul para devolução e não diferencia a cor na última condição.
- ❌ E) Se tiver estrela, enviar para “urgente”; caso contrário, se for livro azul, enviar para “estudo”; caso contrário, se for livro verde, enviar para “urgente”. — Coloca o livro verde na pasta “urgente”, reservada às estrelas.
O que o erro revela: a alternativa C é o distrator mais escolhido e mostra um aluno que não percebe que a condição geral captura casos que deveriam cair em outra regra. Vale desenhar a tabela de casos antes de escrever a ordem das verificações.
Questão 3: condição de conexão rápida com dois critérios
As variáveis tipoRede (texto) e taxaDados (inteiro) definem velocidade. Escreva a condição que classifica a conexão como rápida quando tipoRede é 'fibra' e taxaDados é maior que 1000.
- ❌ A) tipoRede == 'fibra' && taxaDados < 1000 — Afirma que a taxa pode ser menor que 1000, o oposto do critério.
- ✅ B) tipoRede == 'fibra' && taxaDados > 1000 — As duas condições são necessárias, e por isso usa-se && (E).
- ❌ C) tipoRede == 'fibra' || taxaDados <= 1000 — Usa OU de forma inadequada e exige um valor menor ou igual a 1000.
- ❌ D) tipoRede == 'wifi' && taxaDados > 1000 — Troca 'fibra' por 'wifi', então não classifica corretamente.
- ❌ E) tipoRede != 'fibra' && taxaDados > 1000 — Exige que não seja fibra, o que contradiz o enunciado.
O que o erro revela: a escolha da alternativa A, o distrator mais provável, indica que o aluno confunde o sentido do operador com o da comparação. Um exercício de tradução (“é fibra E é maior que mil”) costuma resolver.
Questão 4: a importância da lógica na programação
Qual a importância da lógica na programação de computadores?
- ❌ A) A lógica é apenas uma parte da matemática — Relaciona a lógica só à matemática e ignora sua função na organização de instruções.
- ✅ B) A lógica ajuda a criar algoritmos eficientes — Organiza as instruções para que o programa funcione bem.
- ❌ C) A lógica serve apenas para desenhar telas — Confunde programação com a criação visual e limita a lógica a uma tarefa pequena.
- ❌ D) A lógica impede a criação de novos programas — Vê a lógica como obstáculo, quando ela ajuda a planejar.
- ❌ E) A lógica é irrelevante na programação — Desconsidera que ela organiza como um programa deve funcionar.
O que o erro revela: é uma questão de abertura, com discriminação baixa. Serve bem para diagnosticar a noção geral, mas não para medir domínio de condições.
Questão 5: importância da lógica para resolver problemas
Qual é a importância da lógica na programação de computadores?
- ❌ A) Não é importante, pois a programação é intuitiva — A programação depende fortemente da lógica.
- ❌ B) Ajuda a criar soluções rápidas sem planejamento — A lógica exige planejamento, não apenas rapidez.
- ✅ C) Permite que o programador entenda e resolva problemas de forma estruturada — Organiza o pensamento e a resolução de problemas.
- ❌ D) É uma técnica que pode ser ignorada em programação — Ignorá-la leva a soluções confusas e ineficazes.
- ❌ E) Só é necessária para programadores experientes — É fundamental também para iniciantes.
O que o erro revela: a escolha da alternativa B, distrator mais provável, mostra que o aluno associa lógica a velocidade. Trabalhe com a ideia de que planejar antes de programar economiza tempo.
Questão 6: meia-entrada no cinema e o operador “e”
— Por que a bilheteria está cobrando “inteira” de crianças? — perguntou a atendente, ao testar um programinha que classifica o tipo de ingresso no cinema do bairro.
A regra divulgada no balcão é: pessoas com idade menor que 12 anos ou maior ou igual a 60 pagam meia. O programa foi escrito assim: ler idade; se (idade < 12 e idade >= 60) então mostrar “meia”; senão mostrar “inteira”. Nos testes, ao digitar 10, apareceu “inteira”. Ao digitar 65, também apareceu “inteira”. Para 30, apareceu “inteira”, como esperado.
Analise a regra e os resultados dos testes e identifique a alteração no programa que corrige o erro, ampliando a confiança de que ele classifica o ingresso corretamente.
- ❌ A) Trocar as mensagens mostradas nos blocos então e senão. — Inverteria a saída e faria 30 virar “meia”, contrariando a regra.
- ❌ B) Mover a linha ler idade para depois do comando se. — A condição seria avaliada sem a idade definida, sem corrigir a lógica.
- ❌ C) Trocar o operador >= por > na condição do se. — Muda a regra dos 60 e não resolve o uso de E, que impede a condição de ser verdadeira.
- ✅ D) Trocar o operador e por ou na condição do se. — A meia vale para dois grupos alternativos; com E, a condição nunca se cumpre ao mesmo tempo.
- ❌ E) Trocar o operador < por <= na condição do se. — Mesmo com <=, continuaria impossível ser menor ou igual a 12 e maior ou igual a 60 ao mesmo tempo.
O que o erro revela: esta é a questão que mais ilustra o erro central deste guia. Quem escolhe C ou E ajusta limites sem perceber que o problema é o conectivo.
Questão 7: a lógica no cotidiano
Como a lógica de programação pode ser aplicada na solução de problemas do cotidiano?
- ❌ A) A lógica não se aplica no cotidiano. — Incorreto: a lógica está presente em muitas situações diárias.
- ✅ B) Ajuda a resolver problemas de forma estruturada. — Organiza o pensamento para resolver problemas.
- ❌ C) Somente utilizada em programação. — Incorreto: é útil em muitos contextos além da programação.
- ❌ D) Não se relaciona com a matemática. — Incorreto: a lógica é fundamental na matemática.
- ❌ E) Restringe a forma de pensar. — Incorreto: a lógica amplia as opções de raciocínio.
O que o erro revela: a escolha de C, distrator mais provável, indica que o aluno ainda não separou a lógica da linguagem de programação. Peça exemplos do dia a dia para desfazer essa ideia.
Questão 8: silêncio automático e o intervalo que atravessa a meia-noite
— Por que o celular tocou de madrugada se eu deixei o “silêncio automático” ligado? — perguntou uma moradora, depois que o grupo do prédio recebeu um aviso às 23h.
O aplicativo usa a hora (um número de 0 a 23) para decidir se pode tocar som. O combinado era: entre 22h e antes de 7h, o app deve ficar silencioso. O programador testou a função abaixo e anotou que ela devolveu FALSO para hora = 23, hora = 6 e hora = 10. func Silenciar(hora): se (hora >= 22 e hora < 7) retornar VERDADEIRO; senão retornar FALSO.
Analise o algoritmo e identifique a mudança na condição que corrige o erro lógico para o modo silencioso funcionar no intervalo combinado.
- ❌ A) Adicionar “se hora < 7 entao hora = hora + 24” antes da condição, mantendo-a igual. — Correção incompleta: a condição com E continua impossível.
- ❌ B) Substituir “retornar VERDADEIRO” por “retornar FALSO” dentro do se. — Inverte o significado sem ativar o silêncio nos horários certos.
- ✅ C) Substituir “hora >= 22 e hora < 7” por “hora >= 22 ou hora < 7”. — O intervalo atravessa a meia-noite; unir os dois trechos com OU faz 23 e 6 virarem verdadeiros.
- ❌ D) Substituir “hora >= 22” por “hora > 22”, mantendo o restante igual. — Mexe só na borda das 22h e não resolve o conectivo.
- ❌ E) Substituir “hora < 7” por “hora <= 7”, mantendo o restante igual. — Ajusta a borda de 7h, mas a combinação E continua impossível.
O que o erro revela: a alternativa A, distrator mais provável, mostra um aluno que tenta contornar o problema com truques em vez de corrigir o operador. É uma questão de alta discriminação e ótima para simulado.
Perguntas frequentes
Por que o aluno troca “e” por “ou” mesmo entendendo a regra?
Porque na linguagem do dia a dia “e” e “ou” são usados de forma intuitiva e muitas vezes ambígua. O aluno entende a ideia da regra, mas não percebe que, no código, o “e” exige que as duas condições sejam verdadeiras ao mesmo tempo. A solução é testar com valores concretos e perguntar, para cada um, se ele pertence a um grupo, a outro, ou a ambos.
Como saber se minha turma tem base para trabalhar operadores lógicos?
Faça duas perguntas simples: o que significa “maior que 12 e menor que 18” e se uma pessoa de 15 anos satisfaz essa condição. Se a turma hesitar na tradução da frase para a comparação, é sinal de que os operadores relacionais ainda precisam de reforço antes das decisões compostas.
Qual tipo de questão usar para diagnosticar o erro de “e” e “ou”?
Questões de nível médio, com enunciado situacional e leitura média, como a da meia-entrada do cinema ou a do silêncio automático. Elas exigem interpretação e discriminam bem, além de revelar qual alternativa a turma escolhe, o que mostra o erro típico do grupo.
Devo ensinar limites com “maior que” e “maior ou igual” antes de conectivos?
Sim. O erro de limite é o primeiro a aparecer e costuma ser mais fácil de corrigir. Depois de dominar a comparação exata, o aluno consegue combinar duas condições com “e” ou “ou” com muito mais segurança.
Essas questões servem para prova e simulado?
Algumas sim. As de papel de consolidação e poder de discriminação alto são boas para simulado. As de progressão servem bem para a prova regular. As de abertura, mais diretas, são úteis para uma verificação rápida no início do conteúdo.
Como começar a trabalhar esse tema com a turma amanhã?
Escolha uma regra do cotidiano, como o desconto do cinema ou um aviso do celular, e peça que os alunos escrevam a regra em frases. Depois, transforme cada frase em condição e teste com três valores: o limite menos um, o exato e o mais um. Em uma aula, dá para ver quem já domina e quem precisa de apoio.
Quer montar essas questões para a sua turma sem começar do zero? Com o gerador de provas do GeraProva você cria avaliações com essa ficha pedagógica em poucos minutos. Faça seu cadastro grátis e teste.
Encontrou um erro neste conteúdo? Veja nossa política editorial e avise a gente.
O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.
Questões deste artigo com resolução completa
- — O painel marcou 80%, mas o caminhão não recebeu o aviso de retirada — observou a responsável pelo ponto de…
- Em uma biblioteca, um programa separa cartões em três pastas. Cartões com estrela vão para “urgente”. Cartões…
- As variáveis tipoRede (texto) e taxaDados (inteiro) definem velocidade. Escreva a condição que classifica a…
- Qual a importância da lógica na programação de computadores?
- Qual é a importância da lógica na programação de computadores?
- — Por que a bilheteria está cobrando “inteira” de crianças? — perguntou a atendente, ao testar um programinha…
- Como a lógica de programação pode ser aplicada na solução de problemas do cotidiano?
- — Por que o celular tocou de madrugada se eu deixei o “silêncio automático” ligado? — perguntou uma moradora…
Fontes
- Base Nacional Comum Curricular (BNCC), Ministério da Educação: basenacionalcomum.mec.gov.br
- Questões do acervo GeraProva sobre Análise de programas, com resolução comentada e análise de cada alternativa.
