Capítulo 04: Interação (leia e escreva)

🎯 Objetivo da Aula

Um programa que não interage com o usuário é apenas uma lista de comandos estática. Nesta aula, você aprenderá sobre Entrada e Saída de Dados. O objetivo é dominar os comandos leia e escreva para criar algoritmos que conversam com o operador do sistema.


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

Situação: O recepcionista da FastLog precisa cadastrar os motoristas que chegam para carregar. O Problema: Atualmente os dados são fixos no código. Precisamos que o programa peça o nome do motorista e a placa do veículo via teclado.

Missão: Criar um terminal de autoatendimento para motoristas.


🧠 Fundamentos: A Teoria Traduzida

1. O Fluxo de Dados

Todo sistema básico funciona em três etapas:

🎭 Exemplo 1: Cotidiano (Rede Social)

  1. Entrada: Você digita sua legenda.
  2. Processamento: O app aplica um filtro.
  3. Saída: A foto aparece no seu feed.

🆔 Exemplo 2: Técnico (Cadastro de Motorista)

  1. Entrada: Motorista digita o CPF e a Placa no terminal.
  2. Processamento: O sistema verifica se a placa tem autorização.
  3. Saída: A cancela do pátio se abre.
graph LR
    User((Usuário)) -- Teclado --> Input[leia]
    Input --> CPU[Processamento]
    CPU --> Output[escreva]
    
    style Input fill:#f39c12,stroke:#fff,color:#fff
    style Output fill:#2ecc71,stroke:#fff,color:#fff

2. Comandos no VisuAlg

  • escreva: Mostra o texto no console.
  • escreval: Mostra o texto e pula para a próxima linha (Escrita com Linha).
  • leia: Interrompe o programa e espera o usuário digitar algo e apertar ENTER.

📖 Exemplo Guiado: Terminal de Portaria

Os comandos leia e escreva permitem que o programa interaja com o usuário. O escreval (escreva linha) pula uma linha após mostrar o texto.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
algoritmo "Terminal_Checkin"
var
   motorista, placa : caractere
   peso : real
inicio
   escreva("Nome do Motorista: ")
   leia(motorista)
   escreva("Placa do Veículo: ")
   leia(placa)
   escreva("Peso Bruto (Kg): ")
   leia(peso)
   
   escreval("--- REGISTRO FASTLOG ---")
   escreval("MOTORISTA: ", motorista)
   escreval("PLACA: ", placa)
   escreval("PESO: ", peso, " Kg")
fimalgoritmo

🛠️ Prática Obrigatória 1: Calculadora Interativa

Crie um algoritmo que peça dois números reais ao usuário. Em seguida, exiba a soma, a subtração e a multiplicação desses dois números de forma organizada.

✅ Resultado Esperado

1
2
3
4
5
Número 1: 10
Número 2: 5
SOMA: 15.0
SUBTRAÇÃO: 5.0
MULTIPLICAÇÃO: 50.0

🛠️ Prática Obrigatória 2: Cadastro de Equipe FastLog

Peça o nome, o cargo e o departamento de um colaborador através do teclado. Exiba um resumo formatado simulando um “Crachá Digital”.

✅ Resultado Esperado

1
2
3
4
CRACHÁ FASTLOG
NOME: João
CARGO: Analista
DEPTO: Logística

🔥 Desafio de Fixação (Opcional): Recibo de Venda

Crie um programa que peça o nome de um produto, a quantidade vendida e o valor unitário. Calcule o valor total e exiba um recibo simplificado no console.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Sempre use um escreva antes de um leia para orientar o usuário.
  2. Salve os arquivos com a extensão .alg (Ex: Atividade_04_SeuNome.alg).
  3. Envie no Microsoft Teams na tarefa “VisuAlg Cap 04 - Entrada e Saída”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
algoritmo "Calculadora"
var
   n1, n2 : real
inicio
   escreva("N1: ") leia(n1)
   escreva("N2: ") leia(n2)
   escreval("SOMA: ", n1 + n2)
   escreval("SUB: ", n1 - n2)
   escreval("MULT: ", n1 * n2)
fimalgoritmo

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
algoritmo "Recibo"
var
   prod : caractere
   qtd : inteiro
   vlr, total : real
inicio
   escreva("Produto: ") leia(prod)
   escreva("Qtd: ") leia(qtd)
   escreva("Preço: ") leia(vlr)
   total <- qtd * vlr
   escreval("RECIBO: ", prod, " | TOTAL: R$ ", total)
fimalgoritmo