La programmation en langage Fortran

Slides:



Advertisements
Présentations similaires
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Advertisements

Un survol du language C.
C++ Les fonctions. Présentation Utilité : Dès qu'un programme dépasse la centaine de lignes de code, il est pratique de pouvoir le décomposer en plusieurs.
1 Chapitre 2 La numération binaire. 2 Chapitre 2 : La numération binaire Introduction 1 - Le système binaire 2 - La conversion des nombres entiers 2.1.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Tableaux et Pointeurs Chaînes de Caractères Programmation Impérative II.
1- Introduction 1ère partie Le langage SQL 2- Connexion 3- Structure & Contenu 4- Requêtes.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Fonctions ● Namespace ● Tests ● Boucles ● Pointeurs, références.
1 Programmation en C++ C++ de base ● Programme C++ ● Variables, objets, types ● Types et opérations fondamentales ● Tests ● Boucles ● Pointeurs, références.
Tableaux en C Mardi 2/05.
Le Langage JavaScript pour le web
>>> Amphi Python
Synthèse TP 2 Codeblock 1 Les objectifs de ce tp sont :
Ajouter le code dans une page html
Les tableaux différencier les variables simples des variables indicées (ordonnées et numérotées) un identificateur unique désigne un ensemble, une collection.
Les Instructions Itératives (Les Boucles)
Introduction au Langage Pascal
Représentation des nombres réels
Quelques Termes INFORMATIQUE ? ORDINATEUR ( Système Informatique)?
Chapitre 1 nombres, chaînes de caractères, booléens, et VARIABLES
Algorithmiques Abdelbasset KABOU
« Un langage de programmation est une convention pour donner des ordres à un ordinateur. Ce n’est pas censé être obscur, bizarre et plein de pièges subtils.
Pointeurs et langage C.
Opérateurs Toute donnée informatique est stockée en mémoire sous la forme d'une combinaison de bits (mot machine). Les opérateurs bits permettent de modifier.
Algorithmique et programmation de modèles numériques
Instructions de contrôle
Semaine #1 INF130 par Frédérick Henri.
Représentation de l’information en binaire:
Collecte de données CAPI
AO (Architecture des ordinateurs)
Principes de programmation (suite)
Les fonctions.
Les fonctions.
L’Instruction de Test Alternatif
Algorithmiques Abdelbasset KABOU
Matrices, déclaration en CSharp
Session 1 31 mai 2017 Plateforme ICONICS Justine Guégan
SIF-1053 Architecture de ordinateurs
Langages de programmation TP3
Fonctions Logiques & Algèbre de BOOLE
Codage et Représentation de l’Information
Week 1 Lecture 1 Introduction à R L3PRO 2017.
L E C ORPS D ’ UN A LGORITHME / P ROGRAMME – L A PARTIE I NSTRUCTION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie.
L’I NSTRUCTION DE T EST A LTERNATIF Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira, Bejaia Année.
L ES I NSTRUCTIONS I TÉRATIVES (L ES B OUCLES ) Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université A.Mira,
Science du traitement rationnel de l'information
Les tableaux.
Programmation en C++ C++ de base
PROGRAMMATION ET ENSEIGNEMENT
Calcul Scientifique Initiation à SCILB
Eléments de base du langage C
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
2 Copyright © 2004, Oracle. Tous droits réservés. Restreindre et trier les données.
Chapitre 1: introduction à Matlab
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
1)Déclaration des variables (integer, real,..) 2) Instructions exécutables et non exécutables 3) Stop 4) End 5) Déclaration des sous programmes type Fonction.
Sylvie DELAËT 2002 Architecture des machines Bienvenus en Amphi d’Architecture des Machines.
Chapitre 3: Les scriptes
Définition : 2 Les structures de contrôle conditionnelles permettent à un programme de modifier son traitement en fonction d’une condition.
PROGRAMMATION ET ENSEIGNEMENT
1 Architecture des ordinateurs Généralités. 2 Définition Informatique = Information + Automatique Ce terme a été introduit en France. Il est très répandu.
Opérateurs et fonctions arithmétiques Opérateurs de relation Opérateurs logiques Cours 02.
Chapitre 2 : Représentation de l’information dans la machine Introduction Représentation des nombres négatifs –Signe / valeur absolue –Complément à 1 –Complément.
L.P.M Chapitre N°3 Les structures de contrôle itératives Dégager le traitement itératif Problème Nombre d’itération ?? Inconnu à l’avance Connu à l’avance.
Analyse et programmation langage ADA
Introduction à L’Informatique
Python Nicolas THIBAULT
Eléments de base du langage C
Type Tableau Partie 1 : Vecteurs
Codification et représentation de l’information Enseignant: Mahseur mohammed Groupe FB: mi2016ua1 Chaine YT: Cours informatique.
Transcription de la présentation:

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

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

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 *****

LES CONSTANTES ET LES VARIABLES   LES CONSTANTES ET LES VARIABLES

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 *****

MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES ***** Exemples EXP INF EXP MATH 0. .1 0,1 1. 1 3.1415 3,1415 31415E-4 31415. 10-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 31415. 10-4 MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES *****

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.) 1.34.10-3+4,89.10-4i (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 *****

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 *****

MODULE INFORMATIQUE ***** LES CONSTANTES ET LES VARIABLES ***** Déclaration des constantes Une constante est déclarée par l’instruction PARAMETER Exemple : PARAMETER (PI=3.14159265d0, RTOD=180.d0/PI) : PARAMETER :: PI=3.14159265d0, 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 *****

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 *****

LES OPÉRATEURS

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 *****

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 *****

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 = -1.988 M=-1 Exemple : MODULE INFORMATIQUE ***** LES OPÉRATEURS *****

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 *****

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 *****

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 *****

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 *****

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 *****

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 *****

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

* 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

* 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

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

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

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

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 20 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 I4 1234 I5 1234 I8 1234 entrées – Sorties avec formats ENT

entrées – Sorties avec formats Exemple 2 : Si une variable pour valeur 125---320--29506325-26 , 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= 00320 K=002 L=95063 M=250 N=2 entrées – Sorties avec formats

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 70 Format (I2) ** entrées – Sorties avec formats

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 70 Format (I10) ------2500 Exemple 2 K=-21225 write(*,70) K,K,K 70 Format (I4,I6,I8) ****-21225---21225 entrées – Sorties avec formats

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 10 Format (F5.2,F6.1) entrées – Sorties avec formats

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 10 Format (A2,A10) end AB-----HKLMN LES INSTRUCTIONS DE BRANCHEMENT

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 :1234---5678 Sortie : **----5678 entrées – Sorties avec formats

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 =---13.7 entrées – Sorties avec formats

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

  Les sous programmes

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

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

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

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

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

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

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

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

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

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

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

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

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

  Les fICHIERS

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

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

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

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

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

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

Merci pour votre attention