Elaborar um programa em Pascal, que leia, em metros, as dimenções de uma sala quadrada, calcule e imprima a área e o perímetro desta sala.
Passo 1
O enunciado pede que eu elabore um programa em Pascal que:
- leia, em metros, as dimensões de uma sala quadrada (ou seja, leia o comprimento do lado da sala);
- calcule a área da sala;
- calcule o perímetro da sala;
- imprima os resultados (área e perímetro).
Informações relevantes dadas pelo enunciado:
- A sala é quadrada, então todos os lados têm o mesmo comprimento; vou chamar esse comprimento de
(em metros). - A entrada é o valor de
em metros. - A saída deve ser a área (em
) e o perímetro (em ).
Passo 2
Conceitos geométricos que preciso usar (explicadinhos):
- Área de um quadrado: a área
de um quadrado com lado é dada por
Isto significa multiplicar o comprimento do lado por ele mesmo. Ex.: se
metros,
.
- Perímetro de um quadrado: o perímetro
é a soma dos quatro lados, ou seja
Ex.: se
metros,
metros.
Explicando o que é cada símbolo:
-
= comprimento do lado do quadrado (metros). -
= área (metros quadrados, ). -
= perímetro (metros, ).
Passo 3
Como transformar isso em contas fáceis (para fazer na prova sem calculadora, se for número simples):
- Calcular
: basta fazer . - Calcular
: basta fazer .
Sefor um número inteiro pequeno ou decimal simples, dá pra fazer mentalmente ou com lápis e papel.
Exemplo manual rápido (para fixar):
Suponha metros.
Suponha
-
. -
m.
Guarde esse raciocínio: quadrado -> área é lado vezes lado; perímetro é quatro vezes o lado.
Passo 4
Decisão de como implementar em Pascal (explicando passo a passo):
- Vou usar variáveis do tipo
para permitir valores decimais (por exemplo, metros). Em Pascal, o tipo é escrito como . - Nome das variáveis: vou usar
para o lado, para a área e para o perímetro. Nos comentários do programa eu explico o que cada uma representa (útil na prova). - Leitura: usar
para ler um número (o usuário digita o valor do lado). - Cálculo:
e . - Impressão: usar
para mostrar os resultados. Em Pascal clássico (Free Pascal / Turbo Pascal) pode-se usar a formatação para mostrar com duas casas decimais, por exemplo.
Passo 5
Sobre a escolha de casas decimais e unidade:
- É comum mostrar área com duas casas decimais se a entrada pode ter casas decimais. Vou imprimir a área com duas casas decimais e o perímetro com duas casas decimais.
- Vou juntar a unidade na saída: área em
e perímetro em , para ficar claro.
Passo 6
Observações de robustez (pequenas dicas que ajudam na prova e na prática):
- Se o usuário fornecer um valor negativo para
, geometricamente não faz sentido; o programa não precisa obrigatoriamente tratar esse caso, mas é bom mencionar que idealmente deveríamos validar e pedir um valor não negativo. Vou deixar uma pequena verificação que, se , o programa avisa e termina — mas, se preferir algo mais simples para a prova, você pode assumir que a entrada será válida (não-negativa). - Se quiser simplificar, pode remover a verificação e calcular diretamente.
Passo 7
Estrutura do programa Pascal (passo a passo do que aparece no código):
- Declaração do programa (opcional): linha com “program …;”.
- Declaração das variáveis:
var L, A, P: Real; - Início do bloco principal com
begin. - Solicitar entrada ou apenas ler: uso
Write/WriteLnpara pedir eReadLn(L)para ler. - Cálculos:
A := L * L;eP := 4 * L;. - Impressão formatada dos resultados:
WriteLn('Area = ', A:0:2, ' m^2');eWriteLn('Perimetro = ', P:0:2, ' m'); end.para finalizar.
Passo 8
Exemplo de execução (simulação, para você ver a saída):
- Entrada (usuário digita):
- Cálculos feitos:
- Saída exibida pelo programa:
Area = 25,00 m^2
Perimetro = 20,00 m
Isso confirma que o programa está coerente com as fórmulas que vimos.
Passo 9
Motivação final e incentivo (curto, porque você pediu foco nos passos):
Você já tem a ideia geométrica (área , perímetro
) e a tradução direta para Pascal. Respira fundo: esse é um dos programas mais simples que aparecem em provas — entender a fórmula é o mais importante. Vai dando a mão: lê, calcula, imprime.
Você já tem a ideia geométrica (área
Resposta
program AreaPerimetroSala;
var
L, A, P: Real;
begin
Write('Digite o comprimento do lado da sala em metros: ');
ReadLn(L);
if L < 0.0 then
begin
WriteLn('Valor invalido: o lado deve ser nao-negativo.');
Halt;
end;
A := L * L;
P := 4 * L;
WriteLn('Area = ', A:0:2, ' m^2');
WriteLn('Perimetro = ', P:0:2, ' m');
end.