Cours langage Fortran représentation des réels, tutoriel & guide de travaux pratiques en pdf.
Représentation des entiers
Dans la mémoire de l’ordinateur, les données numériques sont représentées à l’aide d’un motif binaire de longueur 32, 64 voire 128 bits.
La représentation en machine d’un nombre entier positif correspond à son écriture en base 2. Pour l’obtenir, il suffit de procéder à des divisions successives par 2.
Les nombres entiers négatifs sont représentés en complément vrai ou complément à 2 qui consiste, à partir du motif binaire du nombre positif, à inverser tous les bits puis d’ajouter 1.
De ce fait, sur n bits, les nombres représentables sont les suivants :
−2n−1 ≤ i ≤ 2n−1 − 1
Représentation des réels
Un nombre réel ou flottant est caractérisé par :
son signe ;
son exposant ou caractéristique ;
sa mantisse.
Son mode de représentation est un motif binaire respectant la norme IEEE.
Représentation d’un nombre réel sur 32 bits
Ce type de réel, appelé réel simple précision, admet un motif binaire de la forme :
seeeeeeeem—–m
avec :
s : bit de signe ;
e : exposant sur 8 bits à excédent 127 ;
m : mantisse sur 23 bits.
Le nombre représenté correspond à ⇒ r = s1.m × 2e−127
Ce type de représentation permet de représenter les nombres :
1.2×10−38 ≤ |r| ≤3.4×10+38
avec 6 chiffres significatifs.
Représentation d’un nombre réel sur 64 bits
Ce type de réel, appelé réel double précision, admet un motif binaire de la forme :
seeeeeeeeeeem—–m
avec :
s : bit de signe,
e : exposant sur 11 bits à excédent 1023,
m : mantisse sur 52 bits.
Le nombre représenté correspond à ⇒ r = s1.m × 2e−1023
Ce type de représentation permet de représenter les nombres :
2.2×10−308 ≤ |r| ≤1.8×10+308
avec 15 chiffres significatifs.
Remarque :
En vérité, le motif en mémoire est 4024CCCCCCCCCCCD car lors de la troncature le 1er bit perdu à pour valeur 1.
Sur 32 bits ce n’était pas le cas car le bit perdu à pour valeur 0.
Représentation des complexes
Un nombre complexe est une paire de nombres réels, simple ou double précision, correspondant aux parties réelle et imaginaire.
Soit le nombre complexe : 1.5-1.5i
Sa représentation en simple précision nécessite 2 réels sur 32 bits :
Partie réelle 0 01111111 1000…0002 = 3FC0000016 = +1.510 Partie imaginaire 1 01111111 1000…0002 = BFC0000016 = -1.510
Représentation des logiques
Un logique est une entité qui peut prendre comme valeur :
.TRUE. .FALSE.
Il est représenté en général sur 32 bits (4 octets). Il peut exister des variantes codées sur 1, 2 voire 8 octets. Tous les bits sont positionnés à 0 sauf le bit le plus à droite qui pour la valeur .TRUE. est positionné à 1.
Représentation des caractères
Un caractère est codé sur 1 octet. Sa représentation interne respecte un codage appelé codage ASCII.
Il existe 128 caractères différents dont les représentations sont indiquées dans une table dite table ASCII.
Dans cette table les caractères numériques ainsi que les caractères alphabétiques (majuscules et minuscules) sont rangés consécutivement et en ordre croissant.
On appelle chaîne de caractères une suite de caractères rangés de façon consécutive en mémoire.
Un programme source Fortran est composé de parties indépendantes appelées unités de programme (scoping unit).
Chaque partie est compilée de façon indépendante. Chacune admet son propre environnement. Il sera cependant possible que ces parties communiquent entre elles. Les différentes unités de programme sont :
le programme principal ;
2 les sous-programmes :
de type subroutine ; de type function.
les modules ;
les block data.
Chaque unité comprend une partie déclarative (déclaration des variables locales, …) suivie d’une partie comportant des instructions exécutables parmi lesquelles peut apparaître l’instruction STOP qui provoque l’interruption du programme.
Éléments syntaxiques
Dans le mode « format libre »les lignes peuvent être de longueur quelconque à concurrence de 132 caractères.
Il est également possible de coder plusieurs instructions sur une même ligne en les séparant avec le caractère « ; ».
Exemple
print * , » Entrez une valeur : »; read * , n
Une instruction peut être codée sur plusieurs lignes : on utilisera alors le caractère « & ».
Lors de la coupure d’une chaîne de caractères la suite de la chaîne doit obligatoirement être précédée du caractère « & ».
Exemple
print * , » Entrez un nombre entier &
& compris entre 100 & 199 »
Remarque : il existe aussi le « Format fixe », considéré maintenant comme obsolète dont la structure d’une ligne est :
zone étiquette (colonnes 1 à 5) ;
zone instruction (colonnes 7 à 72) ;
colonne suite (colonne 6)
Le caractère « ! »rencontré sur une ligne indique que ce qui suit est un commentaire. On peut évidemment écrire une ligne complète de commentaires : il suffit pour cela que le 1er caractère non blanc soit le caractère « ! ».
1 Introduction
Historique
bibliographie
documentation
2 Généralités
Bases de numération
Jeu de caractères
Notion d’unité de programme
Éléments syntaxiques
Format libre
Commentaires
3 Déclarations
Identificateurs
Différents types
Syntaxe
4 Opérateurs et expressions
Opérateurs arithmétiques
Les opérateurs
Conversion implicite
Opérateurs relationnels
Opérateurs logiques
Priorité des Opérateurs
5 Structures de contrôle
Les tests
Le bloc IF
Le bloc SELECT-CASE
6 Tableaux
Déclaration
Définitions (rang, profil, étendue)
Initialisation
Expressions de type tableau
Sections de tableaux
7 Entrées-Sorties
Introduction
Accès séquentiel
Fichier binaire séquentiel
Fichier texte séquentiel
Accès direct
Fichier binaire
8 Procédures
Arguments
Subroutines
Fonctions
9 Common
L’instruction COMMON
Common blanc
Common étiqueté
Initialisation : BLOCK DATA
Instruction SAVE et COMMON
Règles et restrictions
10 Include