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