Projet C++ : de la STL à l objet
|
|
- Jean-Paul Pellerin
- il y a 7 ans
- Total affichages :
Transcription
1 Projet C++ : de la STL à l objet November 4, 2014 Durant ce TP, nous allons faire un rappel avec la syntaxe et les concepts de base du C++, qui diffèrent du langage C que vous connaissez déjà. Le TP est découpé en deux grandes parties : la syntaxe C++ et le concept objet. 1 Passage du C au C++ Dans cette section, vous allez devoir convertir du code C (norme C89) en code C++, sans rentrer pour autant de le concept de la programmation objet. Pour cela, il va falloir adapter la syntaxe et utiliser la librairie standard C++ (STL). N hésitez pas à visiter le site pour plus d information sur la STL. 1.1 Ecrire dans la sortie standard et dans la sortie d erreur Pour les entrées et les sorties, le langage C utilise les fonctions appartenant au fichier stdio.h. La première étape consiste donc à remplacer à terme l utilisation de ces fonctions par leurs homologues C++. Vous devez pour cela inclure et utiliser les méthodes de iostream (cf fonctions std::cout, std::cerr, et std::endl). Information : en C++, cout et cerr sont considerés comme des flux; il faut utiliser l opérateur ">>" pour lire le flux et "<<" pour écrire dedans. 1.2 Ecrire et lire dans un fichier Les fonctions de stdio.h assurent également les entrées/sorties (lecture/écriture) de fichiers. Vous devez supprimer cette dépendance à stdio.h en utilisant les méthodes de la STL. Pour cela, plusieurs possibilités s offrent à vous : ifstream permet de lire des fichiers. ofstream permet d écrire dans des fichiers. fstream permet de lire et d écrire dans des fichiers. 1
2 Le code actuelle nécéssitant à la fois d écrire et de lire dans des fichiers, il est plus préférable d inclure directement fstream. Une fois terminé, vous devriez pouvoir supprimer l inclusion de iostream.h sans causer d erreur de compilation. Information : en C++, ifstream, ofstream et fstream sont considerés comme des flux; il faut utiliser l opérateur ">>" pour lire le flux et "<<" pour écrire dedans. 1.3 Les String Lors de la compilation, vous devriez voir des avertissements lors de l utilisation de char* (tableau de caractère). En effet, l utilisation de char* en C++ est considèrée comme obsolète (deprecated). Modifiez le code pour utiliser les chaines de caractères standard de C++ (cf std::string). 1.4 Les Vector Dans le code fourni, les images sont stockées dans des tableaux de tableaux contenant des char. En C++, une manière habituelle s assurer que l on stocke des données de manière contiguë en mémoire (dans un seul block, sans discontinuité) est d utiliser les std::vector. Adaptez votre code pour utiliser des std::vector au lieu des tableaux classiques. Information Pour plus d efficacité, les tableaux multidimensionnelles sont toujours codés sous la forme d un tableau d une seule dimension. Par exemple, pour une image 2D, les lignes sont stockés à la suite les unes des autres. Calculez la position dans le tableau du pixel de coordonnées (x, y). 1.5 Paramètres de fonction L un des apports principaux du langage C++ par rapport au langage C est d introduire la notion de référence. A mi-chemin entre le passage par valeur et le passage par pointeur, le passage par référence évite la copie des données tout en laissant à l utilisateur la simplicité syntaxique d un passage par valeur. Afin de garantir des appels de fonction conforme au C++, modifiez les paramètres des fonctions (sauf pour les types primitifs) afin de supprimer les pointeurs pour les remplacer par des références (superflus dans le cas présent mais néanmoins très utilisé en C++). Information : pour éviter les effets de bord (modification non désiré de l état d une variable lors de l appel d une fonction), utilisez le mot clé const. 2
3 2 De l impératif à l objet Dans cette section, vous allez devoir modifier le code actuel pour le transformer en code dit orienté objet. On peut voir un programme orienté objet comme un ensemble d objets qui s envoient des messages. Lorsque les objets n ont plus de messages à s envoyer, le programme est fini. 2.1 Rappel sur le concept d Objet En C++, les objets sont modelisés par des classes. Une classe est composée de deux parties distinctes. Son état (les attributs que l objet possède à un moment de l éxecution) et son comportement (les différentes méthodes qui peuvent lui être appliquées). Un programme purement orienté objet ne possède ni fonctions (à l exception de la fonction main), ni variables globales. Bien évidemment, ces éléments prohibés se retrouvent quand même dans la plupart des codes. Dans certaines cas ils sont très pratiques et dans d autres indispensables. En effet le code purement objet souffre de beaucoup de défauts (cf design-pattern [GHJV95]). 2.2 La classe Image Le programme actuelle est conçu pour fonctionner autour d un objet Image. Vous devez donc coder une classe image qui permettra de stocker son état (sa taille et la valeur de ses pixels) ainsi que son comportement Les méthodes et attributs Dans un fichier Image.h, créez la classe Image. Les attributs devront être sa hauteur, sa largeur et un vecteur de pixel. Les méthodes devront être : Un Constructeur, par défaut (0 arguments) Un Constructeur, qui va charger l image à partir d un fichier Un Destructeur getpixel(x,y), qui récupère la couleur au pixel (x, y) setpixel(x,y,val), qui modifie la couleur au pixel (x, y) binarize(), qui va binarizer l image. save(output_filename), qui va permettre de sauvegarder l image. Dans le fichier Image.cpp, implémentez les différentes méthodes. 3
4 2.2.2 La fonction main v1 Si toute l architecture est correctement implémentée, vous devez avoir une fonction main de la forme suivante. Vérifiez le bon fonctionnement de votre implémentation à l aide de cette fonction. i n t main ( ) { Image img ( input_filename ) ; img. b i n a r i z e ( ) ; img. save ( output_filename ) ; } r eturn 1 ; 2.3 La classe ImageIO On souhaites à présent séparer les méthodes de chargement et de sauvegarde du fichier. Pour cela, on va créer une classe ImageIO qui va assurer le bon fonctionnement des toutes les entrées/sorties à partir d une Image. L avantage principale de cette approche est de ne pas avoir besoin de modifier la classe Image si l on souhaite travailler avec d autres formats d images (png, jpg, etc...) Les méthodes Dans un fichier ImageIO.h, créez la classe ImageIO. Qu importe la façon dont vous la créez, deux méthodes doivent impérativement être présentes: void Load(Image img, std::string filename); void Save(Image img, std::string filename); Implémentez ces méthodes dans ImageIO.cpp. N oubliez pas de supprimer les méthodes correspondantes de la classe Image La fonction main v2 Si toute l architecture est correctement implémentée, vous devez avoir une fonction main de la forme suivante. Vérifiez le bon fonctionnement de votre implémentation à l aide de cette fonction. i n t main ( ) { ImageIO imgio ; Image img ; imgio. load ( img, input_filename ) ; img. b i n a r i z e ( ) ; imgio. save ( img, output_filename ) ; } r eturn 1 ; 4
5 2.4 Flexibilité du code Maintenant que l architecture commence à tenir la route, il est temps de parler un peu de la partie image du projet. Pour l instant le code ouvre une image lena.pgm de taille fixe, la binarize, et la sauvegarde dans le fichier res-lena.pgm. Le logiciel est donc plutôt limité. Vous allez devoir le rendre plus fléxible Arguments dymaniques d un programme Tout comme en C, il est possible d utiliser des arguments lors de l appel de la fonction main : i n t main ( i n t argc, char argv [ ] ) ; Utilisez ces arguments pour passer en paramètre le nom du fichier d entrée et le nom du fichier de sortie Résolution d image dynamique Jusqu à présent, vous avez utilisé des images de résolution prédéterminées. Ces résolutions sont spécifiées à l aide de l instruction #define. En réalité, la résolution est déjà stockée dans le fichier image. Modifiez le code pour permettre de charger et de travailler avec des images de toutes résolution sans avoir besoin de la spécifier explicitement. Information : De manière générale, les valeurs en #define ressemblent conceptuellement beaucoup à des variables globales. Il est donc déconseillé de s en servir dans un code orienté objet La fonction main v3 Si toute l architecture est correctement implémentée, vous devez avoir une fonction main de la forme suivante. Vérifiez le bon fonctionnement de votre implémentation à l aide de cette fonction. i n t main ( i n t argc, char argv [ ] ) { ImageIO imgio ; Image img = imgio ( argv [ 1 ] ) ; img. b i n a r i z e ( ) ; imgio. save ( img, argv [ 2 ] ) ; } r eturn 1 ; 5
6 2.5 Avant d aller plus loin Que se passe t il lorsque le programme est utilisé sur un fichier image corrompu (incomplet)? Où si le fichier n existe pas? Qu arrive t il si l image est dans un format non reconnu (pgm binaire, png ou encore hdr)? De manière générale, il est judicieux de se prémunir de ces cas. Ajouter des sécurités dans votre code pour empécher au logiciel d avoir un comportement non désiré. Le code produit lors de ce TP est à rendre pour le vendredi 14 novembre (groupe 1), et pour le lundi 16 novembre (groupe 2). Des tests de robustesse seront effectués et le code sera lu. References [GHJV95] Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA,
TP : 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étailPatrons de Conception (Design Patterns)
Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques
Plus en détailProgrammation système en C/C++
Programmation système en C/C++ Jean-Baptiste Vioix (jb.vioix@free.fr) LE2I - ENESAD http://jb.vioix.free.fr 1-41 Programmation en C/C++ sous Unix Il existe des très nombreux outils de développement sous
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é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étailLe prototype de la fonction main()
Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme
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é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é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étailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
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étailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
Plus en détailProgrammation C. Apprendre à développer des programmes simples dans le langage C
Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités
Plus en détailINFO-F-105 Language de programmation I Séance VI
INFO-F-105 Language de programmation I Séance VI Jérôme Dossogne Année académique 2008 2009 Un grand merci à Yves Roggeman pour ses relectures et remarques des codes et commentaires qui ont contribuées
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étailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
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é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é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é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étail30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C++ 1. 16.mars.10 Cours 4 11.mai.10 Cours C++ 2
2ème partie de cours: 23.fév.10 Cours 1 20.avr.10 TEST 24.fév.10 TP1 21.avr.10 miniprojet 26.fév.10 TP réserve 23.avr.10 miniprojet 2.mars.10 Cours 2 27.avr.10 Présentation miniprojet 3.mars.10 TP2 28.avr.10
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étail1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
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étailArguments d un programme
Arguments d un programme L2 SPI, Bruno Jacob 1 Arguments Quand on appelle un programme dans un environnement UNIX ou MS- DOS, on compose une ligne de commandes de la forme : nom-du-programme argument1
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étailARCHIVAGE DES BASES DE
ARCHIVAGE DES BASES DE DONNEES ARNAUD HULSTAERT ET GRÉGORY OGONOWSKI MANAGEMENT SUMMARY SECTION RECHERCHE 04/2013 1. Introduction La croissance continue des volumes de données stockés dans les bases de
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é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étailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
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étailTypes d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles
Types d applications pour la persistance Université de Nice Sophia-Antipolis Version 0.9 28/8/07 Richard Grin Toutes les applications n ont pas une complexité qui nécessite une architecture n- tiers Ce
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
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étailExceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;
CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe
Plus en détailIntroduction à 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é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 - Connexion au service de gestion des demandes informatiques du lycée
1 - Connexion au service de gestion des demandes informatiques du lycée http://support.e-lycee-paca.fr Adresse du service en ligne à partir de tout point d accès internet, 24h/24. 1 Les identifiants sont
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 : La compilation
/38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà
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é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é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é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é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é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é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é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é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étailAvertissement : Ce cours suppose la connaissance et la maîtrise du langage C CONTENU DU COURS BIBLIOGRAPHIE
Enseignement : GI 62 - C++ - Programmation orienté objet (C++) Objectif : Ce module se situe dans la continuité des modules (ii12) et UEL RAN Informatique et permet d'acquérir les bases de la modélisation
Plus en détailExonet : sauvegarde automatisée d une base de données
Exonet : sauvegarde automatisée d une base de données Description Propriétés Description Intitulé long Formation concernée Matière Présentation Notions Transversalité Outils Mots-clés Durée 4h. Auteur(es)
Plus en détailCours 14 Les fichiers
Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une
Plus en détailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
Plus en détailOS Réseaux et Programmation Système - C5
OS Réseaux et Programmation Système - C5 Rabie Ben Atitallah rabie.benatitallah@univ-valenciennes.fr RPC - XDR Rappel RPC: Remote Procedure Call Besoin d un environnement de haut niveau pour le développement
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étailINDICATIONS DE CORRECTION
SUJET NATIONAL POUR L'ENSEMBLE DES CENTRES DE GESTION ORGANISATEURS CONCOURS INTERNE ET TROISIÈME VOIE DE TECHNICIEN TERRITORIAL PRINCIPAL DE 2 ème CLASSE SESSION 2014 SPÉCIALITÉ : INGENIERIE, INFORMATIQUE
Plus en détailDepuis des années, les films de science fiction
Steffen Nissen Création d'un réseau de neurones c'est facile Ressources en ligne : Sur le CD vous trouverez les fi chiers codes décrits dans l'article ainsi que la bibliothèque. Depuis des années, les
Plus en détailQUESTION 1 {2 points}
ELE4301 Systèmes logiques II Page 1 de 8 QUESTION 1 {2 points} En se servant de paramètres électriques donnés dans le Tableau 1 ci-dessous, on désire déterminer la fréquence d opération du compteur présenté
Plus en détail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
Plus en détailTD3: tableaux avancées, première classe et chaînes
TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première
Plus en détailCours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Plus en détailNotion de base de données
Notion de base de données Collection de données opérationnelles enregistrées sur un support adressable et utilisées par les systèmes et les applications Les données doivent être structurées indépendamment
Plus en détailUtilisation d objets : String et ArrayList
Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons
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étailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
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étailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailCompression de Données - Algorithme de Huffman Document de Conception
ROLLET Samuel SALLE Jennifer Compression de Données - Algorithme de Huffman Document de Conception Projet d'algorithmique et Structure des Données 1 SOMMAIRE 1. Domaine d application....4 1.1 Objectifs
Plus en détailIntroduction à C++ et à wxwidgets
Introduction à C++ et à wxwidgets Master IGC 1ère année Année universitaire 2011/2012 Christophe Renaud Version 1.5 19/09/2011 Introduction Objectifs du cours Introduction au langage objet C++ Introduction
Plus en détailDerrière toi Une machine virtuelle!
Derrière toi Une machine virtuelle! Yann-Gaël Guéhéneuc guehene@emn.fr École des Mines de Nantes, France Object Technology International Inc., Canada D où ça vient? Calculatrice Machine de Turing 1936
Plus en détailFascicule u7.05 : Impression de résultat pour visualisation
Titre : Procédure IMPR_RESU (FORMAT 'MED' Date : 06/05/2013 Page : 1/10 Procédure IMPR_RESU (FORMAT 'MED' 1 But Écrire le résultat d un calcul dans un fichier au format MED. On décrit l ensemble des mots
Plus en détailProgramme awk------introduction rapide
Programme awk------introduction rapide Introduction Historique Le nom de awk vient de ses trois concepteurs : Alfred V. Aho, Peter J. Weinberger et Brian W. Kernighan. La version originale fut créée en
Plus en détail4. Utilisation d un SGBD : le langage SQL. 5. Normalisation
Base de données S. Lèbre slebre@unistra.fr Université de Strasbourg, département d informatique. Présentation du module Contenu général Notion de bases de données Fondements / Conception Utilisation :
Plus en détailCréation et Gestion des tables
Création et Gestion des tables Version 1.0 Z Grégory CASANOVA 2 Sommaire 1 Introduction... 3 2 Pré-requis... 4 3 Les tables... 5 3.1 Les types de données... 5 3.1.1 Les types de données Sql Server... 5
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
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é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é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é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étailPréparation d un post (article) pour idweblogs
Préparation d un post (article) pour idweblogs 30/09/2013 Préparation des documents... 2 Le texte... 2 Les images... 2 Les vidéos... 3 Transmission des documents à idweblogs... 4 Par mail... 4 Via notre
Plus en détailDidacticiel Bases de programmation en C++
Université Joseph Fourier, Grenoble. Didacticiel Bases de programmation en C++ Dernière modication du chier cours_1.lyx : 17 sept 2014 Auteur :Frédéric Faure Table des matières 1 Introduction 3 2 L'environnement
Plus en détailINFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année Académique : 2004-2005
Université Libre de Bruxelles Faculté des Sciences Appliquées & Faculté des Sciences INFO 364 : Bases de Données Projet Professeur : Esteban Zimányi Assistants : Pierre Stadnik et Mohammed Minout Année
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailMachines virtuelles. Brique ASC. Samuel Tardieu sam@rfc1149.net. Samuel Tardieu (ENST) Machines virtuelles 1 / 40
Machines virtuelles Brique ASC Samuel Tardieu sam@rfc1149.net École Nationale Supérieure des Télécommunications Samuel Tardieu (ENST) Machines virtuelles 1 / 40 Machines virtuelles La compilation peut
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étailUN WEB MOBILE ET MULTICANAL
LA RÉVOLUTION DE LA RELATION CLIENT DANS LE MONDE DIGITAL : UN WEB MOBILE ET MULTICANAL 30/04/2013-16H30 Présenté Par : BOUBAKER Nobel El Houssine La Gestion De La Relation Client La gestion de la relation
Plus en détailLES TYPES DE DONNÉES DU LANGAGE PASCAL
LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.
Plus en détailWASD en environnement haute disponibilité Jean-Pierre PETIT WASD Le produit WASD WASD signifie Wide Area Surveillance Division C est le nom d une division de la défense australienne qui a accepté en 1996
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étailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
Plus en détailHMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP
IFT1147 Programmation Serveur Web avec PHP Un bref survol du langage HTML HMTL HTML: Hypertext Markup Language HTML est essentiellement un langage de description de structure de document (par exemple titre,
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étailIntroduction au pricing d option en finance
Introduction au pricing d option en finance Olivier Pironneau Cours d informatique Scientifique 1 Modélisation du prix d un actif financier Les actions, obligations et autres produits financiers cotés
Plus en détailTravaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation
Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des
Plus en détailUtiliser le logiciel Photofiltre Sommaire
Utiliser le logiciel Photofiltre Sommaire 1. Quelques mots sur l image 2. Obtenir des images numériques 3. Le tableau de bord de logiciel PhotoFiltre 4. Acquérir une image 5. Enregistrer une image 6. Redimensionner
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étailProgrammation stochastique
Programmation stochastique (Partie 1) IFT-6512 Hiver 2008 Présentation succinte COIN-OR? COmputational INfrastructure for Operations Research. Préalablement, COIN-OR tenait pour Common Optimization INterface
Plus en détailConsignes pour les travaux d actualité Premier quadrimestre
Consignes pour les travaux d actualité Premier quadrimestre Principes de base Durant le premier semestre, vous serez amenés à remettre un travail effectué en groupe. Le but de celui-ci est de s intéresser
Plus en détailCAISSE ENREGISTREUSE ELECTRONIQUE SE-G1
AISSE ENREGISTREUSE ELETRONIQUE SE-G PROGRAMMATION SIMPLIFIEE 20/0/204 SOMMAIRE PROGRAMMATION SIMPLIFIEE.... Introduction... 2. Programmation... 4 Initialisation de la caisse :... 4 Programmation de base
Plus en détailJava et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour http://cuiwww.unige.
: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java Michel Bonjour http://cuiwww.unige.ch/~bonjour Plan JDBC: API bas niveau pour l accès aux BD (SQL) - Introduction - JDBC et : Java, ODBC, SQL
Plus en détail