Capítulo 02: Memória, Declaração de Variáveis e Tipos Primitivos

🎯 Objetivo da Aula

Programas de computador não manipulam apenas textos estáticos: eles recebem, processam e armazenam dados dinâmicos que mudam a todo instante (como a quilometragem de um caminhão, a temperatura de um baú ou o nome de um motorista).

Nesta aula, você aprenderá a:

  1. Compreender o que é uma Variável e como a memória RAM armazena informações.
  2. Dominar a seção var do VisuAlg e as regras de nomenclatura de identificadores.
  3. Utilizar com precisão os Quatro Tipos Primitivos de Dados: inteiro, real, caractere e logico.
  4. Visualizar o estado das variáveis em tempo real no Painel de Variáveis do VisuAlg.

📥 Material de Apoio e Código-Fonte da Aula:


🏢 O Cenário Prático (Seu Desafio)

Situação: A FastLog comprou uma frota de novos caminhões e precisa informatizar o cadastro dos veículos. Cada veículo possui características distintas:

  • A placa do caminhão (ex: "BRA-2E19").
  • A quantidade de eixos (ex: 6 eixos).
  • O peso bruto máximo suportado (ex: 24.50 toneladas).
  • O status de seguro ativo (ex: VERDADEIRO ou FALSO).

Missão: Você deve construir um algoritmo que reserve os espaços corretos na memória RAM para armazenar e exibir essa ficha cadastral do caminhão sem conflito de tipos.


🧠 Fundamentos: A Teoria Traduzida

1. O que é uma Variável?

Uma Variável é uma posição reservada e nomeada na memória RAM do computador que pode guardar um valor por vez. Pense em uma variável como uma caixa organizadora com etiqueta:

  • A etiqueta é o nome da variável (o Identificador).
  • O tamanho/formato da caixa é o Tipo de Dado.
  • O objeto dentro da caixa é o Conteúdo/Valor.
graph LR
    subgraph Memoria_RAM ["Memória RAM do Computador"]
        V1["placa (caractere)<br/>Valor: 'BRA-2E19'"]
        V2["eixos (inteiro)<br/>Valor: 6"]
        V3["pesoMaximo (real)<br/>Valor: 24.50"]
        V4["seguroAtivo (logico)<br/>Valor: VERDADEIRO"]
    end
    
    style V1 fill:#2980b9,stroke:#fff,stroke-width:2px,color:#fff
    style V2 fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
    style V3 fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
    style V4 fill:#d35400,stroke:#fff,stroke-width:2px,color:#fff

2. Os Quatro Tipos Primitivos do VisuAlg

Tipo no VisuAlgO que armazena?Exemplos PráticosEquivalente em C / Java
inteiroNúmeros inteiros positivos ou negativos (sem casas decimais).0, 12, -5, 1500int
realNúmeros com casas decimais (ponto flutuante).3.14, 1850.50, -0.75float / double
caractereTextos alfanuméricos, letras, símbolos e dígitos (sempre entre aspas duplas)."Carlos", "ABC-1234", "Rua 10"char[] / String
logicoValores booleanos da Álgebra de Boole.VERDADEIRO ou FALSObool / boolean

Atenção ao Ponto Flutuante:
No código-fonte do VisuAlg e em todas as linguagens de programação, decimais utilizam PONTO (.) e não vírgula (ex: 24.50). A vírgula é reservada para separar parâmetros!


3. Regras de Nomenclatura de Variáveis (Identificadores)

Para dar nome às suas variáveis na seção var:

  1. Deve começar obrigatoriamente com uma letra (ex: idade, total1). Nunca comece com números (1total gera erro).
  2. Não pode conter espaços em branco (use CamelCase como pesoCarga ou snake_case como peso_carga).
  3. Não pode conter caracteres especiais (@, $, #, ç, acentos como á, é).
  4. Não pode usar palavras reservadas da linguagem (ex: não crie uma variável chamada inicio, fimse ou inteiro).

4. A Sintaxe da Seção var

1
2
3
4
5
var
   nomeMotorista : caractere
   idade, qtdEixos : inteiro
   pesoBruto, valorFrete : real
   temEscolta : logico

📖 Exemplo Guiado: Cadastro de Frota em Memória

Código do Algoritmo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
algoritmo "Cadastro_Caminhao"
var
   // 1. Declaração de Variáveis Tipadas
   placaVeiculo : caractere
   qtdEixos : inteiro
   pesoBrutoToneladas : real
   seguroVigente : logico

inicio
   // 2. Atribuição de Valores às Variáveis (Operador <-)
   placaVeiculo <- "BRA-2E19"
   qtdEixos <- 6
   pesoBrutoToneladas <- 24.5
   seguroVigente <- VERDADEIRO

   // 3. Exibição dos Dados Formatados
   escreval("=== FICHA TÉCNICA DO VEÍCULO ===")
   escreval("Placa de Rastreio: ", placaVeiculo)
   escreval("Número de Eixos: ", qtdEixos)
   escreval("Capacidade Máxima: ", pesoBrutoToneladas, " toneladas")
   escreval("Possui Seguro Ativo? ", seguroVigente)
fimalgoritmo

✅ Resultado Esperado no Console (F9):

1
2
3
4
5
=== FICHA TÉCNICA DO VEÍCULO ===
Placa de Rastreio: BRA-2E19
Número de Eixos: 6
Capacidade Máxima: 24.5 toneladas
Possui Seguro Ativo? VERDADEIRO

🛠️ Prática Obrigatória 1: Ficha de Insumo de Estoque

Passo 1: O Desafio

Crie um algoritmo chamado "Ficha_Estoque" que declare e exiba as informações de um lote de embalagens no galpão da FastLog:

  • codigoSKU (caractere) ➔ "EMB-CAIXA-G"
  • quantidadeEstoque (inteiro) ➔ 1250
  • precoUnitario (real) ➔ 4.75
  • necessitaRefrigeracao (logico) ➔ FALSO

Passo 2: Codificação e Execução

Declare na seção var, atribua os valores no inicio e utilize escreval para exibir a ficha técnica organizada.

✅ Resultado Esperado (Prática 1):

1
2
3
4
5
6
=== CONTROLE DE ESTOQUE FASTLOG ===
SKU: EMB-CAIXA-G
Quantidade em Saldo: 1250 unidades
Preço Unitário: R$ 4.75
Câmara Fria Obrigatória? FALSO
===================================

🛠️ Prática Obrigatória 2: Dados do Motorista Titular

Crie o algoritmo "Cadastro_Motorista" declarando as variáveis:

  • nome (caractere) ➔ "Antônio Marcos"
  • idade (inteiro) ➔ 42
  • salarioBase (real) ➔ 3850.00
  • cnhValida (logico) ➔ VERDADEIRO

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_02_SeuNome_SeuSobrenome.alg.
  2. Abra o VisuAlg, pressione F9 e valide se os dados aparecem sem erros de tipo.
  3. No Microsoft Teams, envie na tarefa “VisuAlg Cap 02 - Variáveis e Tipos”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você aprendeu sobre Tipagem Estática e Forte. Linguagens como Pascal, C, C++, Java e Rust exigem que o tipo da variável seja definido antes da execução para que o sistema operacional aloque exatamente a quantidade necessária de bytes na memória RAM (ex: 4 bytes para um inteiro, 8 bytes para um real).


🔥 Desafio de Fixação: Apólice de Frete Internacional

Crie um algoritmo declarando dados para um frete marítimo: paisOrigem, paisDestino, conteineres (inteiro), valorDolar (real) e alfandegaLiberada (logico).


🔑 Gabarito de Código Completo

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
algoritmo "Ficha_Estoque"
var
   codigoSKU : caractere
   quantidadeEstoque : inteiro
   precoUnitario : real
   necessitaRefrigeracao : logico
inicio
   codigoSKU <- "EMB-CAIXA-G"
   quantidadeEstoque <- 1250
   precoUnitario <- 4.75
   necessitaRefrigeracao <- FALSO

   escreval("=== CONTROLE DE ESTOQUE FASTLOG ===")
   escreval("SKU: ", codigoSKU)
   escreval("Quantidade em Saldo: ", quantidadeEstoque, " unidades")
   escreval("Preço Unitário: R$ ", precoUnitario)
   escreval("Câmara Fria Obrigatória? ", necessitaRefrigeracao)
   escreval("===================================")
fimalgoritmo

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
algoritmo "Cadastro_Motorista"
var
   nome : caractere
   idade : inteiro
   salarioBase : real
   cnhValida : logico
inicio
   nome <- "Antônio Marcos"
   idade <- 42
   salarioBase <- 3850.00
   cnhValida <- VERDADEIRO

   escreval("=== DADOS DO COLABORADOR ===")
   escreval("Nome: ", nome)
   escreval("Idade: ", idade, " anos")
   escreval("Salário Base: R$ ", salarioBase)
   escreval("CNH Regularizada: ", cnhValida)
fimalgoritmo

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
algoritmo "Frete_Internacional"
var
   paisOrigem, paisDestino : caractere
   conteineres : inteiro
   valorDolar : real
   alfandegaLiberada : logico
inicio
   paisOrigem <- "Brasil"
   paisDestino <- "Alemanha"
   conteineres <- 4
   valorDolar <- 18500.00
   alfandegaLiberada <- VERDADEIRO

   escreval("Origem: ", paisOrigem, " -> Destino: ", paisDestino)
   escreval("Contêineres: ", conteineres, " | Valor: US$ ", valorDolar)
   escreval("Alfandega Liberada? ", alfandegaLiberada)
fimalgoritmo

📝 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.

  1. Segundo a analogia apresentada no capítulo, o que representam a “etiqueta”, o “tamanho/formato” e o “objeto dentro” de uma variável comparada a uma caixa organizadora?
  2. Quais são os quatro tipos primitivos de dados do VisuAlg e o que cada um armazena?
  3. Segundo o aviso do capítulo, qual símbolo deve ser usado para separar as casas decimais de um número real no VisuAlg?
  4. Cite três das quatro regras de nomenclatura de identificadores (variáveis) apresentadas no capítulo.
  5. Qual operador é usado para atribuir um valor a uma variável no VisuAlg, conforme demonstrado no Exemplo Guiado?
  6. Na Prática Obrigatória 1 (Ficha de Insumo de Estoque), qual tipo de dado deve ser usado para a variável necessitaRefrigeracao e qual valor deve ser atribuído a ela?
  7. Na Prática Obrigatória 2 (Dados do Motorista Titular), qual é o tipo de dado correto para a variável salarioBase?
  8. Segundo o Checkpoint de Lógica, o que significa a Tipagem Estática e Forte, e por que ela é importante para a alocação de memória RAM?
  9. Segundo as Instruções de Entrega, qual deve ser o padrão de nome do arquivo salvo para envio desta atividade?
  10. No quadro de Tipos Primitivos do capítulo, qual é o equivalente em C/Java do tipo caractere do VisuAlg?