ECOLE D ' INGENIEURS DE FRIBOURG SECTION DE MECANIQUE COURS D ' INFORMATIQUE :

ECOLE D ' INGENIEURS DE FRIBOURG SECTION DE MECANIQUE COURS D ' INFORMATIQUE : SECONDE ANNEE ÉLÉMENTS DE PROGRAMMATION EN FORTRAN - 77 EDITION 1992 G. Nicolet , EIF Fribourg Table des matières Page PRESENTATION 1 Chapitre 1 INTRODUCTION A FORTRAN-77 5 1.1 Caractères et instructions 6 1.1.1 Caractères du langage 6 1.1.2 Champ pour instructions 7 1.2 Configuration d'un programme 8 1.2.1 Hiérarchie des instructions 9 1.2.2 Instructions de spécification 9 1.2.3 Instructions exécutables 10 1.2.4 Unités de programme 10 1.2.4.1 Identificateurs 10 1.2.4.2 Programme principal 11 1.2.4.3 Sous-programmes 11 Chapitre 2 EXPRESSIONS FORTRAN 12 2.1 Types de données 12 2.1.1 Occupation en mémoire des différents types 13 2.1.2 Type entier : integer 14 2.1.3 Type réel : real 14 2.1.4 Type : double precision 15 2.1.5 Type complexe : complex 16 2.1.6 Type booléen ou logique : logical 16 2.1.7 Type caractère : character 17 2.2 Constantes FORTRAN 17 2.2.1 Constantes entières 17 2.2.2 Constantes réelles 17 2.2.3 Constantes en double précision 18 2.2.4 Constantes complexes 18 2.2.5 Constantes entières non décimales 19 2.2.5.1 DOMAIN 19 2.2.5.2 MS-FORTRAN 19 2.2.5.3 VAX-11 20 2.2.6 Constantes logiques 20 2.2.7 Constantes chaîne de caractères 20 2.2.8 Constantes Hollerith 21 2.3 Variables simples 21 2.3.1 Spécification de type par implicit 22 2.3.2 Variable de type integer 22 2.3.3 Variables de type real 23 2.3.4 Variables de type double precision 23 2.3.5 Variables de type complex 24 2.3.6 Variables de type logical 24 2.3.7 Variables de type character 24 2.4 Variables de tableaux 25 Table : 1 Page 2.4.1 Déclaration d'une variable indicée 25 2.4.2 Variables de type integer 26 2.4.3 Variables de type real 26 2.4.4 Variables de type double precision 27 2.4.5 Variables de type complex 27 2.4.6 Variables de type logical 27 2.4.7 Variables de type character 28 2.4.8 Rangement des éléments d'une variable 28 2.4.9 Instruction dimension 29 2.5 Expressions FORTRAN 29 2.5.1 Expressions arithmétiques 30 2.5.1.1 Opérateurs arithmétiques 30 2.5.1.2 Règles h'homogénéité des types 31 2.5.1.3 Exponentiation 32 2.5.2 Expressions de type character 33 2.5.2.1 Concaténation 33 2.5.2.2 Sous-chaînes de type character 33 2.5.3 Expressions de relation 34 2.5.4 Expressions logiques 35 2.5.4.1 Opérateurs logiques 35 2.5.4.2 Priorité des opérateurs 36 2.5.4.3 Exemples 36 Chapitre 3 INSTRUCTIONS DE BASE 38 3.1 Structures séquentielles 38 3.1.1 Instruction parameter 38 3.1.2 Instruction data 39 3.1.3 Affectation arithmétique 39 3.1.4 Affectation logique 41 3.1.5 Affectation d'une chaîne de caractères 41 3.1.6 Lecture de données 42 3.1.7 Affichage des données et des textes 44 3.1.8 Instruction : continue 45 3.1.9 Instruction : end 45 3.1.10 Instructions d'arrêt 45 3.1.10.1 Instruction : pause 45 3.1.10.2 Instruction : stop 47 3.2 Structures sélectives 47 3.2.1 Sauts inconditionnels 47 3.2.1.1 Go to inconditionnel 48 3.2.1.2 Go to imposé 48 3.2.1.3 Go to calculé 49 3.2.2 Instruction : if ... arithmétique 51 3.2.3 Instruction : if ... logique 52 3.2.4 Instructions avec bloc if 52 3.2.4.1 Configuration générale 52 3.2.4.2 Bloc if ... simple 53 3.2.4.3 Bloc if ... et else 53 3.2.4.4 Bloc if ... et else if ... 54 3.2.4.5 Remplacement de l'instruction : if arithmétique 54 Table : 2 Page 3.2.4.6 Structure générale 54 3.2.4.7 Blocs if ... imbriqués 55 3.2.5 Exemple de programme 55 3.3 Structures itératives 58 3.3.1 Structure à compteur 58 3.3.1.1 Forme fondamentale 58 3.3.1.2 Contrôle du nombre d'itérations 59 3.3.1.3 Boucles imbriquées 59 3.3.1.4 Exemple de boucles do 60 3.3.1.5 Boucle do implicite 61 3.3.2 Structure tant que 62 3.3.2.1 Instruction : do while 62 3.3.2.2 Exemple de structure do while 62 Chapitre 4 SOUS-PROGRAMMES FORTRAN-77 65 4.1 Librairie FORTRAN 66 4.1.1 Identificateurs des fonctions 66 4.1.1.1 Référence intrinsic 66 4.1.1.2 Référence generic 66 4.1.2 Description des fonctions 67 4.1.2.1 Fonctions de conversion 67 4.1.2.2 Conversion entre entiers et caractères 67 4.1.2.3 Fonctions mathématiques élémentaires 68 4.1.2.4 Fonctions sur des expressions complexes 69 4.1.2.5 Fonctions mathématiques générales 69 4.1.2.6 Fonctions trigonométriques 70 4.1.2.7 Fonctions hyperboliques 71 4.1.2.8 Fonctions de manipulation de chaînes 71 4.1.2.9 Comparaison logique des chaînes 72 4.1.3 Table des fonctions de la librairie FORTRAN 72 4.2 Listes de paramètres 76 4.2.1 Paramètres formels et effectifs 76 4.2.1.1 Paramètres effectifs 76 4.2.1.2 Paramètres formels 77 4.2.2 Correspondance entre les listes 78 4.2.3 Transmission des variables de tableaux 79 4.2.3.1 Dimensions des variables indicées 79 4.2.3.2 Dimensions ajustables 79 4.2.3.3 Stockage des données 82 4.2.3.4 Dimensionnement par l'astérisque 85 4.2.4 Appel et retour d'un sous-programme 88 4.2.4.1 Instruction d'appel d'une procédure 88 4.2.4.2 Retour d'un sous-programme 88 4.2.4.3 Transmission d'étiquettes 89 4.3 Fonctions-formules 89 4.3.1 Définition de la fonction-formule 89 4.3.2 Appel de la fonction-formule 90 4.3.3 Exemples de fonctions-formules 90 4.3.4 Exemple de programme 91 4.4 Sous-programme : subroutine 92 4.4.1 Syntaxe de la définition 92 Table : 3 Page 4.4.2 Configuration générale 93 4.4.3 Exemple de multiplication matricielle 94 4.5 Sous-programme : function 97 4.5.1 Syntaxe de la définition 97 4.5.2 Appel de la fonction 98 4.5.3 Exemple d'utilisation d'une fonction 98 4.6 Entrées et zones communes 100 4.6.1 Entrées additionnelles 100 4.6.1.1 Syntaxe de l'instruction entry 100 4.6.1.2 Entry dans un sous-programme subroutine 100 4.6.1.3 Entry dans un sous-programme function 101 4.6.2 Paramètres procéduraux 103 4.6.2.1 Exemple de paramètre procédural 103 4.6.2.2 Fonctions de la librairie en paramètre 104 4.6.3 Zones de réservation commune 105 4.6.3.1 Instruction common "blanc" 105 4.6.3.2 Instruction common identifié 106 4.6.4 Sauvegarde par l'instruction save 107 4.6.5 Adresses équivalentes en mémoire 108 4.6.5.1 Syntaxe de l'instruction 108 4.6.5.2 Equivalence de tableaux numériques 108 4.6.5.3 Equivalence de chaînes de caractères 109 4.6.5.4 Equivalence et common 109 4.6.6 Sous-programme block data 110 Chapitre 5 MISE EN FORME DES DONNEES 112 5.1 Mise en forme des entréées - sorties 112 5.1.1 Instruction de mise en forme 112 5.1.1.1 Instruction format 112 5.1.1.2 Descripteurs d'édition 113 5.1.1.3 Mise à la ligne ou à la page 113 5.1.1.4 Codes de lecture ou d'écriture 114 5.1.1.5 Mise en forme des données 115 5.1.2 Descripteurs de constantes et variables 115 5.1.2.1 Descripteur pour type integer 115 5.1.2.2 Descripteur G pour type real 116 5.1.2.3 Descripteur F pour type real 118 5.1.2.4 Descripteurs E et D pour type real 118 5.1.2.5 Facteur de multiplication 120 5.1.2.6 Descripteur L pour type logical 120 5.1.2.7 Descripteur A pour caractères 121 5.1.2.8 Descripteur H pour chaînes de caractères 122 5.1.2.9 Descripteur Z pour constantes hexadécimales 123 5.1.3 Descripteurs de mise en page 124 5.1.3.1 Saut de colonnes : descripteur X 124 5.1.3.2 Saut d'enregistrement : descripteur / 124 5.1.3.3 Tabulateur 125 5.1.3.4 Interruption du contrôle de la transmission 126 5.1.3.5 Répétition des descripteurs 126 5.1.3.6 Exploration de la mise en forme 126 Table : 4 Page 5.1.4 Possibilités complémentaires 128 5.1.4.1 Choix de la réponse 128 5.1.4.2 Ecriture de la mise en forme 129 5.1.4.3 Edition des entités complexes 129 5.1.4.4 Champ de descripteurs par défaut 129 5.1.4.5 Lecture des cartes perforées 130 5.1.4.5 Spécificateurs variables de mise en forme 130 5.2 Lecture et écriture 132 5.2.1 Listes d'entrée et de sortie 132 5.2.1.1 Liste simple 132 5.2.1.2 Liste à boucle implicite 132 5.2.2 Lecture par l'instruction read 133 5.2.2.1 Syntaxe de l'instruction 133 5.2.2.2 Exemples de lecture 134 5.2.3 Ecriture de données 134 5.2.3.1 Syntaxe de l'instruction 135 5.2.3.2 Exemples d'écriture 135 5.2.4 Exemple de programme 136 Chapitre 6 LES FICHIERS FORTRAN 139 6.1 Généralités sur les fichiers 139 6.1.1 Description des genres de fichiers 140 6.1.1.1 Enregistrements 140 6.1.1.2 Fichiers externes 140 6.1.1.3 Fichiers internes 140 6.1.1.4 Modes d'accès 141 6.1.2 Clauses 141 6.1.2.1 Mode d'accès : access 142 6.1.2.2 Traitement des blancs : blank 142 6.1.2.3 Contrôle du mode d'accès : direct 142 6.1.2.4 Fin de fichier : end 142 6.1.2.5 Contrôle des erreurs : err 143 6.1.2.6 Existance d'un fichier : exist 143 6.1.2.7 Nom du fichier : file 143 6.1.2.8 Nature de l'enregistrement : form 144 6.1.2.9 Contrôle du codage : formatted 144 6.1.2.10 Mise en forme : fmt 144 6.1.2.11 Etat des entrées-sorties : iostat 145 6.1.2.12 Contrôle du nom : name et named 145 6.1.2.13 Numéro d'enregistrement : nextrec 145 6.1.2.14 Numéro d'unité logique : number 146 6.1.2.15 Contrôle de l'ouverture : opened 146 6.1.2.16 Spécification du numéro d'enregistrement : rec 146 6.1.2.17 Longueur de l'enregistrement : recl 146 6.1.2.18 Contrôle du mode séquentiel : sequential 146 6.1.2.19 Etat du fichier : status 147 6.1.2.20 Contrôle du codeage : unformatted 147 6.1.2.21 Spécification de l'unité : unit 147 6.1.3 Ouverture des fichiers 148 6.1.3.1 Instruction d'ouverture : open 148 6.1.3.2 Utilisation de l'ouverture 149 Table : 5 Page 6.1.3.3 Exemple d'ouverture d'un fichier 149 6.1.3.4 Fermeture des fichiers 150 6.1.4 Ecriture, lecture et contrôle des fichiers 151 6.1.4.1 Ecriture de données dans un fichier 151 6.1.4.2 Lecture de données dans un fichier 151 6.1.4.3 Instruction inquire 152 6.1.5 Instructions complémentaires 153 6.1.5.1 Réinitialisation d'un fichier 153 6.1.5.2 Marque de fin de fichier 153 6.1.5.3 Recul d'un enregistrement 154 6.2 Fichiers à accès séquentiel 154 6.2.1 Opérations sur les fichiers séquentiels 154 6.2.1.1 Ouverture du fichier séquentiel 154 6.2.1.2 Ecriture du fichier séquentiel 155 6.2.1.3 Lecture du fichier séquentiel 156 6.2.1.4 Contrôle de la uploads/s3/ cours-fortran-77 1 .pdf

  • 27
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager