Le langage de programmation Fortran by hcw25539

VIEWS: 266 PAGES: 73

									    UNIVERSITE MENTOURI - CONSTANTINE
      FACULTE DES SCIENCES EXACTES
         TRONC COMMUN LMD-SM




            LMD-Sciences de la Matière 1ère Année (S2)
umc-sm.tk           Année Univ. 2008/2009
        Le langage de
Cours

        programmation
             Fortran
 er




            Introduction
1



        
1.Introduction Au Langage Fortran 77

   La communication entre l’homme qui
    utilise les langages courants (Arabe,
    Français,      Anglais,….)     et    le
    microprocesseur qui utilise le langage
    machine (le code binaire 1, 0)
    s’effectuée à travers des langages
    commun (langages informatiques).
     1.Introduction Au Langage Fortran 77

   Un langage informatique est constitué par
    Un ensemble d’instructions mots-clés
    Un ensemble d'objets manipulables
    Des règles de syntaxe
    Des structures logiques
1.Introduction Au Langage Fortran 77

Parmi les langages informatiques
 existants on site :
 Basic, Pascal, Fortran, C, Visual
 Basic, C++, Java, HTML, Delphi,
 …
    1.Introduction Au Langage Fortran 77

   Le Fortran a été adopté comme langage de
    programmation car il s’avère très puissant
    dans les calculs scientifiques et ainsi
    pouvant répondre a nos besoins dans la
    résolution numérique des modèles
    mathématiques régissant les phénomènes
    physiques étudiés dans les modules
    d’électronique, optique, mécanique,….
    2. L’histoire du Fortran

Avec le développement de l’informatique
 la compagnie International Business
 Machines (IBM) publie la description d'un
 langage de programmation évolué
 appelé:
 FORmula TRANslator

 (traducteur d'équations).
2. L’histoire du Fortran

   En 1956 le premier manuel de référence
    d’IBM décrivait le FORTRAN I, et depuis
    cette date le langage Fortran n’a cessé
    de se développer :
     1957: FORTRAN II
     1958: FORTRAN III
     1962: FORTRAN IV
     1978: FORTRAN V
2. L’histoire du Fortran

   Actuellement le FORTRAN 77 plus
    proche du FORTRAN V, et le
    FORTRAN 90 orienté vers le
    parallélisme des calculs, sont les
    plus utilisés.
     3. Elaboration d'un programme Fortran

   Un programme Fortran nécessite trois
    types de fichiers pour son élaboration
    Le   fichier source (extension .FOR)
    Le   fichier objet (extension .OBJ )
    Le   fichier exécutable (extension .EXE)
    3. Elaboration d'un programme Fortran

 Le programmeur écrit le fichier source
  à l'aide d'un éditeur de texte, ce
  fichier doit être traduit en langage
  machine par le compilateur
 le fichier obtenu est un fichier objet
  qui peut être exécuter.
4. Organisation d’un programme Fortran

Règles d’écriture du programme source


Les instructions doivent commencer à

partir de la colonne 7 (ou plus) et ne
doivent pas dépasser la colonne 72.
    Une ligne de commentaire doit
    commencer par un C ou une * en
    première colonne.
4. Organisation d’un programme Fortran

 Tout ce qui suit le point d’exclamation !
  dans une ligne est considéré comme un
  commentaire.
 Les Labels (étiquettes) sont inscrits

  entre les colonnes 2 et 5
 Pour couper une instruction sur

  plusieurs lignes, on met un caractère
  en colonne 6.
  5. Structure générale d’un programme

1.PROGRAM       < nom du programme>
2.Déclaration    des données et des résultats
3.Ouverture    des fichiers de données et résultats
4.Lecture    des données
5.Calcul   et instructions de commande
6.Ecriture   des résultats
7.END
5. Structure générale d’un programme

    1. PROGRAM                2. Déclaration
 C’est une instruction    C'est dans cette
  facultative qui           partie qu'on définit
  définit le nom du         les objets qui seront
  programme,                manipuler par le
Syntaxe                     programme,
PROGRAM < Nom du          Syntaxe
  programme>              TYPE «Liste des
                            objets»
5. Structure générale d’un programme

3. Ouverture des fichiers            4. Lecture des données
   L’ouverture des fichiers est        Cette partie permet
    nécessaire lorsque le                d’alimenter le programme
    programme est alimenté par           par des données
    des données inscrites dans des       introduites soit directement
    fichiers externes, et dans le
    cas ou les résultats doivent         sur clavier ou à partir d’un
    être stocker dans des fichiers       fichier déjà ouvert par
    externes,                            l’instruction OPEN.
   Syntaxe                             On utilise l’instruction
   OPEN (<n°>, FILE = ‘                 READ dont la syntaxe
    <Chemin et nom du                    précise le numéro d’unité
    fichier>’)                           de lecture des données et
                                         le format de lecture.
    5. Structure générale d’un programme

    5. Instructions et calcul               6. Ecriture des résultats
   Les données sont manipulées par         Les résultats d’exécution des
    les opérations arithmétiques et          instructions du programme restent
    logiques, et suivant l’algorithme        dans la mémoire de l’ordinateur,
    du problème étudié                       pour les afficher sur écran ou sur un
    (conditionnel, répétitif, …), on         fichier déjà ouvert par l’instruction
                                             OPEN, on emploi l’instruction
    utilise des instructions Fortran         WRITE avec une syntaxe qui définit
    avec une syntaxe spécifique :            l’unité de stockage des résultats et
   IF, DO, WHILE, GOTO,                     le format d’affichage.
    CONTINUE, …..etc.
    Cette partie peut contenir des         • END
    appels aux sous programme.              Instruction obligatoire a la fin d’un
                                             programme ou d’un sous programme.
    5.1 Déclarations des objets
   La déclaration            Syntaxe
    d’une donnée              TYPE < Liste des
    consiste à lui             objets>
    réserver une place        Les objets
                               (données, constantes
    dans la mémoire        
                               ou variables) sont
    par son nom, la            séparés par des
    taille réservée            virgules.
    dépend du type de
    la donnée (Entier,
    réel, caractère, …).
5.1.1 Les données

 Les données sont        Type entier
  soit de type          Les valeurs
  numérique (            représentées par le
  Entier, réel,          type entier sont situées
  double précision       sur l'intervalle [-
  et complexe),          231,231-1].
 soit de type          Syntaxe :
  caractère ou de       INTEGER <liste des
  type logique :         données entières>
    5.1.1 Les données

         Type réel                 Type double précision
   Les valeurs représentées      Les valeurs (en valeur
    par le type réel simple        absolue) sont comprises
    précision sont situées         entre [4.941x10-324
    dans l'intervalle              ,1.798x10308] avec 15
                                   chiffres significatifs.
    [1.401x10-45
    ,3.403x1038].                 Syntaxe
                                  DOUBLE PRECISION <
   Syntaxe                        Liste des données
   REAL < liste des objets>       double précision>
    5.1.1 Les données

     Type complexe                  Type caractère
   Une donnée de type           Syntaxe
    complexe occupe deux
                                 CHARACTER*n <
    octets ; un octet pour la
    partie réelle et un octet     Liste des données
    pour la partie                caractères>
    imaginaire.
   Syntaxe
                                   n c’est la longueur
                                    maximale des
   COMPLEX <liste des
    données complexes>              données caractères.
5.1.1 Les données

     Type Logique           Exemple sur la déclaration

   Une donnée de type
    logique occupe 4
    octets de mémoire, sa
    valeur est .True. ou
    .False.
   Syntaxe
   LOGICAL <Liste des
    données logiques>
    Exemple sur la déclaration
   Séquence de programme qui déclare des quantités
    physiques
         Program Physique
   C dans ce programme on déclare les quantités physiques
    suivantes :
   C Patm : Pression atmosphérique , Avog : nombre d’avogadro
   C n : nombre de proton dans le noyau d’hydrogène
   C Planck : constante de Planck,
   C Poid : Formule du poid d’un corps (type caractère)
   C -------------------------- Déclaration --------------------
         Real Patm, Avog
         Integer n
         Double precision Planck
         Character*4 Poid
Exemple sur la déclaration
Les variables :

 Noms des variables
 Le nom d’une variable peut contenir

  des lettres alphabétiques, des
  chiffres et quelques caractères
    Déclaration de variables
 Une variable est déclarée par son non et son type
 Si une variable n’est pas déclarer elle sera
  considérée comme entière si elle commence par les
  lettres i, j, k, l, m, n
 Si une variable commençant par les autres lettres

  (de a à h et de o à z) est considérée comme réelle.
 Pour imposer la déclaration de tous les objets dans
  le programme on utilise la commande
                       IMPLICIT NONE
    Affectation d'une variable

 Syntaxe :
 nomvar = constante

   Ex : charge=1.6E-19
   nomvar = autre variable
   Ex : charge1=charge2
   nomvar = opération
   Ex : force=masse*acceler
  Opérateurs et fonctions mathématiques

I- Opérateurs arithmétiques II- Fonctions mathématiques

 Addition et                   Le FORTRAN
  Soustraction +, -              contient des
 Multiplication et              fonctions
  division *, /                  mathématiques
                                 pré-programmées
   Puissance    **
Real    Double precision   Complex Fonction
SIN     DSIN               CSIN    sin(x)
COS     DCOS               CCOS    cos(x)
TAN     DTAN                       tg(x)
ASIN    DASIN                      arcsin(x)
ACOS    DACOS                      arccos(x)
ATAN    DATAN                      arctg(x)
SINH    DSINH                      sh(x)
LOG10   DLOG10                     log10(x)
LOG     DLOG               CLOG    ln(x)
EXP     DEXP               CEXP    exp(x)
SQRT    DSQRT                          x
        Le langage de
Cours

        programmation
             Fortran
  eme




           Entrées/Sorties
2
                    Entrées / Sorties
   n1pose la question ‘ou ?’, c-à  m1 pose la question
    dire ou sont les données qui      ‘comment ?’, c’est a
                                      dire
    alimentent de programme.n1→ ou? spécifier le format
       Syntaxe   le lecture •
                                      des données à lire.
   SiREAD(n1,m1) • m1→comment?
        n1 est remplacé par le
                                     Si m1 est remplacé
    caractère ‘*’, Read(*,m1) le      par le caractère ‘*’, le
    programmeur doit introduire       format des données est
    les données sur clavier.          libre.
       n1 est un nombre • n2→ Si m1
    SiSyntaxe d’écritureentier, le ou? est un nombre
    programmeur doit introduire       entier les données
      WRITE(n2,m2) • m2→comment? avec seront introduites
    les données sur un fichier dont
    numéro n1, déjà ouvert par        le format spécifier à la
                                      ligne d’étiquette m1.
    l’instruction OPEN.
    Ecriture formatée
   existe deux           2ème méthode
Il1ère méthode méthodes pour spécifier le

                         Format spécifier à
format spécifier
 Formatdes résultats à afficher
                          l’extérieur de Write
  directement dans               Syntaxe :
  l’instruction Write               Write (n , m) r1, r2,…
                                    ……………
 Syntaxe :
                                    ……………
Write (n ,‘format’)r1, r2,.   m Format( ……...)
                                 Dans la ligne d’étiquette
                                  m on spécifie les
                                  différents champs qui
                                  correspondent aux types
                                  des résultats à afficher.
     Code Format des différents champs
Cha                   Code
        Définition                     Paramètres
mp                   format
 I    Entier          Iw      W: largeur du champ

      Réel sous           W: largeur du champ
 F    forme          Fw.d d: nombre de chiffres après le
      décimale            point décimal

      Réel sous          W: largeur du champ
 E    forme         Ew.d d: nombre de chiffres après le
      exponentielle      point décimal

 L    Logique         Lw      W: largeur du champ
  Code Format des différents champs
Cha             Code
    Définition                  Paramètres
mp             format
                   W: Largeur de la chaîne
 A Caractère    Aw
                   caractère
   Champ
 X              wX W: nombre de blancs
   des blancs
                        W: Position à partir de
   Position
 T              Tw      laquelle la donnée est
   donnée
                        représentée
     Saut de            Le nbr de barres correspond
‘ /’             /
     ligne              au nombre de lignes
Exemple :
                 Exemple :
 Le résultat d’exécution du programme

  est comme suit :
             Le langage de
Cours

             programmation
                  Fortran
  eme




           Instructions conditionnelles
3
     Instructions conditionnelles
   Certains phénomènes physiques ne
    peuvent avoir lieu que sous des
    conditions spécifiques, d’autres
    phénomènes présentent des solutions
    différentes suivant les conditions
    imposées. On peut élaborer un
    programme de calcul qui détermine les
    différentes solutions qui s’en découlent.
    Instructions conditionnelles

 En Fortran, la condition est
  imposée par l’instruction IF
 (L’instruction SI)
I- L’expression Logique ou Booléenne

   Une expression logique relie des
    objets avec des opérateurs de
    comparaison et des opérateurs
    logiques, sa valeur ne peut être
    que .TRUE. ou .FALSE.
I- L’expression Logique ou Booléenne

Opérateurs de Comparaison    Opérateurs Logiques
Opérateur Définition        Opérateur Définition
   .EQ.           =           .NOT.    Non
   .NE.           ≠           .AND.    Et
    .LT.          <            .OR.    Ou
    .LE.          ≤           .EQV.   Equivalent
   .GT.           >          .NEQV.   Ou exclusif
   .GE.           ≥
II- Les différents types de la condition IF

      IF Logique            Syntaxe :
 Teste la valeur     IF (Expression logique)
  d’une expression           instruction
  logique, si elle est ………………….
  vraie l’instruction
  qui suit sera
  exécutée.
II- Les différents types de la condition IF

    Exemple              Si la valeur de Q
Calcul de la racine       est négative, le
d’un nombre réel Q        programme change
                          son signe.
II- Les différents types de la condition IF

On peut aussi résoudre ce problème en
 utilisant l’instruction GOTO :
    Le Bloc IF
  1°/ Pour exécuter une       2°/ Pour spécifier une
   série d'instructions     autre série d'instructions
   uniquement si une        à exécuter si la condition
condition logique est vraie    logique est fausse
  Syntaxes :                              Syntaxes :

IF (condition logique) THEN IF (condition logique) THEN
 ........................................ …(série d'instructions1)…
 …(série d'instructions)…                  ELSE
 ENDIF                                    …(série d'instructions2)…
                                          ENDIF
    Le Bloc IF
                     IF (condition logique 1) THEN
 3°/ Pour            ………………………
enchaîner            ELSE IF (condition logique2) THEN
                     ……………………..
 plusieurs           ELSE IF (condition logique3) THEN
conditions            ………………………
                      ELSE
 logiques             ………………………
   Remarque:
                     ENDIF
   Si au lieu des ELSE IF on utilise ELSE suivit par le bloc
    IF, on sera obligé de fermer chaque bloc par ENDIF
Le Bloc IF
IF (condition logique 1) THEN
………………………
ELSE
       IF (condition logique2) THEN
       ……………………..
       ELSE
              IF (condition logique3) THEN
               ………………………
               ELSE
              ………………………
ENDIF
     IF Arithmétique
 Teste le signe d’une expression arithmétique.
    Syntaxe :                  - 0 +
   IF (Expression arithmétique) l , m , n
   ……………………………
   l ensemble d’instructions et calculs à exécuter si la
  valeur de l’expression arithmétique est négative
 m ensemble d’instructions et calculs à exécuter si la
  valeur de l’expression arithmétique est nulle
 n ensemble d’instructions et calculs à exécuter si la
  valeur de l’expression arithmétique est positive
Exemple
Résolution d’une équation 2ème degré
           ax2 + bx+c =0
Les constantes caractères :
C1 = ‘Deux racines réelles ‘
C2 = ‘ Racine double ‘
C3 = ‘Deux racines complexes‘
Exemple
Exemple :
Exemple
            Le langage de
Cours

            programmation
                 Fortran
  eme




           La Boucle DO
4
            La Boucle DO
   Lorsqu’un ensemble
    d’instructions et de calculs se
    répètent plusieurs fois, on utilise
    la boucle DO.
 1- Syntaxe de la boucle DO

           Première Syntaxe
        DO e i = et les calculs situés
 Les instructions Vint , Vfin , ps
entre l’instruction DO et l’instruction
         ………………………
CONTINUE d’étiquette e, se répètent i
    e partir de valeur initiale de i,
 fois à CONTINUE
jusqu'à Vfin. Les calculs s’effectuent
          avec un Pas ‘Ps ‘.
1- Syntaxe de la boucle DO

       Deuxième syntaxe
     DO i = Vint , Vfin , ps
      ………………………
     END DO
 Exemple

Calcul du nombre π à partir de la série

                   
                    (1)       n
       s n  4
              n  0 2n  1
Solution
Remarque

1)Le pas n’est pas indiqué, il sera
  considéré = 1
2)L’initialisation est très importante
  dans la boucle DO. Ici la somme
  initiale Pi = 0
3)Le résultat afficher est :
   Pi =.3141602653489720D+01
 Remarque

4)Pour afficher les résultats
  intermédiaires de Pi qui
  correspondent à chaque valeur de n,
  il suffit d’écrire WRITE (*,100) Pi a
  l’intérieur de la boucle.
5)la fonction DFLOAT utilisé pour
  convertir (2n+1) du type INTEGER
  vers le type DOUBLE PRECISION.
2- Transfert du contrôle vers une boucle et
   sortie anormale de la boucle

    On peut transférer le contrôle
     dans une boucle DO vers
     n’importe quel point de la même
     boucle et on peut sortir librement
     d’une boucle à tout moment en
     imposant une condition de sortie
     IF …GOTO.
    Exemple

   Dans l’exemple de calcul le
    nombre π, on impose une
    condition de convergence qui
    permet d’arrêter les calculs lorsque
    le critère suivant est vérifié :

      sn  sn1           510   5
   Exemple
Pour imposer la condition Le nombre d’itérations
 de convergence on doit       nécessaire pour calculer π
 stocker la valeur de S à     avec la précision ε donnée
 (Etape) n-1, pour l’utiliser peut être afficher en
 à (Etape) n .                demandant la valeur de n
Lorsque la condition de      et π lors de la sortie
 convergence est vérifiée,    anormale de la boucle.
 on sort de la boucle et on Puisque π est de type
 écrit la valeur de π avant   DOUBLE PRECISION, Pour
 même que le nombre           calculer la valeur absolue
 maximal (n=10000) ne         on utilise DABS au lieu de
 soit atteint.                ABS
 3- Indice de contrôle et indice de calcul

 Lorsque l’indice de la , donc n est un indice
  boucle intervient         de calcul.
  dans les calculs il est  Lorsque l’indice de
  appelé indice de          la boucle contrôle
  calcul.                   uniquement le
 exemple le nombre π       nombre d’étapes de
  est fonction de           calcul, il est
  l’indice de la boucle n considéré comme
                            indice de contrôle.
Exemple

   Programme permettant de
    calculer cos (α) et sin (α) sur
    l’intervalle [0° , 90°] avec un
    pas de 15°
Exemple
    4- Les boucles DO imbriquées

 Lorsqu’une boucle DO intérieure est
  totalement comprise dans une
  boucle DO extérieure, on dit que les
  deux boucles sont imbriquées.
 a condition que les règles suivantes
  soient vérifiées :
   4- Les boucles DO imbriquées
1) l’indice de la boucle      1) Le nombre de
   intérieure doit être          boucles DO
   différent de celui de la      imbriquées est limité
   boucle extérieure.            par le compilateur.
2) On ne peut avoir de        2) Dans le cas ou les
   chevauchement dans            boucles ont la même
   les boucles (la boucle        fin, elles peuvent
   intérieure totalement         avoir la même
   comprise dans la              étiquette.
   boucle extérieure).
 Exemple

    Calcul du produit des sommes

                                   m 
             
            5            10   sin     
prod   ln     e              n 

       m1   m  n1
Exemple
     Exemple

   Dans ce programme on a utilisé deux
    boucles DO. La boucle intérieure
    d’indice n est chargée de calculer la
    somme. La boucle extérieure d’indice
    m est charger d’effectuer le produit des
    sommes calculées. La valeur initiale de
    la somme est 0 et la valeur initiale du
    produit est 1.
        Le langage de
Cours

        programmation
             Fortran
  eme




        ‫لغة البرمجة فورتران‬
5

								
To top