Ecole d Automne Informatique Scientifique 1er Octobre 2008

Documents pareils
Cours Informatique Master STEP

Cours 7 : Utilisation de modules sous python

Python - introduction à la programmation et calcul scientifique

1 Définition et Appel d une fonction. V. Phan Luong. Cours 4 : Fonctions

Programmation C. Apprendre à développer des programmes simples dans le langage C

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Introduction aux Bases de Données Relationnelles Conclusion - 1

Calcul Scientifique avec 3

Laboratoire d informatique Gaspard-Monge UMR Journée Labex Bézout- ANSES

Évaluation et implémentation des langages

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

TP Bases de données réparties

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

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Découverte de Python

Rappels sur les suites - Algorithme

TP1 : Initiation à Java et Eclipse

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Quelques éléments de compilation en C et makefiles

Dynamique des protéines, simulation moléculaire et physique statistique

Ateliers L A TEX L A TEX portable ou

Structure d un programme et Compilation Notions de classe et d objet Syntaxe


COLLÈGE D'ENSEIGNEMENT GÉNÉRAL ET PROFESSIONNEL BEAUCE-APPALACHES POLITIQUE RELATIVE À LA FORMATION GÉNÉRALE COMPLÉMENTAIRE

OPTION SCIENCES BELLE-ISLE-EN-TERRE

CARTE DE VOEUX À L ASSOCIAEDRE

Mesurer les performances (CPU) sous Linux

ALGORITHMIQUE ET PROGRAMMATION En C

PRESENTATION RESSOURCES. Christian Dupaty BTS Systèmes Numériques Lycée Fourcade Gardanne Académie d Aix Marseille

L informatique en BCPST

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

Optimisation, traitement d image et éclipse de Soleil

Initiation à l algorithmique

CMI ECONOMIE, FINANCE QUANTITATIVE ET STATISTIQUES - PARCOURS FORMATION EN APPRENTISSAGE

IN2P3 et PLUME Valorisation de la production de logiciels

pyensae StockPrices September 1, Manipulation de séries financières avec la classe StockPrices

Introduction à la Programmation Parallèle: MPI

TP1 : Initiation à Java et Eclipse

Atelier Le gestionnaire de fichier

Environnements et Outils de Développement Cours 1 Introduction

Présentation synthétique de la licence Economie Gestion de l université d Orléans à destinations des enseignants en SES de l académie Orléans-Tours

Introduction à MATLAB R

Baccalauréat universitaire (bachelor) en mathématiques et sciences informatiques

Cours d Algorithmique et de Langage C v 3.0

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Formulaire pour envoyer un mail

Programme détaillé BTS INFORMATIQUE DE GESTION DIPLÔME D ETAT. Objectifs de la formation. Les métiers. Durée de la formation

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Entraînement au concours ACM-ICPC

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

Calcul Formel et Numérique, Partie I

Optimisation de logiciels de modélisation sur centre de calcul

Projet audio. Analyse des Signaux ELE2700

Éléments de programmation et introduction à Java

L ENTRETIEN INDIVIDUEL

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Outils pour la pratique

Formula Negator, Outil de négation de formule.

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Les formations de remise à niveau(!) l'entrée des licences scientifiques. Patrick Frétigné CIIU

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Environnements de développement (intégrés)

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Structurer ses données : les tableaux. Introduction à la programmation

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Outils, langage et approche Android Une introduction. Nicolas Stouls lyon.fr

EES : Engineering Equation Solver Fiche récapitulative - Marie-Sophie Cabot

Sites web éducatifs et ressources en mathématiques

TP Contraintes - Triggers

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

La place de SAS dans l'informatique décisionnelle

Présentation du langage et premières fonctions

Pi, poker et informatique ; une «épuisante» alliance pour des projets en mathématiques

Notes de cours : bases de données distribuées et repliquées

CH.3 SYSTÈMES D'EXPLOITATION

Plan du cours Cours théoriques. 29 septembre 2014

Changer la taille des caractères en L A TEX

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Présentation du logiciel

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

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

La GPEC au regard de la formation

1 TD 2 : Construction d'une chier Acrobat et envoi par

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

Initiation à la programmation en Python

Object Removal by Exemplar-Based Inpainting

UN LOGICIEL DE CARTOGRAPHIE ASSISTEE PAR MICRO-ORDINATEUR

Climat Scolaire - Manuel utilisateur - Chapitre 2 : «Créer, Editer et suivi d un texte»

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

LE PROCESSUS ( la machine) la fonction f. ( On lit : «fonction f qui à x associe f (x)» )

Cours 1 : La compilation

Chapitre VI- La validation de la composition.

Calcul Formel et Numérique, Partie I

TROPHEE RSE DE LA PROFESSION COMPTABLE 2014 CATEGORIE MEILLEURE DEMARCHE RSE

Création et Gestion des tables

Transcription:

en en Ecole d Automne Informatique Scientifique 1er Octobre 2008

en Plan 1 2 3 4 5

en Quelques caractéristiques de I Langage interprété portabilité du code : il suffit d avoir un interpréteur ( dans notre cas) sur la machine réduction de la durée du cycle de développement par suppression de la phase de compilation. est conçu pour inciter le programmeur à écrire des programmes clairs, documentés, et concis. Mais encore... Programmes clairs : l indentation est obligatoire en. Fonctions documentées : docstring, une chaîne de caractères décrivant le fonctionnement de la fonction ;

en Quelques caractéristiques de II Concis : le nombre important de structures de données déjà existantes permet de se concentrer sur l algorithme du programme à résoudre. Langage qui a plu à la communauté numérique

en Plan 1 2 3 4 5

en Tableaux en I bien diffusé dans la communauté numérique, en raison de ces modules permettant l utilisation de grands talbeaux et d opérations math courantes et facilement accessibles Module array du langage Tableaux Contigus Typecode définissant le type de données Pas d opérations math!!! Extension numpy Tableaux contigus Opérations math (FFT, Algebre lineaire, générateurs aléatoires) Utilisation routines optimisées du système si présentes

en Tableaux en II Structure en mémoire d un tableau numpy (emprunté à Konrad Hinsen, CNRS, Orléans) : Exemple de code

en Tableaux en III >>> import numpy >>> a=numpy. z e r o s ( ( 3, 4 ), dtype= f ) >>> a a r r a y ( [ [ 0., 0., 0., 0. ], [ 0., 0., 0., 0. ], [ 0., 0., 0., 0. ] ], dtype=f l o a t 3 2 Fichier Exemples//first numpy array

en More on numpy I Comment est construit numpy? Noyaux de s C/Fortran Interfacés avec utilisé comme driver (+ standardistion des appels aux fonctions)

en Une application de numpy : f2py f2py : automatisation interfaçage / Fortran Définition (assistée) d une interface (entrées, sorties) Compilation automatique d un wrapper, depuis un fichier source fortran ou depuis une bibliothèque Utilisation de ce wrapper comme d un nouveau module

en Intéret du fichier d interfaçage : Squelette construit par f2py Non intrusion dans le code... ) I Directives (commentaires) possibles dans le fichier source Conséquences sur la lisibilité du code : Permet d indiquer explicitement quels sont les opérandes de sortie et d entrée (pas toujours très clair en Fortran...) résultat = fonction(opérande1, opérande2,... Dépend de la spécification des variables (intent) Syntaxe des intent intent(in) : variable d entree dans la procédure intent(out) : variable de sortie. Sera récupérée comme résultat dans le code

en II intent(copy) : la valeur de la variable d origine sera conservée intent(overwrite) : la valeur de la variable d origine n est pas recopiée avant utilisation ecrasée par celle de la valeur de sortie. Utile pour éviter de copier. par defaut Le principe de fonctionnement général est représenté ci-dessous :

en III Fig.: Principe de fonctionnement

en Caractéristiques principales : f2py : dernières remarques Du petit exemple aux grosses bibliothèques Interfaçage de code C également Limitations : Types dérivés Fortran 90 Autre générateur d interfaces : Forthon Quelles fonctions wrapper avec f2py? les routines de consommatrices en temps, du coeur du problème les routines d E/S en Fortran (joke) Dans un code couplé /fortran, est chargé du housekeeping (allant jusqu au pré/post traitement), fortran du dur. En fortran, penser fonctions plutot que code complet.

en Plan 1 2 3 4 5

en Voici le code du sinus : from p y l a b import : Un tracé simple I # D e f i n i t i o n de l a s e r i e de donnees en x : de 0 t = arange ( 0. 0, 2. 0, 0. 0 1 ) # Courant a l t e r n a t i f p a r f a i t s = 230 s i n (2 p i t ) # P l o t a b s i s c e s, ordonnees s u b p l o t (211) p l o t ( t, s ) t i t l e ( r $\ Pi =3.14 \ s i n (2 \ t i m e s \omega t ) $ s u b p l o t (212)

en : Un tracé simple II n, h, p=h i s t ( s ) p l o t ( t ) t i t l e ( r Histogramme ) s a v e f i g ( s i n u s. pdf ) show ( ) Fichier Exemples//sinus.py

en : Un tracé simple III

en Plan 1 2 3 4 5

en Plan 1 2 3 4 5

en Forme que peut prendre un module un fichier mod.so (cas que nous avons vu jusqu à présent) un fichier mod.py un répertoire mod contenant obligatoirement un fichier init.py qui sera interprété. Ce répertoire est prioritaire sur le fichier. S il est présent, le fichier mod.py sera ignoré. Une variable ou un fonction v d un module m sera référencée par m.v.

en Une hierarchie volontairement complexe... Fig.: Hiérarchie de modules