Cálculo do Índice de Massa Corporal (IMC) em Pascal


Atualmente precisei de fazer um “programinha” em Linguagem Pascal para calcular o Índice de Massa Corporal (IMC) de uma pessoa – segundo seu peso e altura – e classificá-la em uma das quatro categorias proposta pelo exercício; a pessoa deveria ser classificada entre Abaixo do Peso, Peso Normal, Acima do Peso ou Obesidade.

Este post tem como objetivo de falar acerca dos conflitos entre palavras, variáveis e outras coisas mais que enfrentei. Na linguagem Pascal há uma coisa para os iniciantes se preocuparem, que são as Palavras Reservadas. Nesse programa de IMC mesmo, perdi mais tempo com um problema desse tipo que escrever propriamente o algoritmo e código todo; pensava que essa atenção com uso de palavras reservadas se aplicava apenas aos nomes de variáveis que o programador criasse em relação as que são reservadas pela linguagem Pascal. Em qualquer livro sobre o assunto temos a definição sobre essa questão: as palavras reservadas do Turbo Pascal são palavras que fazem parte da sua estrutura e têm significados pré-determinados. Elas não podem ser redefinidas e não podem ser utilizadas como identificadores de variáveis, procedures, functions etc. Algumas das palavras reservadas são: absolute, case, downto, goto, and, const, emd, array, begin, repeat etc.

Pensando dessa forma, e ainda falando sobre o programa de cálculo de IMC, escrevi o algoritmo utilizando como nome do programa – declarado no início do código – a palavra IMC, que era o mais óbvio, já que o programa tem a função de calcular exatamente o IMC. O que aconteceu foi que usei o nome “imc” também na variável que pegava o valor do cálculo do peso dividido pela altura ao quadrado. Então o programa não rodava, e dava mensagem que o identificador IMC estava duplicado. Eu, talvez por ser iniciante, não conseguia diagnosticar onde estava o problema. Repassei pelo código várias vezes procurando se eu estava usando alguma palavra reservada, mas não chegava a essa conclusão, afinal de contas, nenhum dos nomes de variáveis era parecido com algum uso do Pascal. O pior de tudo é que nem meu professor de Lógica tinha dado esse toque, ou deu e passou despercebido.


Depois de mudar o código várias vezes, mexer até com coisas que estavam certas etc., por fim, pensei que “imc” pudesse ser alguma palavra reservada que eu não tinha visto nos livros, então a mudei, e deu certo. Depois disso, em outro exercício, o mesmo problema, e o pior é que o nome que estava conflitando era em português mesmo; não era sigla, nem nada parecido. Então fiquei analisando; a palavra era Divisao, e então, depois de apanhar muito eu vi que a resposta a tudo isso que eu passei era simples: O nome das variáveis, além de não poderem conflitar com as palavras reservadas, não podem ser iguais ao nome do programa (program) dado no início do algoritmo. É, é vivendo e aprendendo, atentando para os pequenos detalhes, que são preciosos.

No meu caso, do programa para calcular o IMC, deixei o nome do programa como IMC mesmo, e renomeei as variáveis para massa. Vejam o código abaixo, como ficou:

program IMC;
uses crt;
var
peso,altura,massa:real;
begin
write(‘Digite seu peso: ‘);
readln(peso);
write(‘Digite sua altura: ‘);
readln(altura);
massa := peso /(altura * altura);
//ABAIXO DO PESO: IMC abaixo de 18.5
if (massa < 18.5) then
writeln(‘Paciente abaixo do peso.’)
//PESO NORMAL: IMC entre 18.5 e 25
else if ((massa >= 18.5) and (massa <= 25)) then
writeln(‘Paciente com peso normal.’)
//ACIMA DO PESO: IMC entre 25 e 30
else if ((massa >= 25) and (massa <= 30)) then
writeln(‘Paciente acima do peso. CUIDADO!!!’)
//OBESIDADE: IMC acima de 30
else if (massa > 30) then
writeln(‘Paciente em estado de Obesidade. Situacao de RISCO!!!’);
readkey;
end.

Forte abraço a todos!

Esta entrada foi publicada em Linguagem Pascal, Programação e marcada com a tag , , , , , , , , , . Adicione o link permanenteaos seus favoritos.

Deixe uma resposta

O seu endereço de email não será publicado Campos obrigatórios são marcados *

*

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>