---
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.
** Exemplo**:
```
idade = 12
saldoPontos = -3
```
### **2. Real (`float`)**
Números com parte decimal.
** Exemplo**:
```
altura = 1.58
temperatura = 36.7
```
### **3. Caractere (`char`)**
Um único símbolo: letra, número ou sinal.
** Exemplo**:
```
inicial = 'A'
simbolo = '#'
```
### **4. Texto (`string`)**
Conjunto de caracteres (palavras e frases).
** Exemplo**:
```
nome = "Joana"
mensagem = "Parabéns pela conquista!"
```
### **5. Booleano (`bool`)**
Apenas dois valores: verdadeiro ou falso.
** Exemplo**:
```
usuarioLogado = verdadeiro
atividadeConcluida = falso
```
### **6. Vetor/Lista**
Uma variável que guarda **vários valores** do mesmo tipo.
** 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. ** Use exemplos reais**: idade, nome, nota, presença
2. ** Trabalhe com cartões físicos**: classificar e recategorizar
3. ** Simule erros comuns**: mostrar por que quebram
4. ** Incentive justificativa**: "Por que isso é string?"
### **Observar nos Estudantes**
- **** Identificam corretamente cada tipo de dado
- **** Escolhem tipos adequados para variáveis
- **** Entendem diferença entre dado único e lista
- **** 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:
- **** Diferenciar os tipos básicos de dados
- **** Escolher tipos adequados para cada variável
- **** Reconhecer quando usar lista/vetor
- **** Evitar e corrigir erros comuns de tipagem
- **** 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
---
** Próximo**: Avance para [**Operadores**](./operadores) para aprender como realizar operações com cada tipo de dado!