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:
Forte abraço a todos!
