PROGRAM racines_carreeset se termine par
END PROGRAM racines_carrees
INTEGER :: i, nrac REAL :: valeur, racineles variables i et nrac sont des entiers, valeur et racine sont des réels.
nrac = 3nrac a été initialisé à la valeur 3 mais sa valeur peut évoluer par la suite.
DO i = 1 , nrac bloc ENDDOon demande de répéter 'bloc' an attribuant à la variable i successivement i=1,2,..,nrac.
PRINT*,'Donner un nombre :'écrit à l'écran (unité de sortie standard ici)
Donner un nombre :
READ*,valeurlit sur l'entrée standard, ici le clavier, un réel.
IF ( condition ) THEN bloc1 ELSE bloc2 ENDIFsi la condition est vraie on exécute les instructions contenues dans de bloc 1 sinon on exécute les instructions du bloc 2.
SQRT : fournit par le compilateur, cette fonction calcule la racine carrée.
Cett instruction précise que toutes les variables
utilisées dans le programme doivent être déclaré
au préalable ( sinon le compilateur affectue par
défaut un type pour la variable selon une régle que je ne
précise pas). Néanmoins, une bien meilleure fiabilité des
programmes peut être obtenues en utilisant un langage qui permet en
lui-même d'éviter certains piéges redoutables ... C'est une
erreur stupide de taper un point au lieu d'une virgule dans une
boucle en Fortran 77 du type DO 50 I = 1.512 ..... 50 CONTINUE
,
légitimement interprété par les compilateurs comme les
instructions
DO50I = 1.512
( où la variable DO50I est prise comme
une variable réelle, parce que le fameux IMPLICIT NONE n'a pas
été précisé) , et
50 CONTINUE
qui est alors une
instruction sans action. C'est pourtant bien une erreur de ce genre,
tel que le rapporte, à la suite d'Anthony Hoare, le classique
français sur les méthodologies de programmation [ Meyer et Beaudoin
78, page 507], qui aurait provoquer l'échec du lancement du premier
satellite américain vers Vénus, selon l'enquête qui a suivi ...