Commit inicial - add do repo privado para o repo NT style: changes header's logo and colors style: changes home page first session layout feat: creates about us home page section chore: creates home page section for whom chore: creates student materails home page section chore: creates teachers materials home page section chore: creates teacher materials home page section style: changes primary color style: changes color at activities page style: changes about page color style: changes name to Decoda fix: changes route to about page at footer fix: changes background color style: changes game page header colors style: changes footer colors chore: adds home page sections title style: changes main font family to Lato style: adds title font fix: changes sizes to be more responsive for mobile ajuste no build vercel atualiza regras envio homol Adiciona instrucoes de uso add JupyterLite fix solucao turtle Add Mole Mash e Modal de Falhas Add Progress Bar na pagina de Atividades fix game name chore: atualiza lockfile removendo vercel analytics inclusão de efeito ao mudar de fase add mecanismo de solução de fases em debug vite config test add BaseGame e refator do MoleMash refatoração turtle refatoração automato refatoração automato add tag bug 1 e 2 automato mostrar apenas games em homologação na pagina de atividades aumentar timeout das fases finais do Turtle fix bug scroll add video refactor semaforo arrumar ordem das cores add build docs update vercel update vercel update vercel update vercel update vercel add vercel jupyter add vercel jupyter fix deploy Vercel fix deploy Vercel fix deploy Vercel add cripto add cripto refatoração fix tour Mole Mash . remover arquivos de controle chore: adds development tag for activity card remover arquivos de status indevidamente versionados atualizar cores nas atividades add Quebra Cabeças add Quebra Cabeças add iniciativas add Iniciativas alteração de fotos pesadas fix menu mobile fix menu mobile fix menu mobile add Aspirador update icons update identidade visual documentação update jupyter add kernel python local add kernel python local add kernel python local feat: add health check feat: add primeiros passos add letramento mover letramento de lugar update path games update path games fix: ajuste clique rapido no botão executar remover dead code fix: refactor: extract shared utilities for storage, phase unlock and mobile detection stabilize context references and fix stale closure extrair GameProgressContext do GameStateContext (SRP) refactor(game): extrair usePhaser e useGameModals de GameBase + corrigir bugs descobertos refactor(game): remove todos os aliases PT/EN duplicados Remover aliases PT/EN da camada de modais refactor + tests security: add CodeSanitizer and integrate into GameInterpreter - CodeSanitizer.js: 4 built-in rules (max_length, infinite_while, infinite_for, excessive_nesting) with pluggable extra rules - GameInterpreter.executeCode: calls sanitizeCode() before js-interpreter, differentiates CodeSanitizationError (warn) from other errors (error) - 21 unit tests for CodeSanitizer (100% coverage) - 4 integration tests in GameInterpreter for sanitization paths add CodeSanitizer fix: fase 10 aspirador fix: bug semaforo teste feat: add version Ajusta a landing page para ficar mais próxima ao protótipo ajusta raio da borda do botão de Acesse nosso Laboratório pequenos ajustes de layout na página de iniciativas atualiza tabela de jogos educativos com os jogos disponíveis atualmente ajustados pequenos detalhes e informações do jogos na seção de guias pedagógicos troca nome playground para laboratório e adiciona imagens do lab adiciona documentação de conceitos básicos de programação ajustado pequenos erros de digitação adiciona tooltip com conceitos escondidos em hover na tag +N de conceitos update docs dev desativar tour setup matriz MoleMash setup matriz MoleMash fix: link update version update docs update docs mudou o layout de quem somos mudei as imgs dos icons e baixei o botao centraliza titulo com imagem e ajusta sessão com gradiente vermelho-rosa adiciona responsividade para a pagina quem somos ajusta botão de conheça nossa história ajustes ajustes na home + add. teclado update version security security feat: add tapume para telas pequenas v1.1.0 feat: decoda offline feat: doc offline offline fix: ajustes para release fix: navbar; config ordenação; versão fix: rotas docs e jupyter para pwa delete private files Co-authored-by: Indra Araujo <indra.araujo.santos@gmail.com> Co-authored-by: solange dos santos <sollangelive71@gmail.com>
8.8 KiB
sidebar_position, title
| sidebar_position | title |
|---|---|
| 4 | Operadores |
Operadores - Como Manipular e Comparar Dados
Operadores são símbolos que usamos para fazer contas, comparar valores e combinar condições. Eles permitem transformar dados em resultados úteis dentro de um algoritmo.
O que são Operadores?
Operadores são elementos da programação que executam uma ação sobre variáveis e valores.
Com eles, podemos:
- Somar, subtrair, multiplicar e dividir
- Comparar se um valor é maior, menor ou igual a outro
- Juntar condições lógicas para tomar decisões
Analogia: Receita com Regras
Em uma receita:
+junta ingredientes-remove algo==verifica se a quantidade está corretaEdecide: "tem farinha e ovos?"
Na programação, os operadores cumprem esse papel de ação e verificação.
Tipos Principais de Operadores
1. Operadores Aritméticos
Usados para cálculos numéricos.
| Operador | Ação |
|---|---|
+ |
Adição |
- |
Subtração |
* |
Multiplicação |
/ |
Divisão |
% |
Resto da divisão (módulo) |
Exemplos:
banana = 5
pera = 2
cesta_frutas = banana + pera
print(cesta_frutas) // 7
exercicio = 2
semanas = 4
exercicio_mes = exercicio * semanas
print(exercicio_mes) // 8
pessoas = 5
cadeiras = 2
pessoas_sem_cadeiras = pessoas % cadeiras
print(pessoas_sem_cadeiras) // 1
2. Operadores Relacionais
Comparam dois valores e retornam verdadeiro ou falso.
| Operador | Ação | Símbolo matemático |
|---|---|---|
== |
Igual a | = |
!= |
Diferente de | ≠ |
> |
Maior que | > |
< |
Menor que | < |
>= |
Maior ou igual | ≥ |
<= |
Menor ou igual | ≤ |
Exemplos:
a = 1
b = 2
print(a == b) // false
print(a < b) // true
c = 4
d = 4
print(c >= d) // true
print(c != d) // false
3. Operadores Lógicos
Combinam condições booleanas.
| Operador | Ação |
|---|---|
&& |
E (and) |
|| |
Ou (or) |
! |
Não (not) |
Exemplos:
temCracha = true
temConvite = false
entradaLiberada = temCracha && temConvite
print(entradaLiberada) // false
choveu = false
temGuardaChuva = true
vaiPassear = !choveu || temGuardaChuva
print(vaiPassear) // true
Operadores no Cotidiano
Escola
media = (nota1 + nota2) / 2aprovado = media >= 7frequenciaOk = faltas <= 10
Compras
total = preco * quantidadedesconto = total > 100podeParcelar = cartaoValido && compraMinima
Jogos
pontuacao = pontuacao + 10venceu = pontos >= metapodePassarFase = chaveEncontrada && inimigoDerrotado
Na Programação Visual
Blocos de Operadores
Em ambientes visuais (como Decoda), operadores aparecem como blocos encaixáveis:
1. [Definir pontos para 0]
2. [Quando coletar moeda -> pontos = pontos + 1]
3. [SE pontos >= 10]
- [Mostrar "Fase concluída"]
Exemplo: Controle de Entrada
1. [INÍCIO]
2. [idade = 12]
3. [acompanhado = verdadeiro]
4. [SE idade >= 12 OU acompanhado]
- [Permitir entrada]
5. [SENÃO]
- [Negar entrada]
Boas Práticas com Operadores
1. Use parênteses em expressões longas
- Evita dúvida sobre a ordem dos cálculos
- Exemplo:
(nota1 + nota2) / 2
2. Compare com clareza
- Prefira condições diretas e simples
- Exemplo:
media >= 7em vez de negações confusas
3. Escolha o operador correto
==compara valores=atribui valor à variável
4. Teste casos-limite
- Exemplo: valores exatamente na fronteira (
>= 7,<= 10)
Erros Comuns com Operadores
1. Confundir = com ==
- Problema: usar atribuição quando queria comparação
- Solução: revisar condições com cuidado
2. Divisão inteira inesperada
- Problema: perder casas decimais em algumas linguagens
- Solução: usar tipo decimal quando necessário
3. Misturar tipos sem conversão
- Problema: somar texto e número sem tratar
- Solução: converter dados antes da operação
4. Lógica mal agrupada
- Problema: condições com
&&e||sem parênteses - Solução: agrupar expressões para deixar intenção clara
Atividades Desplugadas
1. Corrida das Operações
Material: Cartões com números e operadores
Como fazer:
- Formar grupos pequenos
- Cada grupo recebe uma expressão
- Resolver e explicar a ordem das operações
2. Verdadeiro ou Falso
Material: Cartões "verdadeiro" e "falso"
Como fazer:
- Educador lê condições relacionais e lógicas
- Estudantes levantam cartão correspondente
- Turma discute o motivo do resultado
3. Desafio do Jogo
Material: Quadro e marcador
Como fazer:
- Criar regras de fase com operadores
- Exemplo:
pontos >= 50 && vidas > 0 - Testar diferentes valores e observar o resultado
Dicas para Educadores
Como Ensinar
- Comece com matemática do dia a dia: preço, média, troco
- Use dramatização: estudantes "encenam" operadores lógicos
- Mostre erros propositais:
=vs== - Promova debate: por que a condição deu falso?
Observar nos Estudantes
- Escolhem operadores adequados para cada situação
- Interpretam resultados booleanos corretamente
- Aplicam operadores em blocos e pseudocódigo
- Corrigem erros de expressão com autonomia
Sinais de Sucesso
- Resolvem expressões aritméticas com consistência
- Criam condições relacionais corretas
- Montam regras lógicas sem ambiguidade
- Explicam o "por que" do resultado obtido
Pensamento Computacional
Decomposição
- Separar problema em cálculos e condições menores
- Resolver etapa por etapa com operadores
Reconhecimento de Padrões
- Identificar quando o problema pede soma, comparação ou combinação lógica
- Reutilizar estruturas de expressão em novos contextos
Abstração
- Representar regras do mundo real em expressões simples
- Ignorar detalhes que não afetam a decisão final
Algoritmos
- Integrar operadores no fluxo de decisão do programa
- Criar regras claras para automatizar respostas
Objetivos de Aprendizagem
Ao final desta seção, estudantes devem conseguir:
- Diferenciar operadores aritméticos, relacionais e lógicos
- Resolver expressões com variáveis
- Criar condições para tomada de decisão
- Identificar e corrigir erros comuns em operadores
- Aplicar operadores em programação visual
Atividades de Fixação
1. Complete o Resultado
Descubra o valor final:
5 + 2 * 3(5 + 2) * 39 % 47 >= 7true && false
2. Encontre o Erro
Corrija os problemas:
media = 8
if (media = 7) {
print("Aprovado")
}
idade = "12"
if (idade > 10) {
print("Pode entrar")
}
3. Desafio da Regra Inteligente
- Criar uma regra para aprovar estudante com base em nota e frequência
- Criar uma regra para liberar fase em um jogo
- Testar com pelo menos 4 combinações de valores
Referências e Recursos
Sites Educativos
- Khan Academy - Arithmetic and Logic - Fundamentos com exercícios
- Code.org Concepts - Expressões e condições
- W3Schools Operators - Guia rápido
Vídeos Explicativos
- Programming Operators Explained - Visão geral
- Boolean Logic for Beginners - Lógica booleana
- Arithmetic vs Relational Operators - Diferenças e uso
Jogos e Simuladores
- Blockly Games - Lógica com blocos
- Scratch - Condições e operadores na prática
- CodeCombat - Regras e expressões em desafios
Literatura
- Downey, A. (2015). Think Python. O'Reilly
- Matthes, E. (2023). Python Crash Course. No Starch Press
- Al Sweigart (2019). Automate the Boring Stuff with Python. No Starch Press
Próximo: Siga para Programação com Blocos para aplicar operadores em projetos visuais completos!