Fortran - Constantes
Les constantes font référence aux valeurs fixes que le programme ne peut pas modifier lors de son exécution. Ces valeurs fixes sont également appeléesliterals.
Les constantes peuvent être de l'un des types de données de base comme une constante entière, une constante flottante, une constante de caractère, une constante complexe ou une chaîne littérale. Il n'y a que deux constantes logiques:.true. et .false.
Les constantes sont traitées comme des variables régulières, sauf que leurs valeurs ne peuvent pas être modifiées après leur définition.
Constantes et littéraux nommés
Il existe deux types de constantes -
- Constantes littérales
- Constantes nommées
Une constante littérale a une valeur, mais pas de nom.
Par exemple, voici les constantes littérales -
Type | Exemple |
---|---|
Constantes entières | 0 1 -1 300 123456789 |
Constantes réelles | 0,0 1,0 -1,0 123,456 7,1E + 10-52,715E-30 |
Constantes complexes | (0,0, 0,0) (-123,456E + 30, 987,654E-29) |
Constantes logiques | .vrai. .faux. |
Constantes de caractère |
"PQR" "a" "123'abc $% # @!" " une citation "" " 'PQR' 'a' '123 "abc $% # @!' 'une apostrophe' '' |
Une constante nommée a une valeur ainsi qu'un nom.
Les constantes nommées doivent être déclarées au début d'un programme ou d'une procédure, tout comme une déclaration de type de variable, en indiquant son nom et son type. Les constantes nommées sont déclarées avec l'attribut de paramètre. Par exemple,
real, parameter :: pi = 3.1415927
Exemple
Le programme suivant calcule le déplacement dû au mouvement vertical sous gravité.
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
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant -
Time = 5.00000000
Displacement = 127.374992