Basicamente
existem apenas dois tipos de variáveis: valores e letras.
Um valor numérico, que é geralmente expresso por um conjunto de caracteres
(letras), é uma expressão de quantidade. Por exemplo:
237 representa a quantidade de duzentas e trinta e sete coisas.
Um bocado de coisas.
A representação desta quantidade pode ser "237".
Usamos aqui três letras: "2", "3" e "7" para informar
a quantidade 237. Isto pode parecer um tanto primário mas a não compreensão
deste pequeno detalhe pode significar horas e mais horas debugando um programa
que teima em não funcionar direito.
O usuário (ou jogador) se comunica com o programa (via teclado) unicamente
por intermédio de letras. Para informar um valor, o usuário digita digamos
237. Tecla "2", tecla "3" e tecla "7". O programa recebe a informação "237"
e, se é um valor, precisa converter "237" em 237.
Note que usamos as aspas para indicar que "237" é uma palavra e não o valor
em sí. No máximo podemos dizer que "237" é a representação do valor 237
na base decimal. Na base hexadecimal, o valor 237 será representado (escrito)
por "ED"; na base binária, o mesmo valor 237 será representado por
"11101101". O valor é o mesmo, mas a forma como o representamos
pode variar de acordo com nossos interesses.
As variáveis numéricas, em nossos programas, representam valores. Elas
possuem nomes e características especiais. Por exemplo: uma variável chamada
Medida poderia conter valores que representam
a medida de alguma coisa. A distância entre uma cidade e outra, por exemplo.
Se dissermos que Medida:= 10, então
estamos informando ao programa que o valor contido em Medida
será igual a 10 unidades. Medida, portanto, é uma variável numérica que
pode ser usada pelo nosso programa. Como? Veja um exemplo:
Medida:=
Medida + 5;
Agora fizemos uma operação aritmética, dizendo
ao programa que, ao valor atual de Medida, queremos adicionar mais
cinco unidades. Medida então passará a conter o valor 15.
Até aqui definimos algumas variáveis como sendo do tipo integer.
No Delphi existem diversos tipos à nossa disposição. Os principais são:
Shortint
(inteiros pequenos) - As variáveis shortint não tem a parte fracionária
e contém valores inteiros pequenos (entre -128 e 127). Uma variável shortint
requer apenas um byte de memória.
Smallint
(inteiros) - As variáveis smallint não tem a parte fracionária
e contém valores inteiros relativamente pequenos (entre -32.768 e 32.767).
Uma variável smallinteger requer dois bytes de memória.
Integer
ou Longint (inteiros longos) - As variáveis integer
não tem a parte fracionária e contém valores inteiros grandes (entre -2.147.483.648
e 2.147.483.647). Uma variável longint requer quatro bytes de memória.
Byte
- As variáveis byte não tem a parte fracionária, nem são sinalizadas.
Contém valores inteiros entre 0 e 255. Uma variável byte requer um byte
de memória.
Word
- As variáveis word não tem a parte fracionária, nem são sinalizadas.
Contém valores inteiros entre 0 e 65.535. Uma variável word requer dois
bytes de memória.
Single
- As variáveis single podem ter a parte fracionária com até 8 dígitos
significativos. Uma variável single requer quatro bytes de memória.
Real
- As variáveis real podem ter a parte fracionária com até 12 dígitos significativos.
Uma variável real requer seis bytes de memória.
Double
- As variáveis double podem ter a parte fracionária com até 16
dígitos significativos. Uma variável double requer oito bytes de memória.
Extended
- As variáveis extended podem ter a parte fracionária com até 20
dígitos significativos. Uma variável extended requer dez bytes de memória.
Nosso primeiro pensamento pode ser no sentido de definir todas as variáveis
como extended e assim desfrutar da maior precisão possível. Mas
isso tem um preço extremamente alto. Não tanto em termos de espaço de memória
gasto, mas em termos de processamento.
O computador só lida com zeros e uns. Um valor em formato extended
será "traduzido" para binário antes de ser manipulado pelo programa. Isto
demanda processamento feito por rotinas internas complexas.
O ideal é definir o tipo de variável que mais se adapta à aplicação
que estamos projetando. Por exemplo, valores que não precisam de muita
precisão podem dispensar a parte fracionária.
Na verdade, o tipo integer é uma espécie de tipo que serve para quase tudo.
É sinalizado (pode ser negativo ou positivo) e abrange uma boa faixa de
valores, além de gastar pouca memória e já estar num "tamanho" quase natural
para que o processador o entenda.
O
grande cuidado a ser tomado, com as variáveis numéricas é
evitar ao máximo misturar, em operações aritméticas,
muitos tipos diferentes.
|