Plan du cours 2014-2015. Cours théoriques. 29 septembre 2014



Documents pareils
Introduction à MATLAB R

IDRIS 1. Cours Fortran 95

Cours de Fortran 90 / 95

Génie Logiciel avec Ada. 4 février 2013

1. Structure d'un programme FORTRAN 95

Cours Informatique Master STEP

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Cours 7 : Utilisation de modules sous python

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Cours d Analyse. Fonctions de plusieurs variables

SNT4U16 - Initiation à la programmation TD - Dynamique de POP III - Fichiers sources

Corrigé des TD 1 à 5


Cours d initiation à la programmation en C++ Johann Cuenin

Utilitaires méconnus de StrataFrame

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Sub CalculAnnuite() Const TITRE As String = "Calcul d'annuité de remboursement d'un emprunt"

Calcul Formel et Numérique, Partie I

Fonctions de plusieurs variables

Bases de programmation. Cours 5. Structurer les données

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

TP : Gestion d une image au format PGM

Programmation linéaire

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Algorithmique et programmation : les bases (VBA) Corrigé

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

as Architecture des Systèmes d Information

Présentation du PL/SQL

Projet Matlab : un logiciel de cryptage

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Chapitre 5 : Les procédures stockées PL/SQL

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Langage Fortran (Base)

Initiation à LabView : Les exemples d applications :

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

COMPARAISONDESLANGAGESC, C++, JAVA ET

Architecture des Systèmes d Information Architecture des Systèmes d Information

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

La problématique des tests. Cours V. 7 mars Comment quantifier la performance d un test? Hypothèses simples et composites

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

Langage Fortran. Support de cours

Introduction à NetCDF

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Programmation linéaire

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Python - introduction à la programmation et calcul scientifique

Programmer en JAVA. par Tama

TD3: tableaux avancées, première classe et chaînes

Limitations of the Playstation 3 for High Performance Cluster Computing

Théorie et codage de l information

SOFI Gestion+ Version 5.4. Echanges de données informatiques Spicers Sofi gestion+ Groupements. SOFI Informatique. Actualisé le

TP1 : Initiation à Java et Eclipse

Cours d Algorithmique et de Langage C v 3.0

Rappels d architecture

Programmation Objet - Cours II

TP 1 Introduction à Matlab Février 2009

Oracle Le langage procédural PL/SQL

TP, première séquence d exercices.

Initiation à JAVA et à la programmation objet.

Le langage C. Séance n 4

Informatique Générale

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Rappels Entrées -Sorties

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Une introduction à Java

Débuter avec EXPRESS. Alain Plantec. 1 Schema 2

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

Calcul Formel et Numérique, Partie I

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

LES DECIMALES DE π BERNARD EGGER

OCL - Object Constraint Language

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE


MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Java 1.5 : principales nouveautés

Algorithmique et Programmation, IMA

Limites finies en un point

Chapitre VI- La validation de la composition.

Le langage VHDL. Eduardo Sanchez EPFL

Image d un intervalle par une fonction continue

Les concepts de base, l organisation des données

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Paginer les données côté serveur, mettre en cache côté client

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

alg - Classes, instances, objets [oo] Exercices résolus

UE Programmation Impérative Licence 2ème Année

4 Exemples de problèmes MapReduce incrémentaux

C++ - Classes, instances, objets [oo] Exercices résolus

Transcription:

numériques et Institut d Astrophysique et de Géophysique (Bât. B5c) Bureau 0/13 email:.@ulg.ac.be Tél.: 04-3669771 29 septembre 2014 Plan du cours 2014-2015 Cours théoriques 16-09-2014 numériques pour E.D.O.: introduction 22-09-2014 de Runge-Kutta; Contrôle du pas; Équations raides 22-09-2014 Fortran 95: bases, boucles 23-09-2014 Fortran 95: branchements, sous-programmes 23-09-2014 Fortran 95: modules, opérations d entrée-sortie 29-09-2014 Fortran 95 Tableaux 07-10-2014 Fortran: librairies et collections de routines

Tableaux Arrays nombre maximal de dimensions, appelé rang (rank): 7 (attention: différent du rang en mathématiques) suite des dimensions d un tableau définit sa forme (shape) tableaux possibles pour tous les types type CHARACTER: tous les même longueur pour chaque dimension, indices commencent à 1 par défaut stockage en mémoire: par colonnes (cf. matrices en mathématiques) indice de la première dimension varie le plus vite ensuite le deuxième... pour un tableau déclaré comme type, DIMENSION(3,2) :: A la suite de stockage est A(1,1), A(2,1), A(3,1), A(1,2), A(2,2), A(3,2) Tableaux : ordre de stockage Arrays: storage order X(1,1) X(1,2) X(1,3) X(1,4) X(1,5) X(2,1) X(2,2) X(2,3) X(2,4) X(2,5) X(3,1) X(3,2) X(3,3) X(3,5)..., DIMENSION(3,5) :: X

Tableaux : déclarations-type Arrays: typical déclarations Exemples de déclarations de tableaux PROGRAM plenty of arrays IMPLICIT NONE INTEGER, DIMENSION(5,7) :: idx = -1! init. tous les éléments à -1! équivalent à INTEGER, DIMENSION(1:5,1:7) :: idx! rang de idx: 2! forme de idx: (/ 5, 7 /) DOUBLE PRECISION, DIMENSION(-1:1,3,0:7) :: x! équivalent à DOUBLE PRECISION, DIMENSION(-1:1,1:3,0:7) :: x! rang de x: 3! forme de x: (/ 3, 3, 8 /) CHARACTER(LEN=256), DIMENSION(2,9) :: txtlines! tableau à 2x9 entrées, d une longueur de 256 caractères chacune! rang de txtlines: 2! forme de txtlines: (/ 2, 9 /)... END PROGRAM plenty of arrays Tableaux : opérations Arrays: operations en FORTRAN 77: codage manuel des opérations entre éléménts, élément par élément en Fortran 90: opérations possibles sur des tableaux entiers A = B + 4 : addition de 4 à chaque élément de B A = B + C : addition élément par élément de B et C A = B * C : multiplication élément par élément condition: A, B (et C) de même forme opérations matricielles addition: A = B + C multiplication: A = MATMUL(B,C) condition: dimensions compatibles

Tableaux : sections Arrays: sections Exemples d extraction de sections de tableaux DOUBLE PRECISION, DIMENSION(-1:1,3,0:7) :: x élément individuel: par ses indices (ex.: x(0,1,6)) sections complexes par indices et/ou triplets d indices de la forme [indice inf]:[indice sup][:pas], où, par défaut, indice inf et indice sup sont égaux aux bornes inférieure et supérieure déclarées et pas (stride ) égal à 1 x(:,2,:1) = (/ x(-1,2,0), x(0,2,0), x(1,2,0), & x(-1,2,1), x(0,2,1), x(1,2,1) /) x(1,2,1:7:3) = (/ x(1,2,1),x(1,2,4),x(1,2,7) /) x(-1,2:3,::3) = (/ x(-1,2,0), x(-1,3,0), & x(-1,2,3), x(-1,3,3), & x(-1,2,6), x(-1,3,6) /) Tableaux : sections Arrays: sections X(1,1) X(1,2) X(1,3) X(1,4) X(1,5) X(1,1) X(1,2) X(1,3) X(1,4) X(1,5) X(2,1) X(2,2) X(2,3) X(2,4) X(2,5) X(2,1) X(2,2) X(2,3) X(2,4) X(2,5) X(3,1) X(3,2) X(3,3) X(3,5) X(3,1) X(3,2) X(3,3) X(3,5) X(2,3:5) or X(2,3:) X(1,1) X(1,2) X(1,3) X(1,4) X(1,5) X(1,1) X(1,2) X(1,3) X(1,4) X(1,5) X(2,1) X(2,2) X(2,3) X(2,4) X(2,5) X(2,1) X(2,2) X(2,3) X(2,4) X(2,5) X(3,1) X(3,2) X(3,3) X(3,5) X(3,1) X(3,2) X(3,3) X(3,5) X(:,2) or X(1:3,2) X(1:3:2,1:5:2) or X(::2,::2)

Tableaux : sections Arrays: sections Exemples d extraction de sections de tableaux DOUBLE PRECISION, DIMENSION(-1:1,3,0:7) :: x par vecteur d indices : idx = (/ 1, 4, 5, 6 /) subx = x(0, 2, idx) possibilité de répéter des indices dans idx idx peut aussi apparaître à la gauche d une attribution ne peut pas contenir d indices répétés dans ce cas Tableaux : fonctions enquêtrices Arrays: inquiry functions SHAPE(source [, dim ]) forme de la source si elle est un tableau (résultat: tableau INTEGER de rang 1), 0 si la source est un scalaire; SIZE(tableau [, dim ]) nombre d éléments du tableau entier ou le long de la dimension dim si spécifiée (résultat: scalaire INTEGER); LBOUND(tableau [, dim ]) bornes inférieures des indices du tableau (résultat: tableau INTEGER de rang 1), ou la borne inférieure de la dimension dim (résultat: scalaire INTEGER); UBOUND(tableau [, dim ]) analogue à LBOUND, pour les bornes supérieures.

Tableaux : opérations Arrays: operations SUM(tableau [, dim ]) somme des éléments du tableau entier (résultat scalaire), ou le long de la dimension dim si spécifiée (résultat: tableau dont le rang est le rang du tableau diminué de 1, et la forme celle du tableau, sans la dimension dim ); PRODUCT(tableau [, dim ]) analogue à SUM, pour le produit des éléments; MAXVAL(tableau [, dim ]) valeur maximale du tableau (résultat scalaire) ou le long de la dimension dim si spécifiée (résultat: tableau dont le rang est le rang du tableau diminué de 1, et la forme celle du tableau, sans la dimension dim ); MINVAL(tableau [, dim ]) analogue à MAXVAL, pour la valeur minimale. Tableaux : reformes Arrays: reshaping Y(1,1) =X(1,1) Y(4,1) Y(2,2) Y(5,2) Y(3,3) =X(1,2) =X(1,3) =X(1,4) =X(1,5) Y(2,1) Y(5,1) Y(3,2) Y(1,3) Y(4,3) =X(2,1) =X(2,2) =X(2,3) =X(2,4) =X(2,5) Y(3,1) Y(1,2) Y(4,2) Y(2,3) Y(5,3) =X(3,1) =X(3,2) =X(3,3) = =X(3,5) Y = RESHAPE(X, (/ 5, 3 /) )

Tableaux : reformes Arrays: reshaping Y(1,1) =X(1,1) Y(1,2) =X(3,2) Y(1,3) =X(2,4) Y(2,1) Y(2,2) Y(2,3) =X(2,1) =X(1,3) = Y(3,1) Y(3,2) Y(3,3) =X(3,1) =X(2,3) =X(1,5) Y(4,1) Y(4,2) Y(4,3) =X(1,2) =X(3,3) =X(2,5) Y(5,1) Y(5,2) Y(5,3) =X(2,2) =X(1,4) =X(3,5) Y = RESHAPE(X, (/ 5, 3 /) ) Constructeurs de tableau Array constructors Forme générique d un constructeur de tableau (/ liste de valeurs /) où liste de valeurs est donnée par une succession de valeurs, séparées par des virgules 1.0, 2.4, 5.6, 1.5 une succession de sections d autres tableaux déjà initialisés auparavant, séparées par des virgules une liste à boucle implicite (expression(i), i = -5, 6, 2) une liste à boucle implicite de listes à boucles implicites... ( (expression(i, j,...), j =...), i=...) des combinaisons des précédentes

Tableaux : utilisation de RESHAPE à l initialisation Arrays: use of RESHAPE at initialisation Initialisation de tableaux à la déclaration PROGRAM more arrays IMPLICIT NONE INTEGER, DIMENSION(5,7) :: iarr1 = -1! init. tous les éléments à -1! équivalent à INTEGER, DIMENSION(1:5,1:7) :: iarr1! ou encore INTEGER :: iarr1(5,7)! rang de iarr1: 2! forme de iarr1: (/ 5, 7 /) INTEGER, DIMENSION(5) :: iarr2 = (/ 2, 4, 8, 16, 32 /)! équivalent à! INTEGER :: i! INTEGER, DIMENSION(5) :: iarr2 = (/ (2**i, i=1,5) /)! iarr3 tableau de forme (/ 3, 5 /), chaque élément! initialisé à la valeur de sa position en mémoire INTEGER, DIMENSION(3,5) :: iarr3 & = RESHAPE( (/ (i, i=1,3*5) /), (/ 3, 5 /))... END PROGRAM more arrays Tableaux à dimensionnement différé Allocatable arrays Déclaration type, ALLOCATABLE, DIMENSION(:[,:...]) :: nom tabl Tableau nommé, dont uniquement le type et le rang sont déclarés Rang déclaré à l aide du nombre approprié de : dans la liste d indices de l attribut DIMENSION Attribut ALLOCATABLE Après déclaration: statut non-alloué Statut d allocation peut être obtenu à l aide la fonction logique ALLOCATED(nom tabl)

Tableaux à dimensionnement différé Allocatable arrays Allocation ALLOCATE(nom tabl(dim 1, dim 2,...) & [, STAT=stat var]) Forme requise pour nom tabl est (/dim 1, dim 2,.../) Argument optionnel STAT, avec la variable stat var de type INTEGER permet un contrôle d erreur Au retour de la commande, stat var sera définie à 0 si l allocation s est produite sans erreur définie à une valeur positive, dépendant du compilateur, sinon Statut de la variable nom tabl passe à alloué (ALLOCATED(nom tabl) retournera.true.) Programme s arrête en cas d erreur si l argument optionnel STAT n est pas spécifié Tableaux à dimensionnement différé Allocatable arrays Désallocation/Libération DEALLOCATE(nom tabl [, STAT=stat var]) L espace mémoire réservé auparavant par ALLOCATE est libéré, le statut de la variable nom tabl passe à non allouée (ALLOCATED(nom tabl) retournera.false.) Si stat var est indiquée, elle sera, au retour de la commande, définie à 0 si l allocation s est produite sans erreur définie à une valeur positive, dépendant du compilateur, sinon. Programme s arrête en cas d erreur si l argument optionnel STAT n est pas spécifié

Ce qui n a pas été couvert Subjects not covered Pointeurs Structures et types dérivés INTERFACEs de sous-routines et fonctions déclaration des caractéristiques des sous-routines au sein du programme appelant obligatoires pour fonctions à résultat sous forme de tableau obligatoires pour sous-programmes avec argument optionnels générées automatiquement pour des sous-programmes dans des modules permettent surcharge (extension, redéfinition) d opérateurs Attributs PUBLIC et PRIVATE de variables et sous-programmes d un MODULE