---
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!