Capítulo 04: Interação: Entrada e Saída de Dados

🎯 Objetivo da Aula

Até agora, seus programas eram “estáticos” (os valores já estavam no código). Nesta aula, você aprenderá a criar programas Dinâmicos. O objetivo é dominar o comando leia(), permitindo que o usuário digite informações pelo teclado enquanto o programa está rodando.


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

Situação: Você precisa criar um sistema de Autoatendimento para a portaria da FastLog. O sistema deve perguntar o nome do visitante e o número do documento, e depois exibir uma mensagem de boas-vindas personalizada.

Missão: Fazer com que o computador “ouça” o usuário através do teclado.


🧠 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. O Comando leia()

O comando leia pausa a execução do programa e fica esperando o usuário digitar algo e apertar a tecla Enter. O que for digitado será guardado dentro de uma variável que você escolher.


📖 Exemplo Guiado: Cadastro Interativo

O comando leia pausa a execução do programa e fica esperando o usuário digitar algo. Observe a importância do escreva antes do leia:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao inicio() {
		cadeia nome
		inteiro idade
		
		escreva("Digite seu nome: ")
		leia(nome)
		
		escreva("Digite sua idade: ")
		leia(idade)
		
		escreva("Olá ", nome, ", você tem ", idade, " anos.")
	}
}

🛠️ Prática Obrigatória 1: Calculadora Amigável

Crie um programa que peça dois números reais ao usuário. O programa deve calcular e exibir a Soma, a Subtração e a Multiplicação desses números.

✅ Resultado Esperado

1
2
3
4
5
Digite o primeiro número: 10
Digite o segundo número: 5
SOMA: 15
SUBTRAÇÃO: 5
MULTIPLICAÇÃO: 50

🛠️ Prática Obrigatória 2: Crachá Digital FastLog

Crie um programa que peça o Nome, o Cargo e o Departamento de um colaborador. Exiba as informações formatadas como um crachá.

✅ Resultado Esperado

1
2
3
4
5
6
7
8
9
Nome do colaborador: Ana Souza
Cargo: Gerente
Departamento: Expedição

--- CRACHÁ DIGITAL ---
NOME: Ana Souza
CARGO: Gerente
DEPTO: Expedição
----------------------

🔥 Desafio de Fixação (Opcional): Conversor de Temperatura

Crie um programa que peça a temperatura em Celsius e exiba o valor convertido para Fahrenheit. Fórmula: F = (C * 9 / 5) + 32


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

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

🔑 Gabarito de Código

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao inicio() {
		cadeia nome, cargo, depto
		escreva("Nome do colaborador: ") leia(nome)
		escreva("Cargo: ") leia(cargo)
		escreva("Departamento: ") leia(depto)

		escreva("\n--- CRACHÁ DIGITAL ---\n")
		escreva("NOME: ", nome, "\n")
		escreva("CARGO: ", cargo, "\n")
		escreva("DEPTO: ", depto, "\n")
		escreva("----------------------")
	}
}

Desafio:

1
2
3
4
5
6
7
8
programa {
	funcao inicio() {
		real celsius, fahrenheit
		escreva("Digite Celsius: ") leia(celsius)
		fahrenheit = (celsius * 9 / 5) + 32
		escreva("Temperatura: ", fahrenheit, "°F")
	}
}