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

Slides:



Advertisements
Présentations similaires
Premier programme en C :
Advertisements

La boucle for : init7.c et init71.c
Introduction a L’algorithme
Calculs de complexité d'algorithmes
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Algorithmique Résume.
C.
5. Les structures répétitives
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
INTRODUCTION A MATLAB ENVIRONNEMENT MATLAB.
Les bases de l’Algorithmique
Partie 1 Etude de l'existant
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Démarche de résolution de problèmes
Algorithmique et Programmation
Expressions et assignations
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Introduction à la programmation (Java)
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Semaine #1 INF130 par Frédérick Henri.
Principes de programmation
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Partie II Sémantique.
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
L’essentiel du langage C
Animateur : Med HAIJOUBI
Algorithmique Les structures Rappel L'enchaînement séquentiel
JavaScript.
Créer des packages.
Un survol du language C.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
 Syntaxe du langage PHP
Exemple à faire: N°2 Ecrire l’Algorithme et le Programme PASCAL qui affiche la somme de deux nombres entiers donnés.
Le langage Racket (Lisp)
Cours n° 3 Traitements en Java
1 École des Mines de Saint-Etienne. 158, cours Fauriel Saint-Etienne Cedex 2. Tél Fax Jean-Jacques Girardot
1 Deuxième journée La programmation procédurale. 2 Unité de programmation : la procédure ou fonction Très semblable au math Un programme est un ensemble.
Cours LCS N°4 Présenté par Mr: LALLALI
B.Shishedjiev - Affectation1 Expressions et affectation Comment produire des nouvelles valeurs.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Programmation en C.
Module algorithmique et programmation
Introduction à la programmation (420-PK2-SL) cours 8
Scripts et fonctions Instructions de contrôle
PRO-1027 Programmation Scientifique en C
Chapitre 4 La représentation des nombres.
Algorithmique Tableaux de données
Introduction à l’utilitaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
02/10/2015Les structures de contrôle1 COURS A2I12 Initiation à l'algorithmique illustrée par le langage C Guillaume BOURLET Département GEII IUT Sénart/Fontainebleau.
Objets et Actions Élémentaires.
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Algorithmique Boucles et Itérations
Introduction au langage C
Algorithmique et programmation
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Langage de programmation
Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.3.
Algorithmes sur Open Office. 1. Ouvrir Visual Basic de Open Office.
FACTORY systemes Module 5 Section 1 Page 5-3 Les scripts de traitement FORMATION INTOUCH 7.0.
L ES INSTRUCTIONS DE L ECTURE, E CRITURE ET A FFECTATION Réalisé par : OUZEGGANE Redouane Département de Technologie Faculté de Technologie – Université.
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.5.
ALGORITHME ET PROGRAMMATION RÉVISION Informatique et Sciences du Numérique.
Langage de programmation Fortran 90 Mr S. BOUHEND Ver. 0.6.
Transcription de la présentation:

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

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

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é.

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.

Quelque langages de programmation

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

Programme informatique?

Le langage machine.

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.

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

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

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

Le langage FORTRAN Structure de programme

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

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

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

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

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)

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

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

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

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

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

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

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’

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

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.) Exponentielle (utilisation de la lettre e, le. peut être absent) 4.25E4 4.25e+4 425e2 0.54e-2 5.4e-3 48e13 48.e e13

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

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)

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)

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é

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

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

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.

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.)

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)

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

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)

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

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

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 ?

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

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

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

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

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

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,…)

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

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

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’

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

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

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

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

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

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

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

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)

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

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)

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

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

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

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.

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.

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

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.

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

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.

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.

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.

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

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

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

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) =‘?’

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

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

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)

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.

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

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

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

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

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

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.

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

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

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

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

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]

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

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

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Les boucles : structures de répétitions Une boucle est une structure de contrôle destinée à exécuter une portion de code plusieurs fois de suite. Normalement, une boucle s'exécute selon le cas: Soit un nombre de fois connu à l'avance (boucle à compteur), Soit jusqu'à ce qu'une condition permette de sortir de la boucle(boucle tant que).

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Boucles à compteur: Do compteur = debut, fin, pas Les instructions end do compteur : variable de type INTEGER debut, fin, pas : expressions de type INTEGER Si pas est omis, il est pris par défaut égal à 1.

Compteur = debut Bloc 2 Compteur ≤fin Compteur = compteur + pas OUI NON Bloc 3 Bloc 1 Instruction1 Instruction2... do compteur = debut, fin, pas Instruction1B Instruction2... end do Instruction1 Instruction2... dddddddddd Bloc1 dddddddddd Bloc2 dddddddddd Bloc3

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Boucles à compteur: integer :: i … do i = 1, 5 print *, 'i= ',i end do i= 1 i= 2 i= 3 i= 4 i= 5

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Boucles à compteur: integer :: i,somme … somme=0 do i = 1, 10 Somme=somme+i end do print *,’somme = ’,somme somme= 55

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Boucle à condition: boucle « tant que » do while (condition) Les instructions end do

Bloc 2 condition ? Vraie Fausse Bloc 3 Bloc 1 Instruction1 Instruction2... do while(condition) Instruction1 Instruction2... end do Instruction1 Instruction2... dddddddddd Bloc1 dddddddddd Bloc2 dddddddddd Bloc3

Le langage FORTRAN Les instructions de contrôle Expressions logiques : opérateurs logiques Boucles à condition : « Tant que» integer :: i,somme … somme=0 i=1 do while (i <= 10) somme=somme+i i=i+1 end do print *,’somme = ’,somme somme= 55