Capítulo 02: Memória, Declaração de Variáveis e Tipos de Dados
🎯 Objetivo da Aula
Em qualquer sistema de gestão ou controle de frota, precisamos armazenar dados dinâmicos na memória: o nome do motorista, a quilometragem atual do caminhão, o peso da carga e o status da vistoria.
Nesta aula, você aprenderá a:
- Compreender o que é uma Variável e como a memória RAM armazena informações temporárias.
- Dominar a declaração e a inicialização dos Cinco Tipos de Dados do Portugol:
inteiro,real,cadeia,caracterelogico. - Aplicar as convenções de nomenclatura (CamelCase e snake_case) e regras de identificadores.
- Diferenciar com precisão strings (
cadeiacom aspas duplas) de caracteres isolados (caractercom aspas simples).
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.por): Baixar Capitulo_02.por (abra diretamente no Portugol Studio)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_02.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A FastLog acaba de adquirir novos caminhões pesados para a rota interestadual. A central de monitoramento precisa registrar no sistema:
- O modelo do caminhão (ex:
"Scania R450"). - A categoria da CNH exigida (o caracter isolado
'E'). - A quantidade de eixos do conjunto (ex:
9eixos). - A capacidade máxima de tração (ex:
74.50toneladas). - Se o rastreador satelital está ativo (ex:
verdadeiro).
Missão: Construir um programa que reserve os espaços tipados corretos na memória RAM para cadastrar essa ficha técnica sem conflito de tipos.
🧠 Fundamentos: A Memória RAM e os Tipos de Dados
1. O que é uma Variável?
Uma Variável é um espaço reservado e etiquetado na memória RAM do computador capaz de guardar um valor por vez:
graph LR
subgraph Memoria_RAM ["Memória RAM do Sistema"]
V1["modelo (cadeia)<br/>'Scania R450'"]
V2["categoriaCNH (caracter)<br/>'E'"]
V3["qtdEixos (inteiro)<br/>9"]
V4["pesoMaximo (real)<br/>74.50"]
V5["rastreadorAtivo (logico)<br/>verdadeiro"]
end
style V1 fill:#2980b9,stroke:#fff,color:#fff
style V2 fill:#e67e22,stroke:#fff,color:#fff
style V3 fill:#27ae60,stroke:#fff,color:#fff
style V4 fill:#8e44ad,stroke:#fff,color:#fff
style V5 fill:#217346,stroke:#fff,color:#fff2. Os Cinco Tipos de Dados do Portugol Studio
| Tipo no Portugol | O que armazena? | Exemplo | Sintaxe / Delimitador | Equivalente em C / Java |
|---|---|---|---|---|
inteiro | Números inteiros sem casas decimais. | 12, -5, 0 | Sem delimitador | int |
real | Números com casas decimais (ponto flutuante). | 3.14, 1500.50 | Ponto . decimal | float / double |
cadeia | Texto completo, palavras, frases e códigos. | "FastLog S.A." | Aspas Duplas "" | char[] / String |
caracter | Um único caractere alfanumérico ou símbolo. | 'E', 'M', '@' | Aspas Simples '' | char |
logico | Valores booleanos da Álgebra de Boole. | verdadeiro / falso | Palavra reservada | bool / boolean |
Diferença Crucial: cadeia vs caracter:
cadeia placa = "BRA2E19"➔ Aspas Duplas""(texto com vários caracteres).caracter turno = 'N'➔ Aspas Simples''(apenas uma única letra).
3. Regras de Nomenclatura de Identificadores
- Primeiro caractere: Deve ser obrigatoriamente uma letra (ex:
peso,distancia1). Nunca comece com números (1pesogera erro). - Sem espaços em branco: Use o padrão CamelCase (
pesoBrutoCarga) ou snake_case (peso_bruto_carga). - Sem caracteres especiais ou acentos: Não use
ç,~,^,@,$. - Case-Sensitive: O Portugol Studio diferencia maiúsculas de minúsculas (
valorFreteé diferente devalorfrete).
4. Declarando Várias Variáveis do Mesmo Tipo de Uma Vez
Quando duas ou mais variáveis são do mesmo tipo, você pode declará-las juntas em uma única linha, separando os nomes por vírgula — com ou sem valor inicial já atribuído:
Isso é apenas um atalho de escrita: equivale exatamente a declarar cada variável em sua própria linha. Você vai ver esse estilo compacto em vários gabaritos de código deste curso.
📖 Exemplo Guiado: Ficha Técnica de Frota
Código do Programa:
✅ Resultado Esperado no Console (Shift + F6):
🛠️ Prática Obrigatória 1: Ficha de Insumo de Estoque
Passo 1: O Desafio
Crie um programa ficha_estoque.por que declare e inicialize as seguintes variáveis:
codigoSKU(cadeia) ➔"PALETE-PBR-01"tipoMaterial(caracter) ➔'M'(Madeira)quantidadeSaldo(inteiro) ➔850custoUnitario(real) ➔42.80emQuarentena(logico) ➔falso
✅ Resultado Esperado (Prática 1):
🛠️ Prática Obrigatória 2: Dados do Motorista Titular
Crie o programa cadastro_motorista.por declarando:
nome(cadeia) ➔"Roberto Firmino"idade(inteiro) ➔38salarioBase(real) ➔4250.00turno(caracter) ➔'D'(Diurno)exameEmDia(logico) ➔verdadeiro
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_02_SeuNome_SeuSobrenome.por. - No Portugol Studio, execute o código com
Shift + F6e verifique a ausência de avisos de erro. - No Microsoft Teams, envie na tarefa “Portugol Cap 02 - Variáveis e Tipos”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aprender sobre Tipagem Estática e Alocação de Memória. Em linguagens como Java, C++ e C#, o compilador utiliza os tipos para reservar exatamente os bytes necessários na arquitetura do sistema (ex: 4 bytes para um inteiro, 8 bytes para um real).
🔥 Desafio de Fixação: Apólice de Frete Marítimo
Declare variáveis para representar um despacho portuário: portoOrigem, portoDestino, conteineres (inteiro), tarifaDolar (real), tipoFrete (caracter 'C' para Carga Geral) e alfandegaLiberada (logico).
🔑 Gabarito de Código Completo
Prática 1:
Prática 2:
Desafio:
📝 Atividade Extra: Questionário de Fixação (Caderno)
Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.
- O que é uma Variável, de acordo com a definição apresentada no capítulo?
- Quais são os cinco tipos de dados fundamentais do Portugol Studio apresentados na tabela de tipos?
- Qual delimitador é usado para declarar um valor do tipo
cadeia, e qual é usado para o tipocaracter? - Dê um exemplo de valor válido para os tipos
logicoereal, conforme a tabela do capítulo. - Cite duas regras de nomenclatura de identificadores apresentadas no capítulo.
- O Portugol Studio diferencia maiúsculas de minúsculas nos nomes de variáveis? Como se chama essa característica?
- Na Prática Obrigatória 1 (Ficha de Insumo de Estoque), qual tipo de dado deve ser usado para armazenar a variável
emQuarentena? - Qual tipo de dado do Portugol equivale ao
intda linguagem C/Java, segundo a tabela comparativa do capítulo? - Segundo o Checkpoint de Lógica, o que o compilador faz com os tipos de dados em linguagens como Java, C++ e C#?
- Segundo o quadro de atenção (CAUTION) do capítulo, por que
placa = "BRA2E19"usa aspas duplas enquantoturno = 'N'usa aspas simples?