Fortran - Constantes
As constantes referem-se aos valores fixos que o programa não pode alterar durante sua execução. Esses valores fixos também são chamadosliterals.
As constantes podem ser de qualquer um dos tipos de dados básicos, como uma constante inteira, uma constante flutuante, uma constante de caractere, uma constante complexa ou um literal de string. Existem apenas duas constantes lógicas:.true. e .false.
As constantes são tratadas como variáveis regulares, exceto que seus valores não podem ser modificados após sua definição.
Constantes e literais nomeados
Existem dois tipos de constantes -
- Constantes literais
- Constantes nomeadas
Uma constante literal tem um valor, mas nenhum nome.
Por exemplo, a seguir estão as constantes literais -
Tipo | Exemplo |
---|---|
Constantes inteiras | 0 1 -1 300 123456789 |
Constantes reais | 0,0 1,0 -1,0 123,456 7,1E + 10 -52,715E-30 |
Constantes complexas | (0,0, 0,0) (-123,456E + 30, 987,654E-29) |
Constantes lógicas | .verdadeiro. .falso. |
Constantes de personagem | "PQR" "a" "123'abc $% # @!" " uma citação "" " 'PQR' 'a' '123 "abc $% # @!' 'um apóstrofo' '' |
Uma constante nomeada tem um valor e também um nome.
As constantes nomeadas devem ser declaradas no início de um programa ou procedimento, assim como uma declaração de tipo de variável, indicando seu nome e tipo. As constantes nomeadas são declaradas com o atributo de parâmetro. Por exemplo,
real, parameter :: pi = 3.1415927
Exemplo
O programa a seguir calcula o deslocamento devido ao movimento vertical sob a gravidade.
program gravitationalDisp
! this program calculates vertical motion under gravity
implicit none
! gravitational acceleration
real, parameter :: g = 9.81
! variable declaration
real :: s ! displacement
real :: t ! time
real :: u ! initial speed
! assigning values
t = 5.0
u = 50
! displacement
s = u * t - g * (t**2) / 2
! output
print *, "Time = ", t
print *, 'Displacement = ',s
end program gravitationalDisp
Quando o código acima é compilado e executado, ele produz o seguinte resultado -
Time = 5.00000000
Displacement = 127.374992