Programmation stochastique
|
|
- Raphaël Roux
- il y a 8 ans
- Total affichages :
Transcription
1 Programmation stochastique (Partie 1) IFT-6512 Hiver 2008
2 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface for Operations Research. Le projet a été lancé par IBM, et les codes sont fournis en open-source ( Beaucoup de projets sont sous licence CPL (Common Public Licence). Il existe à présent une fondation COIN-OR, indépendante de IBM. Où commencer? En visitant le site
3 De quoi aurons-nous besoin? Le projet COIN-OR regroupe de nombreuses librairies et outils de recherche opérationnelles. Nous ne pourrons pas tous les explorer et encore moins les utiliser dans ce cours! Nous étudierons ici la libraire Smi. Pourquoi? Smi is an open-source interface for modeling stochastic linear programming problems. Currently it supports : a scenario tree structure for multiperiod stochastic data, an implementation of a Stochastic MPS (SMPS) reader, direct interfaces for generating scenario trees from paths and from discrete random variables, generating the deterministic equivalent problem for OSI compatible solvers, and parsing the solutions by stage and scenario. Présupposition : environnement de travail de type Unix, compilateur C/C++ installé.
4 Télécharger SMI La page principale du projet est : Le package SMI est disponible sur un serveur subversion, et peut être téléchargé grâce à la ligne de commande svn co coin-smi_0.9 Cela suppose évidemment que vous disposiez d un client subversion. Alternativement, des versions précédentes sont disponibles à l adresse Une copie locale de la version 0.9 est disponible sur la page du cours : bastin/coin-or/smi/smi.tgz
5 Installation de SMI Sous Windows, il est possible d émuler un environnement Unix avec Cygwin ( La librairie a aussi été testée sous Visual C++. Expérience personnelle de Visual C++ : nulle. Je me concentrerai par conséquent sur l approche Unix. Si SMI a été téléchargé sous forme d archive, commencez par décompresser l archive, par exemple : tar zxvf smi.tgz Placez dans le répertoir créé (coin-smi_0.9), et entrez./configure make make test make install Cette séquence de commandes vous dit-elle quelque chose?
6 Et maintenant...? Découvrons SMI. Ce qui suit est basé sur la présentation Stochastic modeling software in the open-source COIN-OR repository, Alan King (IBM Research), INFORMS, Seattle, Qu est-ce que Coin-SMI? Une interface pour des problèmes dans lesquels apparaissent conjointement de l incertitude et des questions d optimisation. Traite des questions de programmations non triviales : implémente des distributions de probabilité multi-étapes, interagit avec des solveurs,... Beaucoup de modèles *pourraient* être supportés : programmation avec recours, programmation contrainte en chance, contrôle stochastique et programmation dynamique, optimisation robuste, queues,...
7 Possibilités actuelles Encore limité, mais c est un des rares projets actifs actuellement. Approche orientée objet (C++), classe SmiScnModel : programme linéaire stochastique multi-étapes avec recours : lecteur de fichiers SMPS ; méthodes directes d entrée pour des scénarios et des distributions directes. supporte *tous* les solveurs compatibles OSI ; prépare un objet OSI avec le programme linéaire déterministe équivalent ; traverse l arbre de scénarios et retrouve les données de solution étape par étape ; implémentation entièrement native pour le projet COIN. Il devrait être facile d ajouter des variables entières et des objectifs quadratiques.
8 Documentation Pour l heure... assez limitée. Transparents de présentation : coin-or_smi_2007_11_04.pdf Il est possible de générer une documentation des fonction implantées dans Smi et les projets associés en utilisant la commande make doxydoc à partir du répertoire racine de Smi. Cette commande nécessite la présence de l outil doxygen. Le processus de génération de documentation est similaire à javadoc pour Java.
9 Exemples Je n ai pas doxygen! Facile à installer sous les distributions Linux courantes. Une copie de la documentation est disponible sur ma page : bastin/coin-or/smi/doc/html/ Le fichier source Smi/Examples/Stoch/stoch.cpp propose différents exemples d utilisation. SmpsIO(../../Mps/Stochastic/wat 10 C 32 ) ; résout un problème SMPS tiré de Dempster et al. : problème solves ModelScenario(); génération de scénarios pour le problème d allocation de flotte aérienne, Dantzig-Ferguson s. ModelDiscrete(); version en distribution discrète du problème d allocation de flotte aérienne.
10 C++ La majeure partie des outils repris dans le répertoire COIN-OR sont écrits en C++. C++ en deux mots. langage dérivé du C ; le code C peut le plus souvent être directement utilisé avec un compilateur C++ (quelques précautions doivent toutefois être prises) ; langage orienté-objet (comme Java). Un Hello World en C++. #include <iostream> using namespace s td ; i n t main ( ) { cout << Hello World! << endl ; } return 0;
11 Hello World! Syntaxe similaire à Java. Le programme commence par une série de déclarations, puis suit le code principal. Tout programme doit contenir une fonction main, qui est le point d entrée du programme. A la différence de Java, cette fonction n est pas à l intérieur. Java ne travaille qu avec des objets, C++ non. On peut écrire un programme C++ sans objets. iostream est une libraire servant aux entrées-sorties. Le mot-clé #include sert à indiquer que les fonctions utilisées sont décrites dans le fichier iostream.h (.h pour header). using namespace std; sert à indiquer que les entrées-sorties se feront sur le canal standard (i.e. le clavier et l écran).
12 Types de variables prédéfinis void : type vide ; char : caractère ; int : entier ; bool : booléen ; float : réel simple précision ; double : réel double précision ; wchar t : caractère long. Les types entiers (int) peuvent être caractérisés d un des mots clés long ou short. Ces mots clés permettent de modifier la taille du type, c est-à-dire la plage de valeurs qu ils peuvent couvrir. De même, les réels en double précision peuvent être qualifiés du mot clé long, ce qui augmente leur plage de valeurs. Note, sur les architectures habituelles, double et long double ont même place de valeur.
13 Classes #include <iostream> using namespace s td ; class CRectangle { i n t x, y ; public : void s e t v a l u e s ( int, i n t ) ; i n t area ( ) { return ( x y ) ; } } ; void CRectangle : : s e t v a l u e s ( i n t a, i n t b ) { x = a ; y = b ; }
14 Classes (2) i n t main ( ) { CRectangle r e c t ; r e c t. s e t v a l u e s ( 3, 4 ) ; cout << area : << r e c t. area ( ) ; return 0; } Syntaxe. Chaque intruction est terminée par le symbole ; et un bloc d instructions est délimité par une accolade ouvrante ({) et une accolade (}) fermante. Une classe est un objet, qui contiendra des variables et des fonctions, appelées méthodes. Similaire à Java. On construit ici une classe rectangle, qui sera spécifié en indiquant sa largeur et sa longueur, et qui dispose d une méthode permettant d en calculer l aire.
15 On ne partage pas tout! Les éléments (variables et méthodes) peuvent être privés, publics ou protégés : private les membres privés d une classe sont seulement accessible à partir des autres membres de la même classe ou de leurs amis ; protected les membres protégés sont accessibles pour les membre de la même classe et de leurs amis, mais aussi pour les membres des classes dérivées. public les membres publics sont accessible par n importe qui pouvant voir l objet. Dans l exemple, les variables sont privées (comportement par défaut), et on utilise le setter set_values pour les initialiser.
16 Classes : constructeurs et destructeurs On voudrait pouvoir initialiser certains éléments de l instance d une classe lors de sa création. C est possible grâce à la fonction spéciale appelée constructeur, qui est automatiquement appelée quand une nouvelle instance est créée. Cette fonction doit avoir même nom que la classe, et ne peut avoir aucun type de retour, même void. #include <iostream> using namespace s td ; class CRectangle { i n t width, height ; public : CRectangle ( int, i n t ) ; i n t area ( ) { return ( width height ) ; } } ;
17 Constructeurs : exemple CRectangle : : CRectangle ( i n t a, i n t b ) { width = a ; height = b ; } i n t main ( ) { CRectangle r e c t ( 3, 4 ) ; CRectangle r e c t b ( 5, 6 ) ; cout << r e c t area : << r e c t. area ( ) << endl ; cout << r e c t b area : << r e c t b. area ( ) << endl ; return 0; } Dans l exemple, on passe la largeur et la longueur comme arguments lors de la création d une instance.
18 Destructeur Le destructeur remplit la fonctionnalité opposée : il est automatiquement appelé quand un objet est détruit. Le desctructeur doit avoir le même nom que la classe, mais précédé d un signe tilde ( ), et il ne doit retourner aucune valeur. L utilisation de destructeurs est particulièrement adaptée quand un objet affecte de la mémoire dynamique au cours de durée de vie, et qu au moment de sa destruction, nous souhaitons libérer la mémoire qui avait été allouée. Allocation dynamique? Utilisateur de pointeurs. Chaque variable est stockée en mémoire. On peut connaître l adresse mémoire grâce à l opérateur de référence : &.
19 Pointeurs De la même manière qu on peut connaître mémoire associée à une variable, on peut créer une variable dont le contenu est une adresse : pointeur. La déclaration d un pointeur se fait en placant une astérisque entre le type et le nom de variable. Exemple : int a; int *b = &a; Pour connaître le contenu de la mémoire dont l adresse est donnée par le pointeur, on effectuera une opération de déférencement, en plaçant le symbole astérisque devant le nom de variable : a = *b;
20 Allocation mémoire Le mot-clé new permet de requérir de la mémoire dynamique. new sera suivi de l identifiant de type, et éventuellement du nombre d éléments entre crochets ([]) pour allouer un tableur. L appel à new retourne un pointeur au début du bloc mémoire nouvellement alloué. Par exemple, i n t semaine ; semaine = new i n t [ 7 ] ; Le premier élément pointé par semaine peut être accédé soit avec l expression semaine[0] ou l expression *semaine. Le second élément peut être accédé avec semaine[1] ou *(semaine + 1), et ainsi de suite. Contrairement à Java, il n y a pas de garbage collector : la mémoire alloué restera alloué tant qu aucune instruction indiquant qu elle doit être libérée n est rencontrée.
21 Désallocation mémoire En C++, il est à la charge du programmeur de libérer le mémoire allouée dynamiquement pour la rendre à nouveau disponible. Cela se fait avec l instruction delete, dont le format est : delete p o i n t e r ; delete [ ] p o i n t e r ; La première expression devrait être utilisée pour supprimer la mémoire alloué à un seul élément, et la seconde pour la mémoire allouée à un tableau d éléments. Note : en C, on utilise les instructeurs de plus bas niveau malloc et free. Les instructions new et delete permettent cependant de profiter des constructeurs et destructeurs. Revenons aux destructeurs...
22 Destructeur : exemple #include <iostream> using namespace s td ; class CRectangle { i n t width, height ; public : CRectangle ( int, i n t ) ; CRectangle ( ) ; i n t area ( ) { return ( width height ) ; } } ; CRectangle : : CRectangle ( i n t a, i n t b ) { width = new i n t ; height = new i n t ; width = a ; height = b ; }
23 Destructeur : exemple (2) CRectangle : : CRectangle ( ) { delete width ; delete height ; } i n t main ( ) { CRectangle r e c t ( 3, 4 ), r e c t b ( 5, 6 ) ; cout << r e c t area : << r e c t. area ( ) << endl ; cout << r e c t b area : << r e c t b. area ( ) << endl ; return 0; } Plutôt que de déclarer l instance CRectangle de cette manière, on put utiliser un pointeur : CRectangle r e c t = new CRectangle ; [... ] delete r e c t ;
24 Environnements de développement Différents environnements sont disponibles. Solution basique, mais efficace : un éditeur de texte (par exemple emacs ou vim), compilateur gnu g++. Environnement de développement. Un exemple open-source (téléchargeable gratuitement) : Eclipse ( Supporte à la base le Java, mais gère le C/C++ grâce au plugin CDT ( Un tutorial d utilisation d Eclipse CDT : os-eclipse-stlcdt/index.html
25 Pour aller plus loin... Ce cours n étant pas destiné à apprendre un langage de programmation, il n en sera pas dit d avantage sur le C++. Différents tutoriaux existent sur internet, par exemple Vous pouvez aussi consulter les notes et exemples du cours IFT1166 : dift1166/ Un livre de référence (parmi d autres) : Stanley B. Lippman, Josée LaJoie, Barbara E. Moo, C++ Primer, 4th Edition, Addison Wesley, Leitmotiv : Read the Source, Luke. On apprend énormément en lisant du code source. Pour Smi, profitez des exemples repris dans le code distribué!!!
26 SMPS Format permettant de décrire des problèmes stochastiques (linéaires) avec recours. Référence principale : Gassmann et Schweitzer, Proposed Extensions to the SMPS Input Format for Stochastic Linear Programs, Dalhousie School of Business Administration Working Paper WP 96 1, Based on the MPS standard for linear programs, data conventions for the description of multistage stochastic linear programs were described by Birge et al. This paper proposes extensions to the so-called SMPS standard, in order to address shortcomings identified by researchers around the world in several years of working with the standard.
27 Autres références J.R. Birge, M.A.H. Dempster, H.I. Gassmann, E.A. Gunn, A.J. King and S.W. Wallace, A standard input format for multiperiod stochastic linear programs, COAL Newsletter 17, pp. 1-19, H.I. Gassmann and E. Schweitzer, A comprehensive input format for stochastic linear programs, Annals of Operations Research 104, pp , Un goût de bon vieux temps Les outils modernes utiliseront plutôt des langages de modélisation algébrique. Auparavant, les formats étaient beaucoup plus lourds : MPS, SIF. Le format SMPS est une extension du MPS pour la programmation stochastique.
28 Pourquoi utiliser SMPS alors? 1 Collection de problèmes test : 2 Possibilité d utiliser des solveurs connus et fiables, y compris des solveurs commerciaux... sans délier sa bourse! Comment? Soumettre ses problèmes à NEOS! Pour les problèmes en SMPS : NEOS dispose d un large éventail de logiciels d optimisation, et peut être utilisé dans d autres contextes. 3 Les solutions comme AMPL sont souvent payantes, avec des licences parfois très coûteuses.
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailCours 1: Java et les objets
Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailInitiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr
Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation
Plus en détailProjet de développement
Projet de développement Introduction à Eclipse Philippe Collet Licence 3 MIAGE S6 2012-2013 http://miageprojet2.unice.fr/index.php?title=user:philippecollet/projet_de_développement_2012-2013 Plan r Application
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailINTRODUCTION A JAVA. Fichier en langage machine Exécutable
INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailUE Programmation Impérative Licence 2ème Année 2014 2015
UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative
Plus en détailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailStructure d un programme et Compilation Notions de classe et d objet Syntaxe
Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types
Plus en détailLicence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter
Plus en détailC++ 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
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 des objets d'une classe Utilisation d'une classe Droit
Plus en détailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détailACTIVITÉ DE PROGRAMMATION
ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,
Plus en détailas Architecture des Systèmes d Information
Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes
Plus en détailINITIATION AU LANGAGE C SUR PIC DE MICROSHIP
COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par
Plus en détailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailProjet de développement. Introduction à Eclipse. Application à votre projet. Philippe Collet. Organisation. Cours 1 : principes généraux - svn
1 Organisation Projet de développement Introduction à Eclipse Philippe Collet Licence 3 Informatique Cours 1 : principes généraux - svn Cours 2 : Redmine et gestion de projet Cours 3 : Introduction à Eclipse
Plus en détailChapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailCours d Algorithmique et de Langage C 2005 - v 3.0
Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris
Plus en détailTP1. Outils Java Eléments de correction
c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par
Plus en détailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailPrénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004
Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)
Plus en détailLangage et Concepts de ProgrammationOrientée-Objet 1 / 40
Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr
Plus en détailSysteme d'exploitation
Introduction au dévellopement de Methodes Natives Partie I : appelle de methodes C++ sous windows Auteur: Frank Sauvage. 1 \ introduction aux methodes natives : Les methodes natives sont des methodes devellopées
Plus en détailCours d initiation à la programmation en C++ Johann Cuenin
Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................
Plus en détailC++ Programmer. en langage. 8 e édition. Avec une intro aux design patterns et une annexe sur la norme C++11. Claude Delannoy
Claude Delannoy Programmer en langage C++ 8 e édition Avec une intro aux design patterns et une annexe sur la norme C++11 Groupe Eyrolles, 1993-2011. Groupe Eyrolles, 2014, pour la nouvelle présentation,
Plus en détailIntroduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf
Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations
Plus en détail1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
Plus en détailPlan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7
Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailPremiers Pas en Programmation Objet : les Classes et les Objets
Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.
Plus en détailMon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2
Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................
Plus en détailLes structures. Chapitre 3
Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre
Plus en détailMise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Plus en détailTP 1. Prise en main du langage Python
TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer
Plus en détailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
Plus en détailÉléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if
Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailJava Licence Professionnelle CISII, 2009-2010
Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailPrincipes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle
2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle 1 Principes 2 Architecture 3 4 Aperçu d utilisation
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
Plus en détailGénérer du code à partir d une description de haut niveau
Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,
Plus en détailCours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java
Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailLangage Java. Classe de première SI
Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les
Plus en détail1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.
1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this
Plus en détailTP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile
TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface
Plus en détailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailGénéralités sur le Langage Java et éléments syntaxiques.
Généralités sur le Langage Java et éléments syntaxiques. Généralités sur le Langage Java et éléments syntaxiques....1 Introduction...1 Genéralité sur le langage Java....1 Syntaxe de base du Langage...
Plus en détailPlateforme de capture et d analyse de sites Web AspirWeb
Projet Java ESIAL 2A 2009-2010 Plateforme de capture et d analyse de sites Web AspirWeb 1. Contexte Ce projet de deuxième année permet d approfondir par la pratique les méthodes et techniques acquises
Plus en détailProgrammation système I Les entrées/sorties
Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement
Plus en détailÉvaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Plus en détailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailECLIPSE ET PDT (Php development tools)
ECLIPSE ET PDT (Php development tools) Eclipse Eclipse est un IDE (Integrated Development Environment)).C estun projet de la Fondation Eclipse visant à développer tout un environnement de développement
Plus en détailProgrammation C++ (débutant)/instructions for, while et do...while
Programmation C++ (débutant)/instructions for, while et do...while 1 Programmation C++ (débutant)/instructions for, while et do...while Le cours du chapitre 4 : le for, while et do...while La notion de
Plus en détailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailInstitut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique
Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation
Plus en détailIntroduction à Eclipse
Introduction à Eclipse Eclipse IDE est un environnement de développement intégré libre (le terme Eclipse désigne également le projet correspondant, lancé par IBM) extensible, universel et polyvalent, permettant
Plus en détailJava Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites
Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)
Plus en détailTraitement de données
Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules
Plus en détailBases de programmation. Cours 5. Structurer les données
Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et
Plus en détailJava Licence Professionnelle CISII, 2009-2010. Cours 2 : Classes et Objets
Licence Professionnelle CISII, 2009-2010 Cours 2 : Classes et Objets 1 Classes et Objets Objectifs des LOO : - Manipuler des objets - Découper les programmes suivant les types des objets manipulés - Regrouper
Plus en détailAlgorithmique et Programmation, IMA
Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailAUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12
GTK+ GLADE Page 1 sur 12 SOMMAIRE INTRO 3 Présentation de GTK+ 3 Présentation de GLADE 3 GTK+ 4 Installation 4 Les Widgets 4 Le système de hiérarchie 5 Les signaux 6 GLADE 7 Installation 7 L interface
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailet Programmation Objet
FACULTE POLYTECHNIQUE DE MONS Service d Informatique et Programmation Objet Mohammed Benjelloun 2 ème Bachelier Année académique 2008-2009 Table des matières Avant-propos--------------------------------------------------------------------------
Plus en détailCOMPARAISONDESLANGAGESC, C++, JAVA ET
REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY
Plus en détailGénie Logiciel I. Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string
Génie Logiciel I Cours VI - Typage statique / dynamique, fonctions virtuelles et classes abstraites, flots d entrées / sorties, et string Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M.
Plus en détailEntraînement au concours ACM-ICPC
Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming
Plus en détailLangage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
Plus en détailOutils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
Plus en détailSystèmes en réseau : Linux 1ère partie : Introduction
Systèmes en réseau : Linux 1ère partie : Introduction Les fondements de Linux : le logiciel libre Historique de Linux Présentation générale de Linux Les applications à succès Les distributions Qu'est-ce
Plus en détailConstruire des plug-ins pour SAS Management Console SAS 9.1
Construire des plug-ins pour SAS Management Console SAS 9.1 Janvier 2005 Sommaire 1 INTRODUCTION... 3 1.1 OBJECTIFS... 3 1.2 PERIMETRE... 3 2 LES COMPOSANTS DE SAS MANAGEMENT CONSOLE... 4 3 LA CONSTRUCTION
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailProgrammation impérative
Programmation impérative Cours 4 : Manipulation des fichiers en C Catalin Dima Organisation des fichiers Qqs caractéristiques des fichiers : Nom (+ extension). Chemin d accès absolu = suite des noms des
Plus en détailInfo0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java
Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
Plus en détailServeur Subversion Debian GNU/Linux
Serveur Subversion Debian GNU/Linux Matthieu Vogelweith 13 janvier 2009 Résumé L objectif de cette page est de détailler l installation d un serveur Subversion [1]. Ce document a été rédigé en LaTeX en
Plus en détailNotions fondamentales du langage C# Version 1.0
Notions fondamentales du langage C# Version 1.0 Z 2 [Notions fondamentales du langage Csharp] [Date : 25/03/09] Sommaire 1 Tout ce qu il faut savoir pour bien commencer... 3 1.1 Qu est ce qu un langage
Plus en détailINFO-F-404 : Techniques avancées de systèmes d exploitation
Nikita Veshchikov e-mail : nikita.veshchikov@ulb.ac.be téléphone : 02/650.58.56 bureau : 2N8.213 URL : http://student.ulb.ac.be/~nveshchi/ INFO-F-404 : Techniques avancées de systèmes d exploitation Table
Plus en détailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détailIntroduction à l héritage en C++
Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5
ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5 Informations juridiques Copyright 2010 Adobe Systems Incorporated and its licensors. All rights reserved. Administration d Adobe LiveCycle Mosaic 9.5 13 octobre
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détail