Files
decoda/docs/edu/fundamentos-programacao/conceitos-basicos/operadores.md
ruimoraes 3da7d323e8 desenvolvimento pre-lancamento
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>
2026-05-26 18:01:50 -03:00

363 lines
8.8 KiB
Markdown

---
sidebar_position: 4
title: "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á correta
- `E` decide: "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**:
```c
banana = 5
pera = 2
cesta_frutas = banana + pera
print(cesta_frutas) // 7
```
```c
exercicio = 2
semanas = 4
exercicio_mes = exercicio * semanas
print(exercicio_mes) // 8
```
```c
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**:
```c
a = 1
b = 2
print(a == b) // false
print(a < b) // true
```
```c
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) |
| <code>&#124;&#124;</code> | Ou (or) |
| `!` | Não (not) |
**Exemplos**:
```c
temCracha = true
temConvite = false
entradaLiberada = temCracha && temConvite
print(entradaLiberada) // false
```
```c
choveu = false
temGuardaChuva = true
vaiPassear = !choveu || temGuardaChuva
print(vaiPassear) // true
```
## **Operadores no Cotidiano**
### **Escola**
- `media = (nota1 + nota2) / 2`
- `aprovado = media >= 7`
- `frequenciaOk = faltas <= 10`
### **Compras**
- `total = preco * quantidade`
- `desconto = total > 100`
- `podeParcelar = cartaoValido && compraMinima`
### **Jogos**
- `pontuacao = pontuacao + 10`
- `venceu = pontos >= meta`
- `podePassarFase = 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 >= 7` em 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**:
1. Formar grupos pequenos
2. Cada grupo recebe uma expressão
3. Resolver e explicar a ordem das operações
### **2. Verdadeiro ou Falso**
**Material**: Cartões "verdadeiro" e "falso"
**Como fazer**:
1. Educador lê condições relacionais e lógicas
2. Estudantes levantam cartão correspondente
3. Turma discute o motivo do resultado
### **3. Desafio do Jogo**
**Material**: Quadro e marcador
**Como fazer**:
1. Criar regras de fase com operadores
2. Exemplo: `pontos >= 50 && vidas > 0`
3. Testar diferentes valores e observar o resultado
## **Dicas para Educadores**
### **Como Ensinar**
1. **<i class="fas fa-home"></i> Comece com matemática do dia a dia**: preço, média, troco
2. **<i class="fas fa-hands"></i> Use dramatização**: estudantes "encenam" operadores lógicos
3. **<i class="fas fa-sync"></i> Mostre erros propositais**: `=` vs `==`
4. **<i class="fas fa-users"></i> Promova debate**: por que a condição deu falso?
### **Observar nos Estudantes**
- **<i class="fas fa-check"></i>** Escolhem operadores adequados para cada situação
- **<i class="fas fa-check"></i>** Interpretam resultados booleanos corretamente
- **<i class="fas fa-check"></i>** Aplicam operadores em blocos e pseudocódigo
- **<i class="fas fa-check"></i>** 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:
- **<i class="fas fa-check"></i>** Diferenciar operadores aritméticos, relacionais e lógicos
- **<i class="fas fa-check"></i>** Resolver expressões com variáveis
- **<i class="fas fa-check"></i>** Criar condições para tomada de decisão
- **<i class="fas fa-check"></i>** Identificar e corrigir erros comuns em operadores
- **<i class="fas fa-check"></i>** Aplicar operadores em programação visual
## **Atividades de Fixação**
### **1. Complete o Resultado**
Descubra o valor final:
- `5 + 2 * 3`
- `(5 + 2) * 3`
- `9 % 4`
- `7 >= 7`
- `true && false`
### **2. Encontre o Erro**
Corrija os problemas:
```c
media = 8
if (media = 7) {
print("Aprovado")
}
```
```c
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](https://www.khanacademy.org/computing/computer-programming) - Fundamentos com exercícios
- [Code.org Concepts](https://studio.code.org/docs/concepts/) - Expressões e condições
- [W3Schools Operators](https://www.w3schools.com/programming/prog_operators.php) - Guia rápido
### **Vídeos Explicativos**
- [Programming Operators Explained](https://www.youtube.com/watch?v=mStL5NiBJiI) - Visão geral
- [Boolean Logic for Beginners](https://www.youtube.com/watch?v=gI-qXk7XojA) - Lógica booleana
- [Arithmetic vs Relational Operators](https://www.youtube.com/watch?v=2C6Q0M4kM4M) - Diferenças e uso
### **Jogos e Simuladores**
- [Blockly Games](https://blockly.games/) - Lógica com blocos
- [Scratch](https://scratch.mit.edu/) - Condições e operadores na prática
- [CodeCombat](https://codecombat.com/) - 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
---
**<i class="fas fa-arrow-right"></i> Próximo**: Siga para [**Programação com Blocos**](../programacao-com-blocos) para aplicar operadores em projetos visuais completos!