La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

La programmation en langage Fortran

Présentations similaires


Présentation au sujet: "La programmation en langage Fortran"— Transcription de la présentation:

1 La programmation en langage Fortran
MODULE INFORMATIQUE La programmation en langage Fortran Dr. Djamel Mennouche

2 LES ELÉMENTS DE BASE EN LANGAGE FORTRAN
LES ELÉMENTS DE BASE EN LANGAGE FORTRAN

3 MODULE INFORMATIQUE ***** LES ELÉMENTS DE BASE *****
Eléments de base du langage Fortran 26 lettres de l'alphabet, Chiffres 0 a 9, Caractères spéciaux : Le caractère espace ! * + " < ( = ) > ; % / : - , ? ' . & $ MODULE INFORMATIQUE ***** LES ELÉMENTS DE BASE *****

4 LES CONSTANTES ET LES VARIABLES
LES CONSTANTES ET LES VARIABLES

5 Constantes entières : Constantes réelles : Exemples 140 -43
Une constante présente une suite de chiffres (sans signe ou avec une signe ). Exemples Expression en L-Fortran Expression Mathématique 1 140 -43 Constantes réelles : Constantes réelles simple précision : Une constante réelles simple précision doit obligatoirement comporter : Le point décimal Le caractère E pour la notation en virgule flottante. Remarque 1: Pour les nombres écrits 0.xxxxx, on peut omettre le 0 avant le point décimal. Remarque 2 : Les constantes avec exposant (E) peut comporter 7 chiffres significatifs. MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

6 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****
Exemples EXP INF EXP MATH 0. .1 0,1 1. 1 3.1415 3,1415 31415E-4 Constantes réelles double précision : Une constante double précision doit obligatoirement être écrite en virgule flottante, on remplaçant le E par un D. La partie décimale comportera 15 à 16 chiffres significatifs. Exemples EXP MATH 0D0 0.D0 1.D0 1 3.1415D0 3,1415 31415D-4 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

7 Constantes complexes :
Une constante de type COMPLEX est obtenue en combinant deux constantes réelles entre parenthèses séparées par une virgule. Exemples Expression Mathématique Expression en L-Fortran 2,5 +  3,2i (2.5,3.2) 1 - i (1.,-1.) , i (1.34e-3, 4.89e-4) Constantes chaînes de caractères  : Une constante chaînes de caractères est une suite de caractères encadrée par l’apostrophe ' ou bien ". : Exemples : 'La somme des n premiers entiers est : ' 'l''écoulement d’un fluide : ' "l' écoulement d’un fluide : " MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

8 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Constantes Logiques: Une constante logique n'a que deux valeurs possibles : .TRUE. Ou .FALSE. Les Variables Les variables simples : Variables entières Variable Réelles (Simple et double précision) Variable Complexes Variable Chaine de Caractères Variable logiques Les variables indicées (Tableaux) : On représente une variable indicée ou un tableau par un identificateur, suivi d'indices placés entre parenthèses et séparés par des virgules : Exemple : TABLE(I,J) , A(I) MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

9 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****
Déclaration des constantes Une constante est déclarée par l’instruction PARAMETER Exemple : PARAMETER (PI= d0, RTOD=180.d0/PI) : PARAMETER :: PI= d0, RTOD=180.d0/PI Déclaration des Variables Déclaration des variables simples : Integer : pour les variables entières Real : pour les variable réelles simple Double precision : pour les variable double précision Complexe : pour les variable Complexes Character : pour les variable Chaine de Caractères Logical : pour les variable logiques Exemples : integer a,b,c,d - real mat,m - double precision mat,dm integer :: a,b,c,d character *20 nom,prenom - Character (Len=20) nom,prenom CHARACTER*8 NOM1, NOM2, ORIGIN*15, NOM3 DOUBLE PRECISION, PARAMETER :: epsilon = 1.d-3 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

10 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****
Déclaration des variables indicées (Tableaux) : DIMENSION Exemples : DIMENSION ELEM(20,20), X(20) DIMENSION (20) :: A, B N=20 DIMENSION A(N,N) 3. REAL A DIMENSION A(50) REAL, DIMENSION(100) :: R MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

11 LES OPÉRATEURS

12 Les opérateurs arithmétiques :
Opération Exemple Interprétation + addition A + B ajoute l’opérande B à l’opérande A - soustraction A - B Soustrait B à A * multiplication A * B multiplie A par B / division A  / B A divisé e par B ** Puissance A ** B élève A à la puissance B Les opérateurs relationnels : Opérateur Opération .LT. ou < strictement plus petit .LE. ou <= inférieur ou égal .EQ. ou == égal .NE. ou /= non égal .GT. ou > supérieur .GE. ou >= supérieur ou égal MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

13 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Les opérateurs logiques : Opérateur Opération .NOT. négation logique .AND. conjonction logique .OR.. disjonction logique .EQV. équivalence logique . NEQV. non équivalence logique Remarque : les opérandes doivent être des expressions de type logical Les opérateurs de concaténation : Expression Interprétation C1// C2 Concatène C1 avec C2 Remarque : L’opérateur de concaténation n’admet que des expression de type caractère. Exemple : Write(*,*) ‘bon’ // ‘jour ‘ MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

14 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Opérateur d’affectation : Syntaxe générale : Variable = Expression Expression : est une expression arithmétique, logique ou relationnelle (comparaison) Exemple : Deltat = B**2-4*A*C , Z= E.OR.F.AND.G Remarques: Une valeur de type CHARACTER ne peut pas être affectée à une variable numérique ou vis-versa. 2. Une valeur de type INTEGER peut être affectée à une variable de type REAL. 3. Une variable de type REAL peut également être affectées à une variable . INTEGER mais dans ce cas, la valeur est tronquée en supprimant la partie fractionnaire. Expression Interprétation X = 5 X = 5.0 N = 0.999 N=0 M = M=-1 Exemple : MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

15 Priorité des opérateurs (Ordre d’évaluation)
Dans le tableau suivant, les opérateurs sont donnés par ordre de priorité décroissante : Numéro Opérateur 1 ** 6 .NOT. 2 * et / 7 .AND. 3 + et - 8 .OR. 4 // 9 .EQV. et .NEQV. 5 <, <=, =, /= ,>,>= Remarques : En cas d’égalité de priorité, les opérations sont effectuées de la gauche vers la droite sauf pour l’exponentiation qui est effectuée de la droite vers la gauche MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

16 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Exemple : Real a,b,c,d Logical e,f,g Expression Interpretation 2**3**2 2 ** 3**2 = 515 5+4.*9.**2 5 + 4.* 9**2 E.OR.F.AND.G E .OR. F.AND.G A/B*C A/B * C A/B/C A/B / C MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

17 Les expressions arithmétiques Les expressions logiques :
une expression arithmétique est formée d’une suite de constante, des variables simples et des variables indicées, d’appels de fonction à valeur numérique et des opérateurs, elle peut contenir des virgules, des parenthèses, et des fonctions incorporées. Exemple : B**2-4*A*C Les expressions logiques : Les expressions logiques ne peuvent prendre que deux valeurs, vrai ou faux (.TRUE. et .FALSE.) Les opérandes d’une expression logique sont des variables constante, fonction à valeur logique ainsi que des expressions de comparaisons. Exemple : E.OR.F.AND.G MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

18 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Les tables de vérité : I 1 I 2 I1.AND. I2 I1.OR. I2 .TRUE. .FALSE. I .NOT. I .TRUE. .FALSE. I 1 I 2 I1.EQV. I2 I1.NEQV. I2 .TRUE. . FALSE. .FALSE. MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

19 Les fonctions numériques standards :
On peut citer les plus usuelles: SIN sinus SIN(30.) =-0.988 COS cosinus COS (30.) = 0.154 ALOG logarithme népérien ALOG (30.) = 3.401 EXP exponentielle EXP(30.)=1.06 SQRT racine carrée SQRT (30.)=5.477 ATAN arc tangente ATAN (30.)=1.537 TANH tangente hyperbolique TANH (30.)=1. ABS valeur absolue d'un réel ABS(-44.)=44. IABS valeur absolue d'un entier IABS(-44)=44 FLOAT convertit d'entier à réel FLOAT(45)=45. IFIX convertit de réel à entier IFIX (1.52)=1 CHAR conversion du code ASCII en caractère CHAR ('0') = 48 ICHAR conversion inverse de la précédente ICHAR(48)=O NINT fonction arrondi NINT (1.52)=2 MOD fonction modulo MOD (8.,3.)=2. MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

20 MODULE INFORMATIQUE ***** LES OPÉRATEURS *****
Exemples : X1 = (-B + SQRT( B**2 - 4*A*C))/(2*A) real a,b read(*,*) a,b print*, sin(a) print*, ALOG(a) print*, EXP(a) print*, SQRT(a) print*, ATAN(a) print*, TANH(a) print*, ABS(a) print*, IFIX(a) print*, NINT(a) print*, MOD(a,b) end MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

21 Les INSTRUCTIONS : DE BRANCHEMENT Itératives
Les INSTRUCTIONS : entrées – Sorties sans formats en Format libre DE BRANCHEMENT Itératives

22 * Read (i,*) listes ou bien Read i, listes Instructions de lecture :
sa syntaxe est : Read (i,*) listes ou bien Read i, listes i Est une constante ou une variable simple indiquant le numéro de l’unité périphérique à utiliser Exemple : pour le clavier i=5 ou bien i = *. Cette constante varie entre 1 et 99 * Symbole utilisé dans le cas de lecture en format libre Listes Listes des variables simples, indicées, caractères … séparées par des virgules Exemple : Read (*,*) a,b,c ou bien Read*,a,b,c Les entrées - Sorties

23 * Write (i,*) listes ou bien Print i, listes Instructions d’écriture :
sa syntaxe est : Write (i,*) listes ou bien Print i, listes i Est une constante ou une variable simple indiquant le numéro de l’unité périphérique à utiliser Exemple : pour l’écran i=6 ou bien i = * * Symbole utilisé dans le cas de lecture en format libre Listes Listes des variable simples, indicées, caractères … séparées par des virgules Exemple : Write (*,*) X1,X2 ou bien Print *, X1,X2 Les entrées - Sorties

24 Les opérations d’Entrées -Sorties :
Les opérations d’entrées : une opération d’entrée consiste à lire sur un organe périphérique et à affecte les valeurs contenue dans cette enregistrement aux variables d’une listes Les opérations de sortie : une opération de sortie consiste à placer les valeurs des variable d’une liste dans un enregistrement et à écrire sur un support externe (écran – imprimante ) Les entrées - Sorties

25 Les instructions de branchement LES INSTRUCTIONS DE BRANCHEMENT
Définition : Une instruction de branchement permettant d’interrompre l’ordre séquentielle de l’exécution d’une instruction de programme, on se branchent vers un autre séquentielle situer plus haut ou plus bas. Branchement inconditionnel (GOTO) Permis de se brancher d’un endroit du programme vers un autre endroit Sans aucun condition, sa syntaxe est de la forme suivante: GOTO n n : étiquette de l’instruction ou on doit se brancher LES INSTRUCTIONS DE BRANCHEMENT

26 If (EXP logique) instruction
Branchement avec condition Permis de se brancher d’un endroit du programme vers un autre endroit Avec condition, il existe plusieurs types : IF logique Elle s’écrit sous la forme suivante If (EXP logique) instruction Si l’expression logique est vraie on exécute l’instruction qui suivre puis on continue Si l’expression logique est fausse le programme continue on séquence sans exécuté l’instruction qui suit l’expression logique LES INSTRUCTIONS DE BRANCHEMENT

27 LES INSTRUCTIONS DE BRANCHEMENT
EXEMPLE write(*,*)'entrez les valeures de A,B et C' read(*,*) a,b,c deltat=b**2-4*A*C if(deltat<0) write(*,*)'pas de solution' if(deltat==0) goto 30 goto 20 30 x=-b/(2*A) write(*,*) 'X=',x if(deltat>0) goto 10 goto 40 10 x1=(-b-sqrt(deltat))/(2*A) x2=(-b+sqrt(deltat))/(2*A) write(*,*)'X1=',x1 write(*,*)'X2=',x 40 end EXP LOG n’est pas vraie EXP LOG vraie Instruction exécutable Instruction non exécutable LES INSTRUCTIONS DE BRANCHEMENT

28 If (variable ou expression arithmétique) n1,n2,n3
IF Arithmétique Elle s’écrit sous la forme suivante If (variable ou expression arithmétique) n1,n2,n3 Si la valeur du variable ou expression arithmétique est négative aller à l’étiquette n1 Si la valeur du variable ou expression arithmétique est nulle aller à l’étiquette n2 Si la valeur du variable ou expression arithmétique est positive aller à l’étiquette n3 LES INSTRUCTIONS DE BRANCHEMENT

29 LES INSTRUCTIONS DE BRANCHEMENT
EXEMPLE write(*,*)'entrez a b c' read(*,*) a,b,c deltat=b**2-4*a*c if(deltat) 10,20,30 10 write(*,*)'pas de solution' goto 50 20 x=-b/(2*a) write(*,*)'X=',X 30 X1=-b-sqrt(deltat)/(2*a) X2=-b+sqrt(deltat)/(2*a) write(*,*)'X1 et X2=',X1,X2 End EXP ARIT < 0 EXP ARIT = 0 EXP ARIT > 0 LES INSTRUCTIONS DE BRANCHEMENT

30 Si la condition est vraie on exécute le traitement 1
IF Structurée Elle s’écrit sous la forme suivante If (Condition) Then Traitement 1 Else Traitement 2 End IF Si la condition est vraie on exécute le traitement 1 Si la condition est fausse on exécute le traitement 2 Remarque : Traitements 1 et 2 peuvent être plusieurs instructions LES INSTRUCTIONS DE BRANCHEMENT

31 X1=-b-sqrt(deltat)/(2*a) X2=-b+sqrt(deltat)/(2*a)
EXEMPLE Condition vraie write(*,*)'ENTREZ A B C' read(*,*) a,b,c deltat=b**2-4*a*c if(deltat.gt.0) then X1=-b-sqrt(deltat)/(2*a) X2=-b+sqrt(deltat)/(2*a) write(*,*)'X1 et X2=',X1,X2 else if(deltat.eq.0) then x=-b/(2*a) write(*,*)'X=',X write(*,*)'pas de solution' end if end Instructions non exécutables Instructions exécutables Condition Fausse Instructions non exécutables Instructions exécutables LES INSTRUCTIONS DE BRANCHEMENT

32 Les instructions Itératives
La boucle Do Elle s’écrit sous la forme suivante Do n I=n1,n2,n 3 BLOC d’instructions n Continue Do I=n1,n2,n 3 BLOC d’instructions End Do n: l’étiquette de la dernière instruction de la boucle Do I: Variable de contrôle (Variable simple entier) n1 : Valeur initiale de I et n2 : Valeur finale de I n3 : pas d’incrémentation Remarque : Si le pas n’ést pas spécifier il est considéré égale à 1 LES INSTRUCTIONS ITERATIVES

33 LES INSTRUCTIONS ITERATIVES
EXEMPLE write(*,*)'entrez n' read(*,*)n som=0 do i=1,n som=som+i end do write(*,*)'somme=',som end i=1+1 i=1 som= 1+2 som= 1 oui i<n non LES INSTRUCTIONS ITERATIVES

34 LES INSTRUCTIONS ITERATIVES
Remarques Il ne faut jamais modifier la valeur de la variable I à l’intérieur de la Boucle DO. Il est interdit de se brancher directement à l’intérieur d’une boucle. Exemple Goto 10 Do I=1,10,2 ---- 10 s=s+2 ----- End do end Interdit LES INSTRUCTIONS ITERATIVES

35 3. Il est possible de sortir d’une boucle DO par IF ou
Exemple Do 2 I=1,n …….. IF ((A-2)<0) goto 2 IF ((A-B)==0) goto 6 2 Continue 6 Write(*,*) B Possible LES INSTRUCTIONS ITERATIVES

36 Do While Expression Logique
La boucle Do While Elle s’écrit sous la forme suivante Do While Expression Logique Bloc d’instructions End do som=0 I=1 do while (i<20) som=som+i I=i+1 end do write(*,*)'somme=',som end LES INSTRUCTIONS ITERATIVES

37 Les INSTRUCTIONS : SELECT CASE WHERE FORALL STOP - PAUSE - DATA
Les INSTRUCTIONS : SELECT CASE WHERE FORALL STOP - PAUSE - DATA

38 L’instruction SELECT CASE
Cette instruction permet de faire un choix multiple entre différents blocs d’instructions à réaliser La syntaxe générale est la suivante Nom : SELECT CASE (expression) CASE (Choix 1) nom ……… CASE (Choix 2) nom CASE DEFAULT nom END SELECT nom Expression peut être une variable de type caractère, entier, ou logique L’ INSTRUCTION SELECT CASE

39 L’ INSTRUCTION SELECT CASE
Exemple Integer :: i Read*,i Select case (i) Case (o) Print*, ‘Bonjour vous êtes en retard’ Case(1) Print*, ‘Votre RDV sera le dimanche à 8h’ Case default Print*,’Merci’ End select end L’ INSTRUCTION SELECT CASE

40 L’ INSTRUCTION SELECT CASE
Exemple Character(len =25) :: pays Read*,pays Langue : Select case (pays) Case ('France',‘Quebec',‘Suisse',‘Belgique') Print*, 'Bonjour' Case('rayaume_uni','usa') Print*, 'Hello' Case default Print*,'Langue pas disponible' End select langue end L’ INSTRUCTION SELECT CASE

41 WHERE (Expression Logique)
L’instruction WHERE La syntaxe générale est la suivante WHERE (Expression Logique) Traitement 1 ELSEWHERE Traitement 2 End WHERE L’instruction FORALL La syntaxe générale est la suivante Nom : FORALL (Bloc de contrôle , Bloc de contrôle, Filtre) Bloc END FORALL Nom LES INSTRUCTIONS WHERE -FORALL

42 LES INSTRUCTIONS WHERE -FORALL
Le bloc de contrôle est une commande sur les indices d’un ou plusieurs tableaux FORALL permet de combiner DO et IF en une seule instruction Exemple Real mat1,mat2 dimension MAT1(20,20),Mat2(20,20) read*,n do j=1,n do i=1,n Read*,MAT1(i,j) end do FORALL (i=1:n,j=1:n,mat1(i,j)>0) Mat2(i,j)=(mat1(i,j))/2. End FORALL print*,MAT2(i,j) end LES INSTRUCTIONS WHERE -FORALL

43 Les instruction STOP et PAUSE LES INSTRUCTIONS STOP -PAUSE
La syntaxe générale de ces deux instructions est la suivante STOP ou bien STOP C PAUSE ou bien PAUSE C C : est une constante, soit caractère, soit entier positif de 1 à 5 chiffres. L’ instruction STOP met fin à l’exécution du programme L’ instruction PAUSE à pour rôle d’affiché un message et de suspendre l’exécution du programme Exemple som=0 I=1 pause 'Arrêter l_exécution' do while (i<20) som=som+i I=i+1 end do stop 'fin de l_exécution' write(*,*)'somme=',som end LES INSTRUCTIONS STOP -PAUSE

44 V1,V2… Vn : Variables à initialiser et C1,C2…Cn : Constantes .
L’ instruction DATA Le rôle de DATA est d’alléger le programme et à éviter de faire plusieurs affectations, sa syntaxe est : DATA V1,V2,V3…Vn/C1,C2,C3…Cn/ V1,V2… Vn : Variables à initialiser et C1,C2…Cn : Constantes . REMARQUE : Dans le cas ou nous avons plusieurs constantes identique successive, il est préférable d’utiliser un facteur de répétition. Exemple A=1 B=1 C=3 Deltat = B**2-4*A*C Print *,deltat End DATA A,B,C/1,1,3/ Deltat = B**2-4*A*C Print *,deltat End DATA A,B,C/2*1,3/ Deltat = B**2-4*A*C Print *,deltat End L’ INSTRUCTION DATA

45 entrées – Sorties avec formats
Les INSTRUCTIONS : entrées – Sorties avec formats ( Format imposée )

46 f Format (liste de spécification)
La syntaxe générale du format est : f Format (liste de spécification) f : est l’étiquette qui figure dans l’instruction read ou write Les spécificateurs : il existe plusieurs type de spécificateurs entrées – Sorties avec formats

47 entrées – Sorties avec formats
La spécification I : Utilisée pour l’entrée ou la sortie d’entier La spécification F : Utilisée pour l’entrée ou la sortie de réels sans exposant. La spécification E : Utilisée pour l’entrée ou la sortie de réels avec exposant. La spécification D : Utilisée pour l’entrée ou la sortie de réels en double précision. entrées – Sorties avec formats

48 entrées – Sorties avec formats
La spécification A : Permet la lecture et l’écriture de chaine de caractère. La spécification X : insertion de blancs (sortie) et saut de colonnes en entrée. La spécification H : Sert à la création d’un texte. La spécification / : Passage à la ligne suivante. entrées – Sorties avec formats

49 En lecture : la variable sera lue sur w colonnes. Les blancs
La spécification I Sa forme est: Iw w : est une constante entière, représente le nombre total de caractère occupé par la quantité à entrer ou à sortir En lecture : la variable sera lue sur w colonnes. Les blancs sur le support d’entrée considéré comme des zéros. Exemple 1 : Si la variable I à pour valeur 1234, sa représentation sera : Format représentation I I I entrées – Sorties avec formats ENT

50 entrées – Sorties avec formats
Exemple 2 : Si une variable pour valeur , et cette ligne est lire par : Read(*,66) i,j,k,l,m,n 66 Format (I4, I5,I3,I5,I3,I1) En mémoire on aura : I=1250 J= K=002 L=95063 M=250 N=2 entrées – Sorties avec formats

51 entrées – Sorties avec formats
EN SORTIE : Cas N°1 Si w est trop petit et ne permet pas d’imprimé tout les chiffres significatifs le nombre sera remplacer par w(*) Exemple I=2500 write(*,70) i Format (I2) ** entrées – Sorties avec formats

52 entrées – Sorties avec formats
EN SORTIE : Cas N°2 Si w est plus grand, on complète à gauche par des blancs pour occupé les w positions. Exemple 1 I=2500 write(*,70) i Format (I10) Exemple 2 K=-21225 write(*,70) K,K,K Format (I4,I6,I8) **** entrées – Sorties avec formats

53 La spécification F Sa forme est : Fw.d w et d: sont des constantes entières, représentent respectivement le nombre total de caractères occupés par la quantité à entrer ou à sortir(blancs, signe et point compris), et le nombre de chiffres après le point décimal Exemple write(*,10) A,B Format (F5.2,F6.1) entrées – Sorties avec formats

54 LES INSTRUCTIONS DE BRANCHEMENT
La spécification A Sa forme est : Aw W : le nombre de caractères à lire ou à écrire Exemple CHARACTER*6A,B*5 A='ABCDEF' B='HKLMN' write(*,10) A,B Format (A2,A10) end AB-----HKLMN LES INSTRUCTIONS DE BRANCHEMENT

55 wX La spécification X W : est un constante entière non signé
Sa forme est: wX W : est un constante entière non signé Exemple : Soit i et j deux entiers telque : I=1234 et J=5678 read(*,1) i,j 1 Format (I4,3x,i4) WRITE(*,2) i,j 2 Format (I2,4x,i4) END Entrée : Sortie : ** entrées – Sorties avec formats

56 entrées – Sorties avec formats
La spécification H Sa forme est : wH texte W : (W>0) indique la langueur du texte qui suit La lettre H Exemple : A=13.7 write(*,1) A 1 Format (16Hla valeur de A = ,F7.1) la valeur de A = entrées – Sorties avec formats

57 entrées – Sorties avec formats
La spécification / Exemple : K=-125 write(*,1) K,K,K,K 1 Format (I5/I3/I8//I5) ère ligne *** 2ème ligne ème ligne ème ligne entrées – Sorties avec formats

58 Les sous programmes

59 Introduction Les tâches principales d’un sous programme sont :
Un sous programme est un programme complet et indépendant qui peut être utilisé ou appelé par le programme principale ou d'autre sous programme Les tâches principales d’un sous programme sont : Programme principale S/ PROG2 S/ PROG1 Reçoit les valeurs du programme appelons Effectue des calculs Revois les résultats des calculs Les sous progRammes – fonction et subroutine

60 Le sous programme fonction
il existe deux catégories des sous programme : Le sous programme fonction Le sous programme subroutine Les sous progammmes – fonction et subroutine

61 Function nom (par1, par2 …, parn)
Le sous programme fonction : sa syntaxe est : Function nom (par1, par2 …, parn) Nom Nom de la fonction par1,par2…,parn Variables simple ou indicées Les sous progammmes – fonction et subroutine

62 Les sous progammmes – fonction et subroutine
Remarques : 1 Le nom de fonction doit figuré ou mois une fois dans le corps de sous programme, soit à gauche du signe ‘=‘,ou bien dans la liste des variables à lire dans le sous programme 2 La dernière instruction d’un sous programme fonction doit être l’instruction END 3 La dernière instruction exécutable doit être RETURN, cette instruction transmet le résultat numérique de la fonction au programme qui lui fait appel ainsi que le retour à ce programme 10 cm Les sous progammmes – fonction et subroutine

63 Appelle du sous programme Fonction
Un sous programme fonction est appeler par l’utilisation de son nom dans une expression arithmétique : Arg1, Arg2 …, Argn : Variables simples et peuvent être des constante et des variables indicées. Il est important que les arguments correspond en nombre, genre, et dimension à la liste des paramètres. Nom (Arg1, Arg2 …, Argn) Les sous progammmes – fonction et subroutine

64 Les sous progammmes – fonction et subroutine
EXEMPLE Function som (X, Y, Z) Som = X+Y+Z Return End Les sous progammmes – fonction et subroutine

65 Les sous progammmes – fonction et subroutine
EXEMPLE 2 X1 = 1.25 X2 = 2.5 X3 = 5. S = Som(X1,X2,X3) Write(*,*) ‘s=‘,s End Function som (X, Y, Z) Som = X+Y+Z Return P. P x1 = x= 1.25 x2 =y= 2.5 x3 =z= 5. S.P Les sous progammmes – fonction et subroutine

66 Déclaration du sous programme fonction
Elle doit se faire obligatoirement ou moins à deux endroits Dans le sous programme sous la forme : Type function nom (Par1,Par2,…Parn) Exemple : integer function som(x,y,z) Dans le programme principale sous la forme: Type Nom Exemple : Integer som Les sous progammmes – fonction et subroutine

67 Le sous programme subroutine : Nom par1, par2 …, parn
sa syntaxe est : Subroutine nom (par1, par2 …, parn) Nom Nom du S.P subroutine par1, par2 …, parn Variables simples ou indicées, constantes Les sous progammmes – fonction et subroutine

68 Appelle du sous programme subroutine
L’appel d’un sous programme subroutine se fait par l’ordre CALL sous forme suivant: Arg1, Arg2 …, Argn : Variables simples et peuvent être des constantes et des variables indicées Call nom (Arg1, Arg2 …, Argn) Les sous progammmes – fonction et subroutine

69 Les sous progammmes – fonction et subroutine
EXEMPLE 3 PROG PRINCIPALE integer z n=2 Call clim(n) Z=n+2 Call clim(z) End SOUS PROG SUBROUTINE Subroutine clim(n) Integer i,n Do i=1,n Write(*,*) ‘il fait beau’ End do Return n=2 z=4 IL FAIT BEAU IL FAIT BEAU Les sous progammmes – fonction et subroutine

70 Les sous progammmes – fonction et subroutine
EXEMPLE 4 Prog P Dimension tab(20) Do i=1,20 Read(*,*) tab(i) End do Call imp(tab,20) End Prog subroutine subroutine imp(a,n) dimension a(n) Write(*,*) (a(i), i=1,n) Return Les sous progammmes – fonction et subroutine

71 Les sous progammmes – fonction et subroutine
EXEMPLE 5 Programme Principale Calcul de la somme de 1/n! Read(*,*) n Som=0 Do i=1,n Som = som + 1./fact(i) End do Write(*,*) som End Sous Programme function fact(k) Fact=1 Do j=1,k Fact =fact * j Return Les sous progammmes – fonction et subroutine

72 Les fICHIERS

73 Les instructions d’ouverture d’un fichier
Introduction Un fichier est un composé d’un ensemble d’enregistrement designer par un nombre naturel appelé numéro d’unité logique Un fichier avant qu’il soit utilisé il faut l’ouvrir par l’instruction Open sous la forme : Les instructions d’ouverture d’un fichier Open (n, Liste) n : Constante ou variable entière, représente le numéro d’unité logique Liste: suite d’option du genre ‘mot clé’, représente des expressions séparées par des virgules Les Fichiers

74 Différentes types d’options :
File = ‘nom’ nom : nom du fichier qui présente une chaine de caractère sous forme d’une constante ou d’une variable EXEMPLE Open (5, file = ‘resultat.dat’ ) Les Fichiers Les sous progammmes – fonction et subroutine

75 New Old Unknown 2. Status = ‘Expression’
Le fichier existe déjà New Le fichier n’existe pas, il est crier Unknown Si le fichier existe déjà, il est utilisé, si non il est crier Exemple : Open (5, file = ‘resultat.dat’ , Status = ‘new’) Les Fichiers

76 Fermeture d’un fichier
La fermeture d’un fichier se fait par l’instruction close sous forme suivant Close(n) Cette instruction permet de rompre le lien entre l’unité logique et le fichier physique associer en provoquant un déconnection de l’unité logique et fermeture de fichier physique Les fichies

77 Les Entrées-Sorties dans un fichier
Ecriture dans un fichier Read(n,m) Liste var Lecture dans un fichier Write(n,m) Liste var n : Unité Logique m : étiquette pour une format imposée ou bien * pour une format libre Les Fichiers Les sous progammmes – fonction et subroutine

78 Exemple Ecrire un programme qui affiche 20 éléments d’un tableau dans un fichier Dimension A(20) Open(10,file = affichage.dat’,status=‘unknown’) Do i = 1,20 Read(*,*) A(i) End do Write(10,*)(a(i),i=1,20) Close(10) end Les Fichiers

79 Merci pour votre attention


Télécharger ppt "La programmation en langage Fortran"

Présentations similaires


Annonces Google