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>
This commit is contained in:
346
docs/edu/fundamentos-programacao/conceitos-basicos/dados.md
Normal file
346
docs/edu/fundamentos-programacao/conceitos-basicos/dados.md
Normal file
@@ -0,0 +1,346 @@
|
||||
---
|
||||
sidebar_position: 3
|
||||
title: "Tipos de Dados"
|
||||
---
|
||||
|
||||
# Tipos de Dados - O Formato da Informação
|
||||
|
||||
**Tipos de dados** definem **que tipo de valor** uma variável pode guardar. Assim, o programa sabe se aquele valor representa número, texto, verdadeiro/falso ou uma coleção de itens.
|
||||
|
||||
## **O que são Tipos de Dados?**
|
||||
|
||||
Um tipo de dado é uma **classificação da informação** armazenada em uma variável. Essa classificação ajuda o programa a decidir quais operações são permitidas.
|
||||
|
||||
### **Analogia: Gavetas Organizadas**
|
||||
|
||||
Imagine uma cômoda:
|
||||
|
||||
- Gaveta de **roupas** guarda roupas
|
||||
- Gaveta de **documentos** guarda papéis
|
||||
- Gaveta de **brinquedos** guarda brinquedos
|
||||
|
||||
Na programação, funciona igual: cada variável tem um "tipo de gaveta" para guardar dados corretos.
|
||||
|
||||
## **Por que Tipos de Dados são Importantes?**
|
||||
|
||||
### **1. Evitam Erros**
|
||||
|
||||
- Impedem usar valores de forma incorreta
|
||||
- Exemplo: somar texto com número sem conversão pode causar erro
|
||||
|
||||
### **2. Melhoram Desempenho**
|
||||
|
||||
- Cada tipo ocupa memória de forma diferente
|
||||
- O programa pode otimizar operações
|
||||
|
||||
### **3. Facilitam a Leitura**
|
||||
|
||||
- Fica mais claro entender que tipo de valor está sendo tratado
|
||||
- Ajuda na manutenção do código
|
||||
|
||||
### **4. Ajudam na Validação**
|
||||
|
||||
- Permitem checar se uma entrada está correta
|
||||
- Exemplo: idade deve ser número inteiro
|
||||
|
||||
## **Tipos Básicos de Dados**
|
||||
|
||||
### **1. Inteiro (`int`)**
|
||||
|
||||
Números sem parte decimal, positivos ou negativos.
|
||||
|
||||
**<i class="fas fa-home"></i> Exemplo**:
|
||||
|
||||
```
|
||||
idade = 12
|
||||
saldoPontos = -3
|
||||
```
|
||||
|
||||
### **2. Real (`float`)**
|
||||
|
||||
Números com parte decimal.
|
||||
|
||||
**<i class="fas fa-calculator"></i> Exemplo**:
|
||||
|
||||
```
|
||||
altura = 1.58
|
||||
temperatura = 36.7
|
||||
```
|
||||
|
||||
### **3. Caractere (`char`)**
|
||||
|
||||
Um único símbolo: letra, número ou sinal.
|
||||
|
||||
**<i class="fas fa-keyboard"></i> Exemplo**:
|
||||
|
||||
```
|
||||
inicial = 'A'
|
||||
simbolo = '#'
|
||||
```
|
||||
|
||||
### **4. Texto (`string`)**
|
||||
|
||||
Conjunto de caracteres (palavras e frases).
|
||||
|
||||
**<i class="fas fa-comment"></i> Exemplo**:
|
||||
|
||||
```
|
||||
nome = "Joana"
|
||||
mensagem = "Parabéns pela conquista!"
|
||||
```
|
||||
|
||||
### **5. Booleano (`bool`)**
|
||||
|
||||
Apenas dois valores: verdadeiro ou falso.
|
||||
|
||||
**<i class="fas fa-door-open"></i> Exemplo**:
|
||||
|
||||
```
|
||||
usuarioLogado = verdadeiro
|
||||
atividadeConcluida = falso
|
||||
```
|
||||
|
||||
### **6. Vetor/Lista**
|
||||
|
||||
Uma variável que guarda **vários valores** do mesmo tipo.
|
||||
|
||||
**<i class="fas fa-shopping-cart"></i> Exemplo**:
|
||||
|
||||
```
|
||||
notas = [8, 7, 10, 9]
|
||||
nomes = ["Ana", "Bia", "Caio"]
|
||||
```
|
||||
|
||||
## **Tipos de Dados no Cotidiano**
|
||||
|
||||
### **Escola**
|
||||
|
||||
- **`idade`** -> inteiro
|
||||
- **`mediaFinal`** -> real
|
||||
- **`nomeAluno`** -> texto
|
||||
- **`aprovado`** -> booleano
|
||||
|
||||
### **Celular**
|
||||
|
||||
- **`nivelBateria`** -> inteiro
|
||||
- **`versaoSistema`** -> texto
|
||||
- **`wifiAtivo`** -> booleano
|
||||
|
||||
### **Jogos**
|
||||
|
||||
- **`vida`** -> inteiro
|
||||
- **`precisaoTiro`** -> real
|
||||
- **`inventario`** -> vetor/lista
|
||||
|
||||
## **Na Programação Visual**
|
||||
|
||||
### **Escolhendo o Tipo Certo**
|
||||
|
||||
Em ambientes de blocos, nem sempre o tipo aparece com nome técnico, mas ele está presente no comportamento dos dados.
|
||||
|
||||
```
|
||||
1. [Criar variável "nomeJogador"] -> texto
|
||||
2. [Criar variável "pontos"] -> número
|
||||
3. [Criar variável "venceu"] -> verdadeiro/falso
|
||||
4. [Criar lista "itensColetados"] -> coleção de valores
|
||||
```
|
||||
|
||||
### **Exemplo: Perfil de Jogador**
|
||||
|
||||
```
|
||||
1. [INÍCIO]
|
||||
2. [nome = "Rafa"] // string
|
||||
3. [idade = 11] // int
|
||||
4. [altura = 1.42] // float
|
||||
5. [premium = verdadeiro] // bool
|
||||
6. [mochila = ["mapa", "chave"]] // lista
|
||||
7. [Exibir dados na tela]
|
||||
```
|
||||
|
||||
## **Boas Práticas com Tipos**
|
||||
|
||||
### **1. Use o tipo mais adequado**
|
||||
|
||||
- Não guarde número em texto sem necessidade
|
||||
|
||||
### **2. Converta quando necessário**
|
||||
|
||||
- Exemplo: transformar `"12"` em `12` antes de calcular
|
||||
|
||||
### **3. Nomeie variáveis com contexto**
|
||||
|
||||
- `temperaturaMedia` ajuda a entender que é número real
|
||||
|
||||
### **4. Valide entradas do usuário**
|
||||
|
||||
- Verifique se o dado recebido está no tipo esperado
|
||||
|
||||
## **Erros Comuns com Tipos de Dados**
|
||||
|
||||
### **1. Misturar texto e número sem conversão**
|
||||
|
||||
- **Problema**: `"10" + 5` pode gerar resultado inesperado
|
||||
- **Solução**: Converter antes da operação
|
||||
|
||||
### **2. Usar decimal quando precisa de inteiro**
|
||||
|
||||
- **Problema**: contador de pessoas com `float`
|
||||
- **Solução**: usar `int` para contagens
|
||||
|
||||
### **3. Usar valores inválidos em booleano**
|
||||
|
||||
- **Problema**: guardar "talvez" em variável booleana
|
||||
- **Solução**: usar apenas verdadeiro/falso
|
||||
|
||||
### **4. Misturar tipos na mesma lista sem planejamento**
|
||||
|
||||
- **Problema**: lista difícil de processar e validar
|
||||
- **Solução**: manter padrão de tipo por coleção
|
||||
|
||||
## **Atividades Desplugadas**
|
||||
|
||||
### **1. Classifique os Dados**
|
||||
|
||||
**Material**: Cartões com valores (`"Maria"`, `15`, `3.14`, `verdadeiro`)
|
||||
|
||||
**Como fazer**:
|
||||
|
||||
1. Separar cartões por tipo
|
||||
2. Discutir por que cada valor pertence àquela categoria
|
||||
3. Criar variáveis para cada cartão
|
||||
|
||||
### **2. Carrinho Inteligente**
|
||||
|
||||
**Material**: Lista de compras fictícia
|
||||
|
||||
**Como fazer**:
|
||||
|
||||
1. Definir `produto` (string), `quantidade` (int), `preco` (float)
|
||||
2. Calcular total do carrinho
|
||||
3. Criar `pagamentoAprovado` (bool)
|
||||
|
||||
### **3. Coleção da Turma**
|
||||
|
||||
**Material**: Quadro e nomes dos alunos
|
||||
|
||||
**Como fazer**:
|
||||
|
||||
1. Criar lista de nomes (string)
|
||||
2. Criar lista de notas (int/float)
|
||||
3. Comparar e discutir diferenças entre dados simples e coleção
|
||||
|
||||
## **Dicas para Educadores**
|
||||
|
||||
### **Como Ensinar**
|
||||
|
||||
1. **<i class="fas fa-home"></i> Use exemplos reais**: idade, nome, nota, presença
|
||||
2. **<i class="fas fa-hands"></i> Trabalhe com cartões físicos**: classificar e recategorizar
|
||||
3. **<i class="fas fa-sync"></i> Simule erros comuns**: mostrar por que quebram
|
||||
4. **<i class="fas fa-users"></i> Incentive justificativa**: "Por que isso é string?"
|
||||
|
||||
### **Observar nos Estudantes**
|
||||
|
||||
- **<i class="fas fa-check"></i>** Identificam corretamente cada tipo de dado
|
||||
- **<i class="fas fa-check"></i>** Escolhem tipos adequados para variáveis
|
||||
- **<i class="fas fa-check"></i>** Entendem diferença entre dado único e lista
|
||||
- **<i class="fas fa-check"></i>** Corrigem erros de tipagem
|
||||
|
||||
### **Sinais de Sucesso**
|
||||
|
||||
- Explicam tipos com exemplos do cotidiano
|
||||
- Evitam misturas incorretas de dados
|
||||
- Aplicam conversão de tipos quando necessário
|
||||
- Modelam problemas simples com tipos coerentes
|
||||
|
||||
## **Pensamento Computacional**
|
||||
|
||||
### **Decomposição**
|
||||
|
||||
- Separar um problema em dados menores
|
||||
- Definir tipo adequado para cada parte
|
||||
|
||||
### **Reconhecimento de Padrões**
|
||||
|
||||
- Perceber quais informações sempre aparecem como texto, número ou booleano
|
||||
- Reaplicar essa lógica em novos problemas
|
||||
|
||||
### **Abstração**
|
||||
|
||||
- Representar o mundo real em formatos simples e úteis
|
||||
- Ignorar detalhes que não impactam a solução
|
||||
|
||||
### **Algoritmos**
|
||||
|
||||
- Usar tipos corretos para garantir cálculos e decisões confiáveis
|
||||
- Integrar variáveis e listas ao fluxo do programa
|
||||
|
||||
## **Objetivos de Aprendizagem**
|
||||
|
||||
Ao final desta seção, estudantes devem conseguir:
|
||||
|
||||
- **<i class="fas fa-check"></i>** Diferenciar os tipos básicos de dados
|
||||
- **<i class="fas fa-check"></i>** Escolher tipos adequados para cada variável
|
||||
- **<i class="fas fa-check"></i>** Reconhecer quando usar lista/vetor
|
||||
- **<i class="fas fa-check"></i>** Evitar e corrigir erros comuns de tipagem
|
||||
- **<i class="fas fa-check"></i>** Aplicar tipos de dados em blocos visuais e pseudocódigo
|
||||
|
||||
## **Atividades de Fixação**
|
||||
|
||||
### **1. Qual é o Tipo?**
|
||||
|
||||
Diga o tipo de cada valor:
|
||||
|
||||
- `"Brasil"`
|
||||
- `42`
|
||||
- `9.5`
|
||||
- `falso`
|
||||
- `["lápis", "caderno", "borracha"]`
|
||||
|
||||
### **2. Corrija o Programa**
|
||||
|
||||
Identifique e ajuste:
|
||||
|
||||
```
|
||||
idade = "13"
|
||||
proximaIdade = idade + 1
|
||||
```
|
||||
|
||||
```
|
||||
aprovado = "sim"
|
||||
```
|
||||
|
||||
### **3. Desafio Cadastro da Turma**
|
||||
|
||||
- Criar variáveis para nome, idade, média e aprovado
|
||||
- Guardar nomes em uma lista
|
||||
- Exibir um resumo final com os dados
|
||||
|
||||
## **Referências e Recursos**
|
||||
|
||||
### **Sites Educativos**
|
||||
|
||||
- [Khan Academy - Intro to Variables](https://www.khanacademy.org/computing/computer-programming/programming#variables) - Base para tipos e variáveis
|
||||
- [Scratch Wiki - Data](https://en.scratch-wiki.info/wiki/Data_Blocks) - Dados em programação visual
|
||||
- [MDN - Data Types and Structures](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures) - Referência prática
|
||||
|
||||
### **Vídeos Explicativos**
|
||||
|
||||
- [Data Types in Programming](https://www.youtube.com/watch?v=cQT33yu9pY8) - Introdução geral
|
||||
- [Variables and Data Types](https://www.youtube.com/watch?v=VMBx8jY1f4A) - Conceitos fundamentais
|
||||
- [Scratch Variables and Lists](https://www.youtube.com/watch?v=9Q1A7qYgA5c) - Aplicação com blocos
|
||||
|
||||
### **Jogos e Simuladores**
|
||||
|
||||
- [Scratch](https://scratch.mit.edu/) - Projetos com variáveis e listas
|
||||
- [Blockly Games](https://blockly.games/) - Lógica com tipos implícitos
|
||||
- [Code.org](https://studio.code.org/) - Exercícios guiados
|
||||
|
||||
### **Literatura**
|
||||
|
||||
- Downey, A. (2015). _Think Python_. O'Reilly
|
||||
- Matthes, E. (2023). _Python Crash Course_. No Starch Press
|
||||
- Wengrow, J. (2020). _A Common-Sense Guide to Data Structures and Algorithms_. Pragmatic Bookshelf
|
||||
|
||||
---
|
||||
|
||||
**<i class="fas fa-arrow-right"></i> Próximo**: Avance para [**Operadores**](./operadores) para aprender como realizar operações com cada tipo de dado!
|
||||
Reference in New Issue
Block a user