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

Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.3.

Présentations similaires


Présentation au sujet: "Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.3."— Transcription de la présentation:

1 Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.3

2 Langage de programmation Un langage de programmation est une notation utilisée pour exprimer des algorithmes et écrire des programmes. Un algorithme est un procédé pour obtenir un résultat par une succession de calculs, décrits sous forme de pictogrammes et de termes simples dans une langue naturelle.langage de programmationalgorithmes

3 Historique Années 50: Création des langages de haut niveau (plus proches de l'homme). Années 60: Foisonnement de langages spécialisés. Forth. Simula I. Lisp, Cobol. Années 70: Duel entre programmation structurée avec Pascal et l'efficacité du langage C (cela dure encore en 2000). Années 80: Expérimentation d'autres voies et notamment des objets. ML. Smalltalk. Sur les microordinateurs, utilise maintenant C, Pascal, Basic compilé.

4 Historique Années 90: Généralisation de la programmation objet grâce aux performances des microordinateurs. Java, Perl, Python s'ajoutent aux langages micros. Années 2000: Programmation Internet (et les innovations à venir, voir en fin de texte). Années 2010: Concurrence et asynchronisme. Les langages JavaScript, Go, Julia entre autre aident à créer des applications en ligne fluides.

5 Quelque langages de programmation

6 Programme informatique? Un programme informatique est un ensemble d'opérations destinées à être exécutées par un ordinateur.informatiqueordinateur Un programme source est un code écrit par un informaticien dans un langage de programmation. Il peut être compilé vers une forme binaire, ou directement interprété.codeinformaticienlangage de programmationcompilé interprété Un programme binaire décrit les instructions à exécuter par un microprocesseur sous forme numérique. Ces instructions définissent un langage machine.cinstructionsmicroprocesseurnumérique

7 Programme informatique?

8 Le langage machine.

9 Le langage FORTRAN Fortran est un langage de programmation, développé par IBM vers 1955, et destiné a fournir aux scientifiques un moyen simple pour passer de leurs formules mathématiques jusqu'a un programme effectif (son nom est une abréviation de FORmula TRANslator). Fortran est un langage de programmation, développé par IBM vers 1955, et destiné a fournir aux scientifiques un moyen simple pour passer de leurs formules mathématiques jusqu'a un programme effectif (son nom est une abréviation de FORmula TRANslator). Il est très efficace dans le domaine du calcul numérique, et ore de nombreuses bibliothèques de programmes d'analyse numérique. Il est très efficace dans le domaine du calcul numérique, et ore de nombreuses bibliothèques de programmes d'analyse numérique.

10 Le langage FORTRAN Fortran a fait l'objet de plusieurs normalisations : fortran 77, fortran 90 et 95, et plus recemment fortran 2003. Le present document s'interesse aux versions 90/95 (peu dierentes l'une de l'autre).

11 Le langage FORTRAN Structure de programme Un programme source Fortran est composé de parties indépendantes appelées unités de programme (scoping unit) : le programme principal les sous-programmes : de type subroutine de type function les modules les block data

12 Le langage FORTRAN Structure de programme program nom_du_programme « déclaration des variables » « instructions » end program nom_du_programme

13 Le langage FORTRAN Structure de programme

14 Deux format d’écriture : Format Fixe (anciennes version) Format Libre (à partir de la version 90)

15 Le langage FORTRAN Structure de programme Dans le mode les lignes peuvent être de longueur quelconque a concurrence de 132 caracteres. Il est également possible de coder plusieurs instructions sur une même ligne en les séparant avec le caractère ;. Le caractère « ! » indique que ce qui suit est un commentaire Exemple : print *, ' Entrez une valeur :’ ; read *,n

16 Le langage FORTRAN Structure de programme Une instruction peut être codée sur plusieurs lignes : on utilisera alors le caractére. Exemple print *, 'Montant HT :', montant_ht, & ' TVA :', tva, & 'Montant TTC :', montant_ttc

17 Le langage FORTRAN Déclarations & variables Identificateurs Donne un nom à : une variable une constante une procédure

18 Le langage FORTRAN Déclarations & variables Identificateurs Règles à suivre : suite de caractères alphanumériques (lettres non accentuées, chiffres, underscore“_“) une lettre en premier caractère longueur limitée à 31 caractères pas de distinction majuscule/minuscule (case insensitive)

19 Le langage FORTRAN Déclarations & variables Identificateurs Exemples : Atest1AbCdEze_E

20 Le langage FORTRAN Déclarations & variables Identificateurs Exemples (incorrects): 1var test 1 Ab CdE ze-Eprogram

21 Le langage FORTRAN Déclarations & variables Types de données Le type d’une variable détermine : le nombre d’octets à réserver en mémoire un mode de représentation interne l’ensemble des valeurs admissibles l’ensemble des opérateurs qui peuvent lui être appliqués

22 Le langage FORTRAN Déclarations & variables Types de données INTEGER  entier CHARACTER  caractère LOGICAL  deux valeurs,.TRUE. ou.FALSE. REAL  réel simple précision DOUBLE PRECISION  réel double précision COMPLEX  complexe simple précision

23 Le langage FORTRAN Déclarations & variables Exemples de déclaration Les «::» ne sont pas obligatoires INTEGER :: A REAL :: D LOGICAL logi CHARACTER Char!un seul caractère CHARACTER(len=4) chaine!une chaine de 4 caractère COMPLEX z

24 Le langage FORTRAN Déclarations & variables Initialisation et modification Une initialisation pourra s’effectuer à l’aide du symbole « = » Fortran permet d’initialiser une variable lors de sa déclaration Dans ce cas, les caractères :: sont obligatoires

25 Le langage FORTRAN Déclarations & variables Initialisation et modification Exemples: INTEGER :: A=5 REAL D LOGICAL :: logi=.TRUE. CHARACTER Char!un seul caractère CHARACTER(len=4) chaine!une chaine de 4 caractère D=4.5 chaine = ‘abcd’

26 Le langage FORTRAN Déclarations & variables Le type INTEGER (entier): INTEGER :: a,b,c a=-5 c=+10;b=22

27 Le langage FORTRAN Déclarations & variables Le type REAL (Réel): Les constantes de type réel s’écrivent indifféremment suivant l’une des deux notations: Décimale (doit comporter obligatoirement un.) 12.43 -0.38.38 4. -.27 Exponentielle (utilisation de la lettre e, le. peut être absent) 4.25E4 4.25e+4 425e2 0.54e-2 5.4e-3 48e13 48.e13 48.0e13

28 Le langage FORTRAN Déclarations & variables Le type REAL (Réel): En double précision, les constantes s’écrivent obligatoirement sous forme exponentielle en utilisant la lettre d à la place de e. 4.25D4 4.25d+4 425d2

29 Le langage FORTRAN Déclarations & variables Le type COMPLEX (complexe): Pour Fortran, un nombre complexe est un couple de nombres réels. variable = cmplx(variable_r,variable_i) Exemple : complex :: z real :: x,y …… z = cmplx(x,y)

30 Le langage FORTRAN Déclarations & variables Le type CHARACTER (chaine de caractère): Pour déclarer une chaîne de caractères on précise sa longueur. Si elle n’est pas indiquée elle est égale à 1. character[(len= )] [, ] [::] [= ] Longueur: Expression entière ou * (déduction par le compilateur de la longueur)

31 Le langage FORTRAN Déclarations & variables Le type CHARACTER (chaine de caractère): character(len=10) :: nom character :: oui_ou_non character(len=10) :: ville=’sidi bel abbes’ !Tronqué character(len=8) :: payé=’Algérie' !complété à gauche character(len=8) :: capitale='Algérie' character(len=*),parameter :: lang='F90' !auto-détecté

32 Le langage FORTRAN Déclarations & variables Les expressions constantes permet de définir une « constante symbolique », un symbole auquel on attribue une valeur qui ne pourra être modifiée par le programme., parameter :: =, parameter :: = Ici les :: sont obligatoires. Exemple : interger, parameter :: n1=50, n2=120 REAL, parameter:: PI=3.14

33 Le langage FORTRAN Déclarations & variables Les types implicites Fortran 90 ne rend pas obligatoire les déclarations des types des variables. Fortran 90 ne rend pas obligatoire les déclarations des types des variables. Fortran attribue implicitement un type à une variables non définies Fortran attribue implicitement un type à une variables non définies Exemple : integer :: nbre = 5, k …… k = nbr + 1

34 Le langage FORTRAN Déclarations & variables Les types implicites Solution : Supprimer les types implicites On ajoutant l’ instruction IMPLICIT NONE avant la déclaration des variables.

35 ReAl :: x CHARACTER :: name CHARACTER(LEN=10) :: name REAL :: var-1 INTEGER :: 1a BOOLEAN :: loji DOUBLE :: X CHARACTER(LEN=5) :: town = "Glasgow" CHARACTER(LEN=*) :: town = "Glasgow" CHARACTER(LEN=*), PARAMETER :: city = "Glasgow" INTEGER :: pi = +22/7 LOGICAL :: wibble =.TRUE. CHARACTER(LEN=*), PARAMETER :: "Bognor" REAL, PARAMETER :: pye = 22.0/7.0 REAL :: two_pie = pye*2 REAL :: a = 1., b = 2 LOGICAL(LEN=12) :: frisnet CHARACTER(LEN=6) :: you_know = ’y’know" CHARACTER(LEN=6) :: you_know = "y’know" INTEGER :: ia ib ic id DOUBLE PRECISION :: pattie = +1.0D0 DOUBLE PRECISION :: pattie = -1.0E-0 REAL :: poie = 4.*atan(1.)

36 ReAl :: xok CHARACTER :: nameok CHARACTER(LEN=10) :: nameok REAL :: var-1 on ne peut pas avoir « -1 » dans un identificateur INTEGER :: 1a un iden. ne peut pas commencer par un nombre BOOLEAN :: loji type « boolean » n’existe pas : utiliser « logical » DOUBLE :: Xle type correct est « double precision » CHARACTER(LEN=5) :: town = "Glasgow”OK, town=« Glasg » CHARACTER(LEN=*) :: town = "Glasgow” on ne peut pas avoir « len(*) » pour un non-PARAMETER CHARACTER(LEN=*), PARAMETER :: city = "Glasgow” ok INTEGER :: pi = +22/7 OK, la valeur de pi sera 3 car c’est un entier LOGICAL :: wibble =.TRUE.ok CHARACTER(LEN=*), PARAMETER :: "Bognor" Non, pas de nom de variable REAL, PARAMETER :: pye = 22.0/7.0 ok REAL :: two_pie = pye*2 OK si pye est un PARAMETER REAL :: a = 1., b = 2 OK, la valeur de b est 2.0 LOGICAL(LEN=12) :: frisnet Non, pas de LEN dans LOGICAL CHARACTER(LEN=6) :: you_know = ’y’know” problème des délimiteurs CHARACTER(LEN=6) :: you_know = "y’know” ok INTEGER :: ia ib ic id enlever les espaces ou mettre des virgules DOUBLE PRECISION :: pattie = +1.0D0 OK, les « : : » sont obligatoires DOUBLE PRECISION :: pattie = -1.0E-0ok REAL :: poie = 4.*cos(0.3) utilisation interdite de fonctions (cos)

37 Le langage FORTRAN Les expressions et l’instruction d’affectation L’instruction d’affectation se présente sous la forme: =

38 Le langage FORTRAN Les expressions et l’instruction d’affectation Expressions arithmétiques: Addition : + Soustraction : - Multiplication : * Division : / (Pas de division par zéro!) Exponentiation :** (a b  a**b)

39 Le langage FORTRAN Les expressions et l’instruction d’affectation Expression peut faire intervenir des opérateurs comme la division entière, l’exponentiation,… plusieurs opérateurs et, donc, des problèmes de priorité des variables de types différents, ce qui engendre des conversions implicites une variable ayant un type différent du résultat fourni par l’expression engendre des conversions forcées

40 Le langage FORTRAN Les expressions et l’instruction d’affectation Attention!: Le résultat de la division entre deux entiers est un entier (partie entière du quotient exact). 5/2 = 2 7/5 = 1 -8/3 = -2

41 Le langage FORTRAN Les expressions et l’instruction d’affectation Ordre des opérations Exponentiation Multiplication et division (gauche à droite) Addition et soustraction En cas de doute, utiliser les parenthèses! Exemple: 4+ 8/2 vaut 6 ou 8 ?

42 Le langage FORTRAN Les expressions et l’instruction d’affectation Nombres complexes : Opérateurs usuels complex(kind=4) :: z real(kind=4) :: x=0.,y=1. … z = cmplx(x,y) !assignation simple précision (SP) … real(z) !partie réelle imag(z) !partie imaginaire conjg(z) !complexe conjugué abs(z) !module

43 Le langage FORTRAN Les expressions et l’instruction d’affectation Expressions logiques : les comparaisons

44 Le langage FORTRAN Les expressions et l’instruction d’affectation Expressions logiques : opérateurs logiques

45 Le langage FORTRAN Les expressions et l’instruction d’affectation Expressions logiques : opérateurs logiques Chaine de caractère : Extraction de sous-chaine Manipulation d’une partie formée de caractères consécutifs d’une chaîne. Variable_chaine(debut:fin) debut et fin : expression de type integer Si debut absent: 1 par défaut Si fin absent : longueur de la chaîne par défaut

46 Le langage FORTRAN Les expressions et l’instruction d’affectation Expressions logiques : opérateurs logiques Chaine de caractère : Extraction de sous-chaine mot = ‘bonjour’ print *, mot(2:6) print *, mot(:3) print *, mot(4:) mot(2:2) = ‘a’ print *, mot(1:5)  Onjou  Bon  Jour  banjo

47 Le langage FORTRAN Les opérations de lecture et d’écriture Les ordres d’entrée/sortie permettent de transférer des informations entre la mémoire centrale et les unités périphériques (terminal, clavier, disque, imprimante,…)

48 Le langage FORTRAN Les opérations de lecture et d’écriture print *,a

49 Le langage FORTRAN Les opérations de lecture et d’écriture SortieEntrée read(périphérique, format [,options]) liste read format, liste write(périphérique, format [,options]) liste print format, liste

50 Le langage FORTRAN Les opérations de lecture et d’écriture Sortie : Sortie Standard(Ecran) Le * est associé au format de sortie. Le 1 ier * est associé au sortie standard(Ecran). Le 2 ier * est associé au format de sortie. print *, ‘Je suis un texte à afficher’ write(*,*) ‘Je suis un texte à afficher’

51 Le langage FORTRAN Les opérations de lecture et d’écriture Sortie : Sortie Standard(Ecran) Affichage de la valeur dune variable: ou real :: var var = 2.5 Print*, var print *, 'La variable var vaut : ', var

52 Le langage FORTRAN Les opérations de lecture et d’écriture Entrée : Entrée Standard(Clavier) read *, nom read *, prenom read *, age integer age character(len=20) nom character(len=20) prenom read *, nom, prenom, age

53 Le langage FORTRAN Les opérations de lecture et d’écriture Entrée : Entrée Standard(Clavier) D’une manière interactive integer age character(len=20) nom character(len=20) prenom print *, ’Entrez votre nom : ’; read *, nom print *, ’Entrez votre prenom : ’; read *, prenom print *, ’Entrez votre age : ’; read *, age

54 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques Les fonctions mathématiques élémentaires

55 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques abs(a) Fournit la valeur absolue de ( a), de type entier, réel ou complexe. Le résultat est du type de a. Si a est complexe (a = (x; y)), le résultat est de type real et égal à Exemples abs(-7.4) = 7.4 abs((6.0, 8.0)) = 10.0

56 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques imag(z), aimag(z) Fournit la partie imaginaire de z, de type complexe. Le résultat est de type real. Si z = (x; y), le résultat est égal à y. Exemple : aimag((4:0; 5:0)) = 5:0

57 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques int(a) Fournit le résultat de la conversion en entier standard de la valeur de a qui peut être entière (le résultat est alors égal à a), réelle (le résultat est aIors égal à la troncature de a ou complexe (le résultat est alors égal à la troncature de la partie réelle de a). Exemple : int(-4.2) = -4 int(7.8) = 7

58 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques cmplx(x,y) Si y est absent : fournit le résultat de la conversion de la valeur x (de type numérique quelconque, complexe compris) en un complexe standard, Si y est présent : fournit le résultat de la conversion du complexe (x,y) (x et y doivent être de type entier ou réel) dans le type complexe standard. Exemple : cmplx(-3) = (-3.0; 0.0) cmplx(4.1, 2.3) = (4.1, 2.3)

59 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques real(a) Fournit le réel correspondant à a qui peut être de type numérique quelconque (s'il est complexe, on obtient la partie réelle). Exemple : Real(-4) = -4.0

60 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques conjg(z) Fournit le complexe conjugué du complexe z. Exemple : conjg((2.0, 3.0)) = (2.0,-3.0)

61 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques max(a1, a2, a3...) Fournit la valeur maximale des valeurs reçues en arguments (entiers ou réels). Exemple : max(2.0,-8.0; 6.0) = 6.0

62 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques min(a1, a2, a3...) Fournit la valeur minimale des valeurs reçues en arguments (entiers ou réels). Exemple : min(2.0,-8.0; 6.0) = -8.0

63 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques mod(a, p) Fournit la valeur le reste de la division a / p Exemple : mod(7, 3) = 1 mod(9,-6) = 3 Cette fonction est souvent utilisée pour tester si un nombre est pair ou impair. Exemple : mod(4,2) = 0 mod(5,2) = 1

64 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques cos(x) Fournit le cosinus de x pour x réel ou complexe, exprimé en radians. sin(x) Fournit le sinus de x pour x réel ou complexe et exprimé en radians. tan(x) Fournit la tangente de x réel exprimé en radians.

65 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques exp(x) Fournit la valeur de l'exponentielle de x pour x réel ou complexe. log(x) Fournit la valeur du logarithme népérien de x, réel positif ou complexe non nul. log10(x) Fournit la valeur du logarithme à base 10 du réel positif x. sqrt(x) Fournit la valeur de la racine carrée de x, réel positif ou nul ou complexe.

66 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques Les fonctions relatives aux chaînes de caractères

67 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques trim(chaine) Fournit une chaîne obtenue en débarrassant la chaîne chaine de tous ses blancs de n. Exemple : Trim(‘###C##D###’) =‘###C##D’ Le caractère # représente ici un blanc.

68 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques len(chaine) Entier (integer standard) correspondant à la longueur de la chaîne chaine. Exemple : si c a été déclaré comme suit character(15) :: c alors alors len(c) = 15

69 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques len_trim(chaine) Fournit la longueur (type integer standard) de la chaîne chaine débarrassée de ses blancs de n. Exemple : len_trim(‘###C##D###’) = 7 Le caractère # représente ici un blanc.

70 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques adjustl(chaine) Fournit en résultat la chaîne chaine cadrée à gauche, c'est-à-dire débarrassée de tous ses blancs de début (et donc complétée à droite par autant de blancs supplémentaires). Exemple : adjustl(’####summer’) = ’summer####’ Le caractère # représente ici un blanc.

71 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques adjustr(chaine) Fournit en résultat la chaîne chaine cadrée à droite, c'est-à-dire débarrassée de tous ses blancs de n (et donc complétée à gauche par autant de blancs supplémentaires). Exemple : Adjustl(‘summer####’) =‘####summer’ Le caractère # représente ici un blanc.

72 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques index(chaine souschaine, back) Fournit un entier (de type integer standard) correspondant au premier caractère de la chaîne chaine où apparaît la sous-chaîne souschaine (ou la valeur 0 si cette sous-chaîne n'apparaît pas). Si back (de type logical) n'est pas précisé ou s'il a la valeur faux, l'exploration se fait depuis le début de la chaîne ; si back a la valeur vrai, cette recherche se faitdepuis la n de la chaîne (on a donc, en fait, la dernière occurrence de la sous-chaîne). Exemple : Index(‘caractere’,’a’, back =.true.) = 4

73 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques lgt(chaine_a, chaine_b), lge(chaine_a, chaine_b) Fournit la valeur vrai si la chaîne chaine_a apparaît après chaine_b ou lui est égale (dans l'ordre alphabétique donné par la table de caractères). Exemple : lge(‘TWO’,’THREE’) = true

74 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques llt(chaine_a, chaine_b), lle(chaine_a, chaine_b) Fournit la valeur vrai si la chaîne chaine_a apparaît avant chaine_b ou lui est égale (dans l'ordre alphabétique donné par la table de caractères). Exemple : lge(’TWO’;’THREE’) = false

75 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques char(i) Fournit une chaîne de caractères de longueur 1 correspondant au caractère de code ASCII i (entier). Exemple : char(71) =‘G’ char(63) =‘?’

76 Le langage FORTRAN Les fonctions intrinsèques en Fortran 90 Expressions logiques : opérateurs logiques ichar(c) Fournit l'entier (type integer standard) correspondant au code ASCII du caractère c (chaîne de longueur 1). Exemple : ichar(‘Y‘) = 89 ichar(‘%‘) = 37

77 Le langage FORTRAN Expressions logiques : opérateurs logiques Les instructions de contrôle

78 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’intérêt d’un programme provient essentiellement de la possibilité d’effectuer : des choix (comportement différent suivant les circonstances) des boucles (répétition d’un ensemble donné d’instructions)

79 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Fortran 90 est un langage structuré disposant des structures suivantes : choix simple et alternatives « en cascade » avec l’instruction if choix multiple avec l’instruction select case répétition avec l’instruction do.

80 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’instruction IF : Choix simple if ( ) then … ! instructions exécutées si exp_logique est vraie else … ! instructions exécutées si exp_logique est fausse end if la partie introduite par le mot clé else peut ne pas exister on peut écrire end if ou endif

81 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’instruction IF : Choix simple

82 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’instruction IF : Choix simple moyenne=(note1+note2)/2 if (moyenne>=10) then print *, “Etudiant admis avec moyenne de “,moyenne else print *, “Etudiant ajourné avec moyenne de “,moyenne end if

83 Le langage FORTRAN Les instructions de contrôle Expressions logiques : les comparaisons

84 Le langage FORTRAN Les instructions de contrôle Expressions logiques : les comparaisons if (moyenne>=10) then if (age<30) then if (ok==.true.) then ou bien if (ok) then if (ok/=.true.) then ou bien if (.not. ok) then

85 Le langage FORTRAN Les instructions de contrôle Expressions logiques : les comparaisons On peut combiner plusieurs expression logique. On peut combiner plusieurs expression logique. On utilise les opérateurs logiques : On utilise les opérateurs logiques :.and..and..or..or..eqv..eqv..neqv..neqv.

86 Le langage FORTRAN Les instructions de contrôle Expressions logiques : les comparaisons Exemple : si on veut tester si l’utilisateur de notre programme a entrer une note correct(càd ≤ 20 et ≥0): if (note>=0.and. Note<=20) then

87 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques

88 Le langage FORTRAN Les instructions de contrôle ! structure avec ELSE IF IF (i < 0) THEN WRITE *, "négatif" ! ELSEIF sur une même ligne ELSE IF (i > 10) THEN WRITE *, "positif" ELSE WRITE *, "null" END IF ! un seul END IF Alternatives imbriquées if... else

89 Le langage FORTRAN Les instructions de contrôle Alternatives imbriquées if... else if... else

90 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’instruction SELECT CASE : Choix multiple select case ( ) case ( ) bloc case ( ) bloc … case default bloc end select exp_scal : expression scalaire de type INTEGER, LOGICAL,CHARACTER sélecteur : liste composée de 1 ou plusieurs éléments de la forme : valeur valeur intervalle de la forme [valeur1]:valeur2 ou valeur1:[valeur2]

91 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques L’instruction SELECT CASE : Choix multiple integer :: i … select case(i) case(0) … !s’exécute si i=0 case(1,2) … !s’exécute si i=1 ou i=2 case(5:10) … !s’exécute si 5<=i<=10 case(:-1) … !s’exécute si i<=-1 case(3,11:20) … !s’exécute si i=3 ou 11<=i<=20 case default … !s’exécute dans tous les autres cas end select

92 Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Exemple integer :: jour read*,jour select case(jour) case(1) print *, "Dimanche" case(2) print *, "Lundi"... case(7) print *, "Samedi" case default print *, "Numéro de jour incorrect" end select


Télécharger ppt "Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.3."

Présentations similaires


Annonces Google