---
sidebar_position: 1
title: "Algoritmos"
---
# Algoritmos - O Passo a Passo de uma Solução
**Algoritmos** são como **receitas detalhadas** que ensinam como resolver um problema passo a passo. É a arte de quebrar um problema grande em pequenos passos organizados!
## **O que são Algoritmos?**
Um algoritmo é uma **sequência finita de instruções** bem definidas que, quando seguidas, resolvem um problema ou executam uma tarefa específica.
### **Analogia: Receita de Bolo**
```
ALGORITMO: Fazer Bolo de Chocolate
1. Preaqueça o forno a 180°C
2. Em uma tigela, misture farinha, açúcar e cacau
3. Em outra tigela, bata ovos com leite
4. Combine as duas misturas
5. Despeje na forma untada
6. Asse por 30 minutos
7. Deixe esfriar antes de desenformar
```
Cada passo é **claro**, **específico** e deve ser seguido **na ordem certa**!
## **Características de um Bom Algoritmo**
### **1. Clareza**
- Cada instrução deve ser **compreensível**
- Sem ambiguidade: "vire à direita" em vez de "vire"
### **2. Sequência Lógica**
- Passos na **ordem correta**
- Um passo depende do anterior
### **3. Finitude**
- Deve **terminar** em algum momento
- Não pode ser infinito
### **4. Eficácia**
- Deve **resolver o problema** proposto
- Resultado esperado sempre que executado
### **5. Eficiência**
- Usar o **menor número de passos** possível
- Otimizar tempo e recursos
## **Atividades Desplugadas**
### **1. Encontrar o Tesouro**
**Material**: Mapa da sala, tesouro escondido
**Como fazer**:
1. Estudante cria algoritmo: "5 passos para frente, vire à direita, 3 passos..."
2. Outro estudante segue **exatamente** as instruções
3. Se não encontrar o tesouro, o algoritmo precisa ser melhorado!
### **2. Sanduíche Robótico**
**Material**: Ingredientes para sanduíche
**Como fazer**:
1. Estudante escreve algoritmo para fazer sanduíche
2. Educador segue **literalmente** cada instrução
3. "Pegue o pão" → pega pão inteiro (não fatia!)
4. Algoritmo deve ser cada vez mais específico
### **3. Organizar a Turma**
**Material**: Estudantes da sala
**Como fazer**:
1. **Problema**: Organizar turma por altura
2. Cada equipe cria um algoritmo diferente
3. Testam qual é mais rápido e eficiente
4. Descobrem diferentes "algoritmos de ordenação"
## **Tipos Comuns de Algoritmos**
### **1. Busca**
Encontrar algo específico numa lista
** Exemplo**: Procurar contato no celular
1. Abra lista de contatos
2. SE a pessoa começar com A-M, vá para primeira metade
3. SENÃO, vá para segunda metade
4. REPITA até encontrar
### **2. Ordenação**
Colocar itens em ordem
** Exemplo**: Organizar livros por altura
1. Compare primeiro livro com segundo
2. SE primeiro for maior, troque posições
3. Passe para próximo par
4. REPITA até todos estarem ordenados
### **3. Matemáticos**
Realizar cálculos complexos
** Exemplo**: Calcular média da turma
1. Some todas as notas
2. Conte quantos estudantes há
3. Divida soma pelo número de estudantes
4. O resultado é a média
### **4. Navegação**
Encontrar caminhos
** Exemplo**: Ir de casa à escola
1. Saia de casa e vire à direita
2. Ande até o semáforo
3. SE semáforo verde, atravesse
4. Continue até encontrar a escola
## **Algoritmos no Cotidiano**
### **Manhã**
- ** Acordar**: Desligar alarme → levantar → ir ao banheiro
- ** Café**: Ferver água → adicionar pó → mexer → servir
- ** Ir ao trabalho**: Sair de casa → pegar transporte → chegar ao destino
### **Tecnologia**
- ** Conectar WiFi**: Procurar redes → selecionar → inserir senha → conectar
- ** Comprar online**: Escolher produto → adicionar carrinho → pagar → aguardar entrega
- ** GPS**: Calcular rota → considerar trânsito → dar instruções → recalcular se necessário
### **Jogos**
- ** Xadrez**: Avaliar posições → considerar movimentos → escolher melhor jogada
- ** Jogo da velha**: Verificar possibilidade de vitória → bloquear oponente → fazer jogada estratégica
## **Na Programação Visual**
### **Construindo Algoritmos com Blocos**
No Decoda, algoritmos são construídos conectando blocos em sequência:
```
ALGORITMO: Desenhar Quadrado
1. [INÍCIO]
2. [REPETIR 4 vezes]
- [Andar 100 passos]
- [Virar 90 graus direita]
3. [FIM]
```
### **Exemplo: Algoritmo do Semáforo**
```
ALGORITMO: Controlar Semáforo
1. [INÍCIO]
2. [Acender luz verde]
3. [ESPERAR 30 segundos]
4. [Acender luz amarela]
5. [ESPERAR 5 segundos]
6. [Acender luz vermelha]
7. [ESPERAR 25 segundos]
8. [VOLTAR ao passo 2]
```
## **Ferramentas para Criar Algoritmos**
### **1. Fluxograma**
Diagrama visual com símbolos:
- ** Círculo**: Início/Fim
- ** Retângulo**: Ação
- ** Losango**: Decisão
- ** Setas**: Fluxo
### **2. Pseudocódigo**
Linguagem simples que mistura português com lógica:
```
INÍCIO
ESCREVA "Qual seu nome?"
LEIA nome
ESCREVA "Olá, " + nome
FIM
```
### **3. Programação Visual**
Blocos que representam algoritmos graficamente (como no Decoda)
## **Erros Comuns em Algoritmos**
### **1. Passos Fora de Ordem**
- **Problema**: "Bata os ovos" antes de "quebre os ovos"
- **Solução**: Revisar sequência lógica
### **2. Instruções Ambíguas**
- **Problema**: "Adicione um pouco de sal"
- **Solução**: Ser específico: "Adicione 1 colher de chá de sal"
### **3. Loop Infinito**
- **Problema**: Condição que nunca muda
- **Solução**: Garantir que a condição pode se tornar falsa
### **4. Passo Faltando**
- **Problema**: Esquecer um passo importante
- **Solução**: Testar o algoritmo passo a passo
## **Dicas para Educadores**
### **Como Ensinar**
1. ** Comece com exemplos familiares**: Receitas, rotinas diárias
2. ** Use atividades físicas**: Deixe estudantes "serem" o computador
3. ** Celebre os erros**: Cada erro é uma oportunidade de aprendizado
4. ** Trabalhe em grupos**: Diferentes perspectivas melhoram algoritmos
### **Observar nos Estudantes**
- **** Conseguem quebrar problema em passos pequenos
- **** Instruções são claras e específicas
- **** Testam e melhoram seus algoritmos
- **** Identificam algoritmos em situações cotidianas
### **Sinais de Sucesso**
- Estudantes explicam algoritmos com próprias palavras
- Criam algoritmos originais para problemas novos
- Identificam e corrigem erros em algoritmos
- Otimizam algoritmos para serem mais eficientes
## **Pensamento Computacional**
### **Decomposição**
- Quebrar problemas grandes em partes menores
- Cada parte vira um passo do algoritmo
### **Reconhecimento de Padrões**
- Identificar passos que se repetem
- Usar loops para otimizar
### **Abstração**
- Focar no essencial, ignorar detalhes irrelevantes
- Criar algoritmos genéricos que funcionam em várias situações
### **Algoritmos**
- Criar sequências lógicas eficientes
- Otimizar soluções
## **Objetivos de Aprendizagem**
Ao final desta seção, estudantes devem conseguir:
- **** Identificar algoritmos em atividades cotidianas
- **** Criar algoritmos claros e sequenciais
- **** Testar e melhorar algoritmos através de tentativa e erro
- **** Aplicar diferentes tipos de algoritmos para diferentes problemas
- **** Traduzir algoritmos para blocos visuais
## **Atividades de Fixação**
### **1. Algoritmo Pessoal**
Escreva algoritmo para:
- Escovar os dentes
- Fazer seu lanche favorito
- Chegar da escola em casa
### **2. Encontre o Erro**
Encontre problemas nestes algoritmos:
- "Faça café: ferva água, adicione açúcar, adicione café"
- "Atravesse rua: olhe para direita, atravesse, olhe para esquerda"
### **3. Desafio de Otimização**
- Crie algoritmo para encontrar maior número numa lista
- Depois tente melhorar para ser mais rápido
## **Referências e Recursos**
### **Sites Educativos**
- [Khan Academy - Algorithms](https://www.khanacademy.org/computing/computer-science/algorithms) - Algoritmos explicados
- [CS Unplugged - Algorithms](https://csunplugged.org/en/topics/algorithms/) - Atividades desplugadas
- [Algorithm Visualizer](https://algorithm-visualizer.org/) - Visualização de algoritmos
### **Vídeos Explicativos**
- [What's an Algorithm?](https://www.youtube.com/watch?v=6hfOvs8pY1k) - Explicação básica
- [Sorting Algorithms Visualized](https://www.youtube.com/watch?v=kPRA0W1kECg) - Ordenação visual
- [How Search Works](https://www.youtube.com/watch?v=TwMmfi3tkp0) - Algoritmos de busca
### **Jogos e Simuladores**
- [Lightbot](http://lightbot.com/) - Programa robô com algoritmos
- [CodeCombat](https://codecombat.com/) - RPG que ensina algoritmos
- [Sorting Algorithm Animations](https://www.sorting-algorithms.com/) - Visualização interativa
### **Literatura**
- Cormen, T. (2009). _Introduction to Algorithms_. MIT Press
- Sedgewick, R. (2011). _Algorithms_. Addison-Wesley
- Knuth, D. (1997). _The Art of Computer Programming_. Addison-Wesley
### **Ferramentas de Diagramação**
- [Draw.io](https://app.diagrams.net/) - Criar fluxogramas online
- [Lucidchart](https://www.lucidchart.com/) - Diagramas colaborativos
- [Creately](https://creately.com/) - Fluxogramas educacionais
---
** Próximo**: Explore [**Variáveis**](./variaveis) para aprender como armazenar e manipular informações nos algoritmos!