TP : Gestion d une image au format PGM

Dimension: px
Commencer à balayer dès la page:

Download "TP : Gestion d une image au format PGM"

Transcription

1 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 telles que la lecture et l écriture d images dans ce format. Dans un second temps, il est proposé de compléter cette classe avec des méthodes de filtrage d images. Enfin, pour ceux qui sont très très très fort et qui vont très très très vite, on propose, dans la 3 ième partie, une extension du programme aux images couleurs (format PPM). Préliminaires : Dans un répertoire de votre choix, créez trois fichiers contenant le programme principal et la classe Image. Téléchargez dans ce même répertoire les images «blood.pgm», «flowers.pgm», et «Logo.pgm» qui se trouvent Vous pouvez observer les images en utilisant n importe quel logiciel de visualisation d images. Détails du format PGM : Le format PGM est un format d enregistrement d images non compressé relativement simple. Les images sont codées par des valeurs représentant les niveaux de gris de leurs pixels. Ces valeurs sont comprises entre 0 (noir) et 255 (blanc) et représentent différentes teintes de gris. D un point de vue programmation, le type de donnée le plus approprié pour stocker le niveau de gris d un pixel est «unsigned char». Le format d image PGM est composé d une en-tête de quelques lignes (contenant notamment les dimensions de l image et des commentaires), suivi de la liste des niveaux de gris, enregistrés par ligne par ligne. Comme vous pouvez le constater en ouvrant l image «logo.pgm» avec un éditeur de texte, un fichier au format PGM se présente sous la forme suivante : P5 Mot clé indiquant un fichier PGM en mode binaire # Ligne de commentaires # Ligne de commentaires Dimensions de l image (66 colonnes, 300 lignes) 255 Valeur du niveau de gris max Ž ƒƒƒ... Niveau de gris des pixels octet par octet Le niveau de gris d un pixel de l image est, en fait, le code ASCII d un caractère (ce qui justifie la présence des caractères spéciaux). Pour simplifier le programme, on supposera qu il n y a qu une seule ligne de commentaire dans l en-tête. ère partie Création, lecture et écriture d une image au format PGM Pour manipuler les fichiers contenant les images (ouverture, lecture, écriture), il est nécessaire de connaître les classes C++ appropriées. Allez donc voir la synthèse sur les flots d entrée/sortie à la fin de l énoncé (en plus du cours, bien sûr)! - Création et enregistrement d une image Programmez une classe Image répondant au programme principal suivant : int main() { int i; // Création d'une image de 00 lignes, 50 colonnes, // initialisée à 0 (noir) Image im( 00, 50, true ); // Dessine une diagonale blanche dans l'image for (i = 0; i<im.ligne(); i++) im.setpixel(i,i, (unsigned char) 255); // Enregistrement de l'image de nom toto.pgm avec un commentaire

2 im.writepgm ( "toto.pgm", "Ceci est un commentaire"); return 0 ; } En mémoire, l image pourra être codée comme un vecteur de unsigned char de dimension = Nb Lignes * Nb Colonnes. Ainsi, le pixel de la ligne l et de la colonne c de l image aura pour coordonnée dans le vecteur : l * Nb Colonnes + c. 2- Constructeur par recopie et surcharge de l opérateur = Codez les méthodes nécessaires pour répondre aux instructions suivantes : // Constructeur par recopie de im dans im2 Image im2( im ); im2.writepgm ( "titi.pgm", "Bonjour!"); // Surcharge de l opérateur = entre im et im3 Image im3( 200, 50, false ); im3 = im; 3- Lecture d une image Codez la méthode de lecture nécessaire pour lire une image. Pour vous assurer que votre lecture est correcte, vous pouvez l enregistrer, juste après la lecture, sous un nouveau nom : // Constructeur avec lecture directe Image im4( "logo.pgm" ); Im4.WritePGM ( "copielogo.pgm", "Duplication de l image logo.pgm"); Vérifiez avec votre logiciel de visualisation d images que l image originale et la copie sont bien identiques. Vous pouvez également ouvrir votre copie avec un traitement de texte pour vérifier que l entête est correcte (notamment le commentaire). 2 ère partie Filtrage d images Dans cette seconde partie, complétez la classe avec une méthode de filtrage d image (filtre de Sobel). Celle-ci est brièvement présentée ci-dessous. Pour vos expériences, vous pouvez utiliser l image «Blood.pgm». Le programme principal aura l allure suivante : // Lecture de l'image originale Image Blood( "blood.pgm" ); // Filtrage de l'image selon Sobel Blood.Sobel(); // Enregistrement de l'image Blood.WritePGM("bSobel.pgm", "Filtre Sobel Im.Orig= blood.pgm"); 0 Le filtre de Sobel à l allure suivante : S = Le principe du filtrage consiste à appliquer le filtre sur tous les pixels de l image, de la manière suivant : Si (l,c) désigne les coordonnées du pixel à filtrer, le niveau de gris filtré du pixel est obtenu en sommant les niveaux de gris de ses voisins pondérés par les coefficients de la matrice S, puis en divisant cette somme par 4. Si N et M désignent respectivement le niveau de gris du pixel original de coordonnées lc, lc, (l,c), et le niveau de gris du pixel filtré de coordonnées (l,c), nous avons :

3 M l, c 4 ( N N N + N + N N ) = l, c l, c l, c l, c+ l +, c + l +, c+ Remarques : - Ne traitez pas les pixels au bord de l image (ils posent certaines difficultés qu il n est pas nécessaire de résoudre dans le cadre de cet exercice). - Le niveau de gris filtré n est pas forcément un nombre entier positif De plus, la valeur obtenue n est pas forcément comprise entre 0 et 255 A vous de faire les traitements adéquats Examinez l image ainsi filtrée et interprétez le résultat à l aide des coefficients du filtre D autres filtres de même forme sont possibles, en voici quelques uns : Filtre de Prewitt : 2 P = , Filtre Laplacien : L = 9.96 Vous pouvez également combiner des filtres et en inventer vous-même! ème partie Lecture / Ecriture d images couleur au format PPM Il s agit de créer une nouvelle classe permettant de manipuler des images couleurs au format PPM. Créez un second projet et utilisez les noms de fichier suivants ImageCouleur.h et ImageCouleur.cpp. Le format PPM, qui permet d enregistrer des images couleurs, est presque identique au format PGM aux différences suivantes : - Dans l en-tête, nous avons P6, dans la première ligne, au lieu de P5. - Les données sont organisées de la manière suivante : la suite des valeurs est constituée des intensités de chaque pixel de l'image, dans les trois canaux (rouge), (vert) et (bleu). Chacune de ces intensités est codée sur un octet, donc a une valeur entière comprise entre et. Quels sont vos attributs? Outre les méthodes de la classe précédente qu il est possible d étendre à notre cas, proposez également une méthode qui permette de transformer une image couleur en une image à niveaux de gris. Dans ce cas, vous considèrerez que le niveau de gris est égale à la moyenne des valeurs sur les trois canaux R, V, B). Comment filtrer une image couleur? Pour vos tests, vous utiliserez l image «flowers.ppm».

4 Annexe Synthèse sur les flots associés aux fichiers (classes ofstream et ifstream) Jusqu à présent, nous avons parlé de flots prédéfinis (cout et cin) mais sans dire comment ce flot pourrait être associé à un fichier. Cette synthèse montre comment y parvenir et examine les possibilités d accès direct dont on peut alors bénéficier. Attention, les méthodes offertes par ces deux classes sont bien plus nombreuses que celles exposées. Néanmoins, les méthodes présentées devraient suffire pour réaliser le sujet. - Connexion d un flot de sortie à un fichier Pour associer un flot de sortie à un fichier, il suffit de créer un objet de type ofstream. L emploi de cette nouvelle classe nécessite d inclure un fichier d en-tête nommé fstream.h, en plus de iostream.h. Le constructeur de la classe nécessite deux arguments : - Le nom du fichier concerné (chaîne de caractères) - Un mode d ouverture défini par une constante (cf. table ) Voici un exemple de déclaration d un objet du type ofstream : ofstream sortie ("truc.dat", ios::out ios::binary); L objet sortie sera donc associé au fichier nommé truc.dat, après avoir été ouvert en écriture. Une fois construit, l écriture dans le fichier associé peut se faire comme n importe quel flot (en particulier cout). Pour tester si l ouverture s est bien passée, on pourra utiliser if (!sortie.is_open() ) { }; Pour fermer le fichier, on utilisera sortie.close(); Pour écrire dans un fichier, nous pourrons employer : sortie << << << endl; pour écrire en mode texte et int temp = 0 ; sortie.write( temp, sizeof(int) ); ou char buf[80]="bonjour!"; sortie.write( buffer, strlen(buf)*sizeof(char)); pour écrire en mode binaire 2- Connexion d un flot d entrée à un fichier Pour associer un flot d entrée à un fichier, on emploie un mécanisme analogue à celui utilisé pour un flot de sortie. Il faut toujours inclure le fichier d en-tête fstream.h en plus du fichier iostream.h. Le constructeur comporte les mêmes arguments que précédemment, c est à dire le nom du fichier et le mode d ouverture. Par exemple avec l instruction : ifstream entree ("truc.dat", ios::in ios::binary); l objet entree sera associé au fichier de nom truct.dat, après avoir été ouvert en lecture. Pour tester si l ouverture s est bien passée, on pourra utiliser if (!entree.is_open() ) { }; Pour fermer le fichier, on utilisera entree.close(); Pour lire dans un fichier, nous pourrons employer : entree >> >> ; pour lire en mode texte et int temp ; entree.read( temp, sizeof(int));

5 ou char buffer[80]; entree.getline(buffer, 80); pour lire en mode binaire. 3- Les possibilités d accès direct La méthode read( ) par exemple permet de lire séquentiellement dans un fichier, c est à dire depuis le début de ce fichier jusqu à sa fin. L incrémentation dans le fichier (pour se préparer à la prochaine lecture) est effectuée automatiquement par read( ). Ceci peut s avérer contraignant lorsque l on souhaite lire une information à une position connue dans le fichier. Des possibilités d accès directe sont donc offertes, en agissant sur un pointeur dans ce fichier, c est à dire en précisant le rang du prochain octet à lire ou à écrire. Les classes ifstream et ofstream offrent respectivement des méthodes de positionnement du pointeur, appelées seekg( ) et seekp( ). Ces méthodes comportent deux arguments : - Un entier représentant un déplacement du pointeur, par rapport à une origine précisée par le second argument - Une constante entière choisie parmi les trois possibilités présentées dans la table 2. Exemples : entree.seekg(0, ios::cur); sortie.seekp(0, ios::end); Par ailleurs, il existe dans chacune des classes ifstream et ofstream une fonction permettant de connaître la position courante du pointeur. Il s agit de tellg( ) pour ifstream et de tellp( ) pour ofstream. Exemples : int position = entree.tellg(); int position2 = sortie.tellp(); 4- Modes d ouverture et modes de déplacement Constante Action ios::in Ouverture en lecture (obligatoire pour la classe ifstream) ios::out Ouverture en écriture (obligatoire pour la classe ofstream) ios::app Ouverture en ajout de données (écriture en fin de fichier) ios::trunc Si le fichier existe, son contenu est perdu ios::binar Le fichier est ouvert en mode binaire. Ce mode est uniquement y utilisé pour les systèmes d exploitation (comme windows!) qui distinguent les fichiers texte des autres. Table : Modes d ouverture d un fichier Constante Action ios::beg Le déplacement est exprimé par rapport au début du fichier ios::cur Le déplacement est exprimé par rapport à la position actuelle ios::end Le déplacement est exprimé par rapport à la fin du fichier Table 2 : Modes de positionnement dans un fichier

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique.

Les entrées et les sorties sont considérées comme des flots. Un flot est associé à un fichier ou à un périphérique. Le langage C++ Master Actuariat Séance 5 : Les flots C++ - F.CHAKER- M1 Actuariat 2014/2015 1 Les entrées sorties en C++ Les entrées et les sorties sont considérées comme des flots. Un flot est associé

Plus en détail

Programmation C++ (débutant)/les fichiers

Programmation C++ (débutant)/les fichiers Programmation C++ (débutant)/les fichiers 1 Programmation C++ (débutant)/les fichiers Généralité sur les fichiers La règle générale pour créer un fichier est la suivante : il faut l'ouvrir en écriture.

Plus en détail

Les entrées sorties en C/C++

Les entrées sorties en C/C++ Les entrées sorties en C/C++ Dans ce chapitre, nous allons voir les fonctions d entrée/sortie du langage C++, extension du langage C. Écriture sur la sortie standard Fonction printf et opérateur

Plus en détail

Mini projet : traitement d'images

Mini projet : traitement d'images Mini projet : traitement d'images Pour ce mini-projet, la pièce finale sera un fichier «mosaique-prenom-nom.py» contenant votre programme que vous enverrez à vos professeurs : pjacquet.mail@gmail.com et

Plus en détail

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION

LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION Licence STS Université Claude Bernard Lyon I LIF1 : ALGORITHMIQUE ET PROGRAMMATION IMPÉRATIVE, INITIATION 1 COURS 7 : Structures et Fichiers OBJECTIFS DE LA SÉANCE Deux notions abordées dans ce cours Celle

Plus en détail

Projet Matlab : un logiciel de cryptage

Projet Matlab : un logiciel de cryptage Projet Matlab : un logiciel de cryptage La stéganographie (du grec steganos : couvert et graphein : écriture) consiste à dissimuler une information au sein d'une autre à caractère anodin, de sorte que

Plus en détail

INFO-F-101 Programmation Projet 4

INFO-F-101 Programmation Projet 4 INFO-F-101 Programmation Projet 4 Année académique 2008-2009 1 Introduction Une image peut-être décomposée en un tableau de points élémentaires appelés pixels (abréviation de picture element). Supposons

Plus en détail

Tableaux et manipulation d images «bitmap»

Tableaux et manipulation d images «bitmap» T.P. numéro VII Tableaux et manipulation d images «bitmap» Ce T.P. va faire intervenir les notions suivantes : lecture/écriture de fichiers binaires ; images bitmap ; tableaux de données. 1 Fichiers binaires

Plus en détail

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens

INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens INFO-F-101 Programmation Projet 4 Page Ranking(1/4): Création de la matrice du compte des liens Année académique 2009 2010 1 Introduction Ce projet est le premier d une série de quatre projets qui ont

Plus en détail

Chapitre cinq : Représentation des Images

Chapitre cinq : Représentation des Images Chapitre cinq : Représentation des Images Ce chapitre présente les bases pour la représentation des images et des sons. ~ 1 ~ 6. 6.1.1. Introduction Il existe plusieurs moyens de représenter des images.

Plus en détail

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP*

II. Conversions. I. Initialisation. III. Méthode point. TD Python Traitement d images MP* Le but de ce TD est d utiliser les procédures et fonctions Python pour traiter des fichiers images. II. Conversions I. Initialisation Importer le module numpy sous l appellation np. On utilise le module

Plus en détail

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

Chap III : Les tableaux

Chap III : Les tableaux Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction

Plus en détail

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C

1 Hello world. 2 Sorties en C. DUT Informatique M3101 Système S3 2015 / 2016. Travaux Pratiques n o 0 : Rappels de programmation C DUT Informatique 2015 / 2016 Travaux Pratiques n o 0 : Rappels de programmation C Nom(s) : Groupe : Date : Objectifs : renouer avec les notions, la manipulation et l écriture de programmes C, en particulier

Plus en détail

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel

Tableau R : 255 0 0 255 255 0. Tableau G : 0 255 255 255 255 0. Tableau B : 0 0 255 0 255 0. Chaque carré représente un pixel Mini-Projet n 2 : Jouer avec les images. A rendre pour le lundi 14 novembre 2011 avant midi. Introduction : Une image est un ensemble de pixels dont chacun est défini par trois valeurs, que l'on note R,

Plus en détail

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres.

1.1 Écrire dans votre cahier la lettre de chaque instruction syntaxiquement correcte. Note: Les instructions sont indépendantes les unes des autres. QUESTION 1 (3 Points) Ces déclarations sont utilisées pour les sous-questions 11 à 13 const int LONGMAX = 51; const int CDMAX = 100; typedef char type_string[longmax]; enum type_classement POURRI,PASSABLE,BON,TRES_BON,EXCELLENT

Plus en détail

La notion de format. Représenter des images et des sons

La notion de format. Représenter des images et des sons La notion de format Exercice 1 Créer avec un éditeur de texte simple (comme Notepad) un fichier au format PBM de dimensions 20x20 qui affiche le logo ISN. A quel problème d affichage est-on confronté?

Plus en détail

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés

ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique :

Plus en détail

Utiliser des images sous MATLAB Version du 20 mars 2012

Utiliser des images sous MATLAB Version du 20 mars 2012 Utiliser des images sous MATLAB Version du 20 mars 2012 1 Les images à TELECOM ParisTech L existence de l équipe Image de TELECOM ParisTech remonte à près de 30 ans. Aussi il existe un format d image spécifique

Plus en détail

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs)

CHAPITRE 6 : Tableaux. Définition. Tableaux à une dimension (Vecteurs) Année Universitaire 2006/2007 CHAPITRE 6 : Tableaux Définition Tableaux à une dimension (Vecteurs) Déclaration ; Mémorisation M ; Tableaux à plusieurs dimensions Déclaration Tableaux à deux dimensions

Plus en détail

Classes et templates C++

Classes et templates C++ Classes et templates C++ Ce TP propose une application des classes, des templates et du polymorphisme au travers du design de classes permettant de gérer des courbes de Bézier. Contents 1 Bézier unidimensionnelle

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Bibliothèque de Traitement d Images en Niveaux de Gris

Bibliothèque de Traitement d Images en Niveaux de Gris TP Bibliothèque de Traitement d Images en Niveaux de Gris Étudiants : Besnier Alexandre Taforeau Julien Version 1.2 Janvier 2008 2008 Rapport TP - Version 1.2 i Table des matières Introduction 1 1 Objectif

Plus en détail

Chapitre 3 : Pointeurs et références

Chapitre 3 : Pointeurs et références p. 1/18 Chapitre 3 : Pointeurs et références Notion de pointeur L adresse d une variable est une valeur. On peut donc la stocker dans une variable. Un pointeur est une variable qui contient l adresse d

Plus en détail

Tableaux (introduction) et types de base

Tableaux (introduction) et types de base Tableaux (introduction) et types de base A. Motivation..................................................... 4 B. Les tableaux.................................................... 5 C. Construction des tableaux.......................................

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux 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étail

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL

ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique. Cours 3.307P: INFORMATIQUE EXAMEN FINAL ECOLE POLYTECHNIQUE DE MONTREAL DEPARTEMENT DE GENIE ELECTRIQUE ET DE GENIE INFORMATIQUE Section informatique Cours 3.307P: INFORMATIQUE EXAMEN FINAL DATE : Dimanche 8 décembre 1996 HEURE: DE 13h30 A 16h00

Plus en détail

PG208, Projet n 3 : Serveur HTTP évolué

PG208, Projet n 3 : Serveur HTTP évolué PG208, Projet n 3 : Serveur HTTP évolué Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5

Claude Delannoy. Exercices C++ en langage. 3 e édition. Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Claude Delannoy Exercices en langage C++ 3 e édition Groupe Eyrolles, 1997, 1999, 2007, ISBN : 978-2-212-12201-5 Chapitre 3 Les fonctions Rappels Généralités Une fonction est un bloc d instructions éventuellement

Plus en détail

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu

SNAKE. Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp. Copie d écran du jeu SNAKE Programmation du jeu SNAKE sur la console Windows en C sous l IDE Devcpp Copie d écran du jeu Principe de fonctionnement du jeu : le serpent avance automatiquement, le joueur ne peut agir que sur

Plus en détail

Représenter les images

Représenter les images Représenter les images 4/1/01 1 Travail La séance de travail du 4/1 consiste à travailler l ensemble de ce document Les résolutions des exercices 3 et 11 sont à déposer dans les casiers numériques de vos

Plus en détail

PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2)

PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2) PROGRAMMATION C TD/TP 8 - TRAITEMENT D IMAGE (2) LICENCE MATHS-INFO 19-20 MARS 2012 Introduction Le premier TP de la série sur le traitement des images a permis d avoir des fonctions de lecture/écriture

Plus en détail

Thème Image - TP2 - Compression

Thème Image - TP2 - Compression Université Joseph Fourier DLST UE MAP110/120 Année 2013-14 Thème Image - TP2 - Compression Compte-ru Il vous est demandé de rédiger un compte-ru pour ce TP. Ouvrez en parallèle un document Open Office

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

DS Java 1. 19 novembre 2005

DS Java 1. 19 novembre 2005 DS Java 1 19 novembre 2005 Durée : 2 heures. Documents (notes et polycopiés) autorisés. La rigueur et la propreté seront prises en compte dans l évaluation. Le barème est indicatif. Vous rédigerez vos

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2014-2015 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 8 pages

Plus en détail

PG208, Projet n 1 : Gestion d une bibliothèque

PG208, Projet n 1 : Gestion d une bibliothèque PG208, Projet n 1 : Gestion d une bibliothèque Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L

Plus en détail

Composant GANTT. Compétences à mettre en œuvre

Composant GANTT. Compétences à mettre en œuvre Composant GANTT C# Compétences à mettre en œuvre C4.1.6.1 Mettre en place et exploiter un environnement de développement C4.1.6.2 Mettre en place et exploiter un environnement de test C4.1.7.1 Développer

Plus en détail

Flux. Gestion des Exceptions. SmartPointer. Entrées-sortiessorties Fichiers. F. Cloppet POO Avancée M1 C++ 271

Flux. Gestion des Exceptions. SmartPointer. Entrées-sortiessorties Fichiers. F. Cloppet POO Avancée M1 C++ 271 Notions Complémentaires Flux Entrées-sortiessorties Fichiers Gestion des Exceptions SmartPointer F. Cloppet POO Avancée M1 C++ 271 Généralités Flux = séquence d octets (byte) Flux s écoulent des périphériques

Plus en détail

Résolution d exercices avec Visual Studio

Résolution d exercices avec Visual Studio Résolution d exercices avec Visual Studio Document rédigé par David Taralla 3 e Bachelier en Sciences Informatiques david.taralla@student.ulg.ac.be Dernière version : 7 novembre 2011 Préambule Ce petit

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

TP 7 : Manipulation d images.

TP 7 : Manipulation d images. Lycée Masséna TP 7 : Manipulation d images. On va voir deux choses dans ce TP : les tableaux Numpy, qui sont très pratiques pour les opérations terme à terme entre tableaux de nombres à plusieurs dimensions.

Plus en détail

TP2 Opérations et filtres

TP2 Opérations et filtres TP2 Opérations et filtres 1. Opérations arithmétiques Mettre en place les fonctions Min et Max sur 2 images en niveaux de gris. Min() conserve entre 2 images les pixels de luminance minimum, Max() conserve

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

3 : LA COMPRESSION DE DONNEES

3 : LA COMPRESSION DE DONNEES 3 : LA COMPRESSION DE DONNEES Représentation de l information Algorithmique Langages et programmation Architectures matérielles CONNAISSANCES ABORDEES Numérisation : Coder sous forme d'un code standard

Plus en détail

Introduction à l informatique, à Python, et représentation des nombres en machine

Introduction à l informatique, à Python, et représentation des nombres en machine Introduction à l informatique, à Python, et représentation des nombres en machine Table des matières Qu est-ce-que l informatique? Qu est-ce-qu un ordinateur? 2 Principaux composants...............................................

Plus en détail

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde

Si vous décidez d utiliser un autre chemin, c est ce nouveau chemin qu il faudra prendre en compte pour la sauvegarde. Cf. : Chapitre 9 Sauvegarde Sommaire Installation du logiciel...2 Enregistrement du logiciel...2 Présentation du logiciel...3 Initialisation du logiciel... 1. Initialisation des constantes...4 2. Initialisation des codes grades...5

Plus en détail

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

DE 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étail

Thème Image - TP1 - Images au format bitmap

Thème Image - TP1 - Images au format bitmap Université Joseph Fourier DLST UE MAP110/120 Année 2013-14 Thème Image - TP1 - Images au format bitmap Compte-ru Il vous est demandé de rédiger un compte-ru pour ce TP. Ouvrez en parallèle un document

Plus en détail

ReadCard Guide Utilisateur

ReadCard Guide Utilisateur ReadCard Guide Utilisateur Document révision 04 Copyright 2011 ISLOG Network. Tout droit réservé. Historique de version Date Auteur Description Document Version 04/05/09 A Humilier Version initiale 00

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

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

IN 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

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE

ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ÉCOLE POLYTECHNIQUE DE MONTRÉAL DÉPARTEMENT DE GÉNIE INFORMATIQUE ING1025 : INFORMATIQUE EXAMEN INTRA Date Vendredi 10 octobre 2003 Heure De 8h30 à 10h20 Notes Ce questionnaire contient 4 questions sur

Plus en détail

Projet Pratique de INF241 Parcours de Tableaux

Projet Pratique de INF241 Parcours de Tableaux Projet Pratique de INF241 Parcours de Tableaux L objectif de ce projet est de travailler sur les tableaux en langage d assemblage ARM. Vous devez réaliser votre projet en partie lors des séances encadrées

Plus en détail

TP2 : Windows 2003 Server et Active Directory

TP2 : Windows 2003 Server et Active Directory TP2 : Windows 2003 Server et Active Directory Description de la configuration et des objectifs du TP : Un serveur Windows 2003 contrôleur de domaine est accessible sur le réseau, son adresse IP vous sera

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

PG208, Projet n 2 : Dessin vectoriel

PG208, Projet n 2 : Dessin vectoriel PG208, Projet n 2 : Dessin vectoriel Bertrand LE GAL, Serge BOUTER et Clément VUCHENER Filière électronique 2 eme année - Année universitaire 2011-2012 1 Introduction 1.1 Objectif du projet L objectif

Plus en détail

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

TD3: 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étail

Langage procédural C

Langage procédural C Langage procédural Le langage C Laboratoire ISIR (email: ouarti@isir.upmc.fr) 2012 Qu est ce qu un algorithme Ici nous n étudierons que les algorithmes séquentiels Chaque instruction se fait l une à la

Plus en détail

Épreuve d informatique 2011

Épreuve d informatique 2011 A 2011 INFO. MP ÉCOLE NATIONALE DES PONTS ET CHAUSSÉES, ÉCOLES NATIONALES SUPÉRIEURES DE L AÉRONAUTIQUE ET DE L ESPACE, DE TECHNIQUES AVANCÉES, DES TÉLÉCOMMUNICATIONS, DES MINES DE PARIS, DES MINES DE

Plus en détail

Module d anonymisation

Module d anonymisation Module d anonymisation Préambule Ce module permet d «anonymiser» un fichier, c est à dire de masquer les informations qu il contient en fonction de règles préalablement spécifiées. Le fichier généré par

Plus en détail

Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images!

Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images! I. Bien ranger ses affaires. Traitement d'image ou Programmer des fonctions de logiciels de retouche d'images! Pour bien travailler il est très important de savoir où sont rangées ses affaires. On va travailler

Plus en détail

Introduction à la programmation sous Scilab : TP auto-correctifs II

Introduction à la programmation sous Scilab : TP auto-correctifs II Introduction à la programmation sous Scilab : TP auto-correctifs II Licence de Physique à distance Table des matières I Vecteurs et matrices (II) 1 a) Vecteurs........................................ 1

Plus en détail

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

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de:

C, seconde séance. le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: C, seconde séance le if then else n est pas une expression, mais une instruction ( Caml) se souvenir de: false, c est 0 ( \0 aussi) test d égalité: == pour printf: %d entier, %f flottant, %c caractère,

Plus en détail

1 Les entrées-sorties, les ux

1 Les entrées-sorties, les ux 1 Les entrées-sorties, les ux 1 1.1 Généralités les fonctions d'entrée/sortie n'appartiennent pas au langage C++ mais à la bibliothèque standard Les fonctions d'entrée/sortie sont déclarées dans le chier

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (2eme session) durée 2h Tous documents et calculatrices autorisés. Le sujet comporte 6 pages Le temps approximatif ainsi que le barème

Plus en détail

Le langage C. Séance n 4

Le 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étail

IUT STID, 1 ère année Découverte de logiciels statistiques Prise en main du logiciel SPAD

IUT STID, 1 ère année Découverte de logiciels statistiques Prise en main du logiciel SPAD Université de Perpignan - IUT de Carcassonne Vivien ROSSI Année 2006/2007 IUT STID, 1 ère année Découverte de logiciels statistiques Prise en main du logiciel SPAD Ce document est tiré du site : http ://www.stat.ucl.ac.be/ispersonnel/lecoutre/stats/spad/

Plus en détail

TP4 : Stockage de données

TP4 : Stockage de données TP4 : Stockage de données 1 TP4 : Stockage de données Programmation Mobile Objectifs du TP Ce TP a pour objectif de vous initier au stockage des données dans le téléphone Android, dans la mémoire interne

Plus en détail

Le fichier séquentiel [fs]

Le fichier séquentiel [fs] Le fichier séquentiel [fs] Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 17 avril 2015 Table des matières 1 Présentation 2 2 Exploitation d un document 3 3 Primitives

Plus en détail

Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique

Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique Mathématiques/Sciences Physiques Séance N 8 Codage d une image numérique INTRODUCTION Une image numérique est un ensemble discret de points appelés PIXELS (contraction de PICTure ELements). Elle a pour

Plus en détail

INF-130 Travail Pratique #2

INF-130 Travail Pratique #2 École de technologie supérieure INF-30 Travail Pratique #2 Travail individuel Tracé d un métro Francis Bourdeau, Frédérick Henri et Patrick Salois Remise à la 0 e semaine. Objectifs - Amener l étudiant

Plus en détail

COURS et TP DE LANGAGE C++

COURS et TP DE LANGAGE C++ COURS et TP DE LANGAGE C++ Chapitre 1 Eléments de langage C++ Joëlle MAILLEFERT joelle.maillefert@iut-cachan.u-psud.fr IUT de CACHAN Département GEII 2 CHAPITRE 1 ELEMENTS DE LANGAGE C++ Les exercices

Plus en détail

TS214 - Compression/Décompression d une image binaire

TS214 - Compression/Décompression d une image binaire Filière Télécommunications, 2 ème année TS214 - Compression/Décompression d une image binaire De nombreux télécopieurs utilisent la recommandation T.4 Groupe 3 de l International Telecommunications Union

Plus en détail

TP2a : Windows 2008 Server et Active Directory + station windows 7

TP2a : Windows 2008 Server et Active Directory + station windows 7 TP2a : Windows 2008 Server et Active Directory + station windows 7 Description de la configuration et des objectifs du TP : Installer un serveur Windows 2008 contrôleur de domaine en machine virtuelle

Plus en détail

Programmation C++ (débutant)/les tableaux statiques

Programmation C++ (débutant)/les tableaux statiques Programmation C++ (débutant)/les tableaux statiques 1 Programmation C++ (débutant)/les tableaux statiques Le cours du chapitre 6 : les tableaux statiques Les tableaux Une variable entière de type int ne

Plus en détail

Manuel d aide www.aixpoz.com

Manuel d aide www.aixpoz.com Manuel d aide www.aixpoz.com Introduction AIXPOZ est un système de création de sites Internet «galerie photo» à destination de toute personne souhaitant exposer des images sur Internet. Que vous soyez

Plus en détail

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images

Arnaud DABOUIS Vincent HURBOURQUE IMAC 1. PROJET C : Traitement d images PROJET C : Traitement d images 1 SOMMAIRE 1) Schéma et structure a) Schéma de la structure b) Les structures utilisées La structure image La structure calque La structure LUT La structure Historique et

Plus en détail

MÉRÉ Aurélien FIIFO1. Pathfinder

MÉRÉ Aurélien FIIFO1. Pathfinder MÉRÉ Aurélien FIIFO1 AMC Pathfinder 1 Sommaire Préambule... 3 Modélisation de l espace... 4 Modélisation des cases δ, α... 4 Interface en mode texte... 5 Modélisation du robot... 8 1 ) Le type Robot...

Plus en détail

Programmation impérative

Programmation 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étail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

Plus en détail

Structure du format BMP, sa lecture, sa construction et son écriture

Structure du format BMP, sa lecture, sa construction et son écriture Structure du format BMP, sa lecture, sa construction et son écriture Claude Parisel Mars 2003 Table des matières : 1. Le choix du format 2. Commentaires sur les autres formats 3. Format BMP pour noir&blanc,

Plus en détail

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures)

L2 - Algorithmique et structures de données (Année 2010/2011) Examen (2 heures) L2 - lgorithmique et structures de données (nnée 2010/2011) Delacourt, Phan Luong, Poupet xamen (2 heures) Les documents (cours, TD, TP) sont autorisés. Les quatre exercices sont indépendants. À la fin

Plus en détail

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E

Série notée Sujet 1. Règles et recommandations : Instructions ÉC O L E P O L Y T E C H N IQ U E FÉ DÉR A L E D E L A U S A N N E EIDGENÖSSISCHE TECHNISCHE HOCHSCHULE LAUSANNE POLITECNICO FEDERALE LOSANNA SWISS FEDERAL INSTITUTE OF TECHNOLOGY LAUSANNE Faculté Informatique et Communication Cours Informatique II (SV) Jamila Sam ÉC

Plus en détail

Héritage [he] Exercices résolus

Héritage [he] Exercices résolus Héritage [he] Exercices résolus Karine Zampieri, Stéphane Rivière, Béatrice Amerein-Soltner Unisciel algoprog Version 29 avril 2015 Table des matières 1 Comptes bancaires 1 1.1 Classe CBancaire...............................

Plus en détail

Eléments de programmation pour l analyse d image

Eléments de programmation pour l analyse d image High Tech Imaging Analyse d image Travaux Pratiques Eléments de programmation pour l analyse d image 0. CONCEPTS FONDAMENTAUX Les formats d image Il existe de nombreux formats d image multi-usages : BMP,

Plus en détail

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges

module SIN21 Rendre un syste me communicant Analyse UML et algorithmie 1 Modification du cahier des charges Module SIN221 Rendre un syste me communicant Analyse UML et algorithmie Objectifs : Modifier des diagrammes UML suite à la modification du cahier des charges. Caractériser et valider une classe en C++.

Plus en détail

USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 :

USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : USTL - Licence ST-A 1ère année 2005-2006 Codage de l information TP 1 : Objectifs du TP Ce TP a pour but 1. de découvrir quelques opérations logiques sur les nombres 2. et quelques formats de fichiers.

Plus en détail

IFT1169 Examen Final

IFT1169 Examen Final Trimestre Hiver, 2006 Mohamed Lokbani IFT1169 Examen Final Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : mardi 18 avril 2006 Durée : 2 heures et 45 minutes

Plus en détail

Les différentes étapes à suivre pour la création d un feuillet

Les différentes étapes à suivre pour la création d un feuillet Les différentes étapes à suivre pour la création d un feuillet Bonjour, L outil de gestion des feuillets permet de manière simple et rapide de gérer à moindre coût votre communication et vos impressions

Plus en détail

Les types utilisateurs (VBA) Corrigé

Les types utilisateurs (VBA) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 2 avril mai 2013 Corrigé Résumé Ce document décrit comment traduire en VBA les types utilisateur du langage algorithmique. Table des matières

Plus en détail

Communication entre processus avec des tuyaux Fils Java. Partie A La communication entre processus avec tuyaux

Communication entre processus avec des tuyaux Fils Java. Partie A La communication entre processus avec tuyaux Systèmes d exploitation CSI3531 Labo 2 Communication entre processus avec des tuyaux Fils Java Partie A La communication entre processus avec tuyaux Objectif : Explorer le IPC avec les tuyaux UNIX/Linux

Plus en détail

Algorithmique Partie 1

Algorithmique Partie 1 Algorithmique Partie 1 IUT Informatique de Lens, 1ère Année Université d Artois Frédéric Koriche koriche@cril.fr 2011 - Semestre 1 Modalités Sommaire 1 Modalités 2 Programmation 3 Données 4 Opérateurs

Plus en détail

Norme de documentation des programmes

Norme de documentation des programmes 1. Introduction Norme de documentation des programmes Auteur : Marc Frappier Collaborateurs Benoit Fraikin Gabriel Girard Jean Goulet Gérard Houdeville Luc Lavoie Version : 1.02 30 août 2004 Département

Plus en détail