Java : Programmation Impérative

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

Download "Java : Programmation Impérative"

Transcription

1 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? / un paradigme de programmation? Le paradigme impératif instructions, séquence, états, variables d état, affectation Algorithmique simple (Java noyau C) o o o o instructions de contrôle: tests (if,?:, switch), boucles (for, while, do / break, continue, return), bloc d instructions (simples, imbriqués) Types primitifs: noms, codage, opérateurs + librairie Math, typage fort, déclaration de variables, initialisation, constantes de type (2f, 0xA2, ) Tableaux de types simples: déclaration (types), initialisation (notation accolades), manipulation (notation crochets: itération, affectation, lecture) Chaînes de caractères (Java): String avec construction, déclaration et manipulations simples Découpage fonctionnel o o Fonctions: méthodes statiques, signature, paramètres formels, application, paramètres effectifs (passage par valeurs) Raffinement fonctionnel: granularité générale (modules, fonction, instruction, ), raffinement

2 2 Qu est-ce qu un programme informatique? Qu est-ce qu un programme informatique? o Déf.1: un programme informatique est une séquence d'instructions sous forme compréhensible par l'ordinateur (dite binaire), décrivant une tâche à accomplir par celui-ci. [http://www.linux-france.org/article/kafkafr/node59.html] o Déf.2: un programme informatique est une liste d'instructions, rédigée par un programmeur, sans laquelle un ordinateur ne saurait rien faire d'autre que rouiller. [http://rad2000.free.fr/glosntci.htm] o Déf.3: un programme informatique est un ensemble d instructions, rédigées pour qu un ordinateur puisse, à l aide de ses informations mémorisées, résoudre un problème donné. [Petit Robert] Mais, pour en donner une vision quelque peu concrète et usuelle, on peut voir un programme comme ce qui doit être exécuté par un ordinateur pour : soit transformer des données d un état initial vers un état final, soit faire transiter des données d un endroit à un autre, soit les deux à la fois.

3 3 Exemple de programme informatique Exemple de programme qui des données d un état initial vers un état final : un traitement de texte

4 4 Qu est-ce qu un paradigme de programmation? Qu est-ce qu un paradigme de programmation? o Déf.: Un paradigme de programmation est un style fondamental de programmation informatique qui traite de la manière dont les solutions aux problèmes doivent être formulées dans un langage de programmation (à comparer à la méthodologie, qui est une manière de résoudre des problèmes spécifiques de génie logiciel). [http://fr.wikipedia.org/wiki/paradigme_%28programmation%29]. Un paradigme de programmation conditionne la vision que le développeur se fera de l exécution de son programme. Il en existe de nombreux. Par exemple, les paradigmes : -, -, -, -, -, -,

5 5 Qu est-ce qu un paradigme de programmation? - en, un programme est vu comme une suite ordonnée de transformations d états, - en, un programme est vu comme une suite d'évaluations de fonctions sans états, - en, les développeurs doivent considérer le programme comme une collection d objets en interaction, - en, un programme est un ensemble de déclarations de faits et de règles qui concourent à représenter des connaissances et à les unifier pour répondre à des buts, - la permet aux développeurs de voir les applications comme des ensembles de processus agissant sur des états localement partagées. [wikipedia]

6 6 Qu est-ce que le paradigme impératif? Qu est-ce que le paradigme impératif? o Déf.: Le paradigme impératif est un paradigme de programmation qui repose sur trois notions principales que sont : celle de séquence d instructions, de variables mutables, et d affectation. - : «fais ceci» impérativement! - : «fais ceci ; puis fais cela ; etc.» - Dans les langages impératifs, les variables portent des états (valeurs) et une opération spéciale permet d y écrire : l affectation. Pour la lecture, une simple référence à la variable par son nom est équivalente à sa valeur (son état). Lorsqu une variable ne peut être affectée qu une seule fois, elle est dite «immutable» (constante), alors que lorsqu elle peut être réaffectée autant de fois que nécessaire, elle devient «mutable».

7 7 Algorithmique simple Qu est-ce que l algorithmique o Déf.: L algorithmique est l ensemble des instructions permettant de réaliser un traitement recherché sur des données. En paradigme impératif, c est une séquence d instructions. Pour exprimer un algorithme, on utilise des de traitement de données : - de tests : if /?: / switch...case - de boucles : for / while / do Ces seules instructions de contrôle permettent de résoudre tous les problèmes calculables (numériques comme symboliques). Les ensembles suivants d instructions sont équivalents : boucles (for / while / do) ou récursivité (appels récursifs)

8 8 Qu est-ce que le découpage fonctionnel? Qu est-ce que le découpage fonctionnel? o Déf.: Le découpage fonctionnel consiste à morceler un traitement en plusieurs parties fonctionnelles (ou méthodes en O-O). On peut vouloir découper un traitement pour deux raisons : - : quand un traitement est trop long (une page de code), on préfère le découper en traitements plus petits, qui seront alors invoqués séquentiellement. - : (c est le cas le plus intéressant et le plus courant) il consiste à prévoir à l avance et à extraire d un traitement quelconque toutes les parties susceptibles d être utilisées en d autres endroits du programme (cela nécessite une certaine analyse). Des deux types de découpage seul le second corresponde à ce qui est également appelé le.

9 9 Objectifs de ce cours (I21) Ce cours (I21) s et objets simples sans méthode Aspects dynamiques : le «garbage collector» Méthodes d instance simples Connaissance de base de classes de l API Java Méthodes d instance spéciales Propriétés de classes : attributs et méthodes de classes Les tableaux d objets versus les types ensemblistes ArrayList<E> et TreeMap<K,V> de Java Premiers éléments de conception logicielle La notion de package Prolongement : les classes comme types abstraits

10 10 s et objets simples : exemple Comment réaliser le clavier de cette calculatrice? Il faudrait disposer de boutons tels que : chaque bouton soit différent des autres par : sa légende, sa couleur, sa position et sa taille... mais que tous possèdent : une légende, une couleur, des coordonnées, une largeur et une hauteur... On peut donc dire que tous les boutons ont des : mais que chacun a. Il en va de même pour tout ce qu on a envie de nommer des au sens large du terme.

11 11 BOUTON PION s et objets simples : exemples (1) Tout ce qu on a envie de nommer au sens où cela possède des caractéristiques, peut être décrit par une entité générale que l on nommera, en O-O,. Inversement, tout ce qui peut être décrit à l aide d une entité générale, ici, peut permettre de générer autant d, tous distincts par les valeurs de leurs attributs. DOMINO POISSON BILLET LOTO LIVRE ACROBATIE MAISON

12 12 s et objets simples : exemples (2) Objets BOUTON BOUTON Objets DOMINO DOMINO Objets PION Objets LOTO Objets BILLET 1 couleur 1 forme n trous LOTO n lignes m colonnes n*m valeurs n*m positions BILLET 1 pays 1 valeur 1 nom de monnaie s Descripteurs des attributs des objets & Objets LIVRE PION 2 marques 1 couleur 1 forme 1 valeur Instances particulières valuées 1 objet = 1 instance de classe Objets LIVRE 1 titre 1 auteur n pages Un objet ACROBATIE Objets POISSON POISSON 1 couleur 1 espèce 1 nourriture ACROBATIE 1 nom de figure n acrobates

13 13 s et objets simples : code de classe (1) Descripteurs des attributs des objets 1 objet = 1 instance de classe s & Objets Instances particulières valuées /** représentant un domino * avec ses 2 marques. */ class Domino { // Attributs communs // à tous les objets // (données propres) int m1; // marque 1 int m2; // marque 2 un domino (2,5) m1 = 2 m2 = 5 un domino (2,5) un domino (3,4) m1 = 3 m2 = 4 un domino (6,6) //...à suivre... } m1 = 2 m2 = 5 m1 = 6 m2 = 6 Déclarations non statique

14 14 Constructeur d objets (détail 1) Pour disposer d un objet, il faut le construire. Un constructeur porte le et est généralement déclaré. Il attend des qui permettront de construire un objet. /** représentant un domino avec ses 2 marques. */ class Domino { // Attributs int m1; // marque 1 int m2; // marque 2 /** Le constructeur de domino */ public Domino (int vm1, int vm2){ // Instructions de construction // qui doivent affecter les marques // du // avec les valeurs des paramètres } } Déclaration «public» seulement et non plus «public static»! La signature des constructeurs est particulière : elle n admet pas de type de retour!

15 15 Constructeur d objets (détail 2) Dès l entrée dans le constructeur, le futur objet a déjà un emplacement mémoire qui lui est réservé. Pour valuer l objet, le constructeur doit donc référencer cet espace mémoire MAIS il ne le connaît pas directement! Pour cela, Java lui fournit la variable spéciale «this» (dite d auto-référencement). /** représentant un domino avec ses 2 marques. */ class Domino { // Attributs int m1; // marque 1 int m2; // marque 2 /** Le constructeur de domino */ public Domino (int vm1, int vm2){ // Instructions d initialisation // du m1 = vm1; // marque 1 m2 = vm2; // marque 2 } } Notation pointée habituelle Moyennant l usage de «this», le constructeur peut accéder aux de.

16 16 MAIS on peut aussi vouloir construire des dominos selon d autres schémas. Par exemples : o un domino double o un domino par défaut. Constructeur d objets (détail 3) ICI, on dira qu il y a de constructeurs. /** représentant un domino avec ses 2 marques. */ class Domino { // Attributs int m1; // marque 1 int m2; // marque 2 /** Constructeur avec 2 marques */ public Domino (int vm1, int vm2){ m1 = vm1; m2 = vm2; } /** Constructeur de domino double */ public Domino (int vm){ m1 = m2 = vm; } /** Constructeur de domino par défaut */ public Domino (){ m1 = 0; m2 = 0; } }

17 17 Construction d objet : new La classe étant maintenant finalisée, il ne reste qu à construire des dominos! Toute construction d objet en Java doit être faite à l aide de l opérateur d instanciation : qui retourne l objet valide nouvellement construit. class MainDominos { /** Construction de dominos */ public static void main(string[] args) { Domino d1 = new Domino(2,5); Domino d2 = new Domino(3,4); Domino d3 = new Domino(6); Domino d4 = new Domino(2,5); // Faire quelque chose des dominos... if ( d4.m1!=d4.m2 ) d4.m1 = d4.m2; } } d1 et d4 sont des objets différents! domino d4 m1 = 2 m2 = 5 domino d1 domino d2 domino d3 m1 = 6 m2 = 6 m1 = 3 m2 = 4 m1 = 2 m2 = 5

18 18 + = public $ = static Accès aux attributs des objets : OID versus this classe MainDominos +$ Main(String[]) Domino d4 = new Domino(2,5); if ( m1!= m2 ) m1 = m2; Vision externe La méthode main voit le domino au travers de sa référence ou OID. classe Domino Ici,. m1 : int m2 : int +Domino(int,int) +Domino(int) +Domino() Vision interne m1 = vm1; m2 = vm2; d4: Domino this:domino m1 = 2 m2 = 5 Elle ne peut faire autrement que de l utiliser. De plus, this n a pas de sens dans main. Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde

Chapitre 1 Introduction

Chapitre 1 Introduction Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

Procédures et fonctions

Procédures et fonctions Chapitre 5 Procédures et fonctions 5.1 Introduction Considérons le programme suivant, dont le but est d inverser les éléments d un tableau : public class InversionTableau1 { int t[]= {8, 2, 1, 23; Terminal.ecrireStringln("Tableau

Plus en détail

Types de données et objets

Types de données et objets Types de données et objets VL A D Y RA V E L O M A N A N A Licence 1 S2 Université Denis Diderot (P7). vlad@liafa.jussieu.fr LIAFA Bureau 6A13. 175, rue Chevaleret Ravelomanana Vlady Types de données et

Plus en détail

HMIN111M Programmation en Java. Un aperçu des classes

HMIN111M Programmation en Java. Un aperçu des classes HMIN111M Programmation en Java Un aperçu des classes 1. Limites des types primitifs Programme de gestion des comptes bancaires 2 comptes par exemple (on ne connait pas les tableaux) Une classe Banque qui

Plus en détail

Déclaration et Implémentation d'une classe

Déclaration et Implémentation d'une classe Définir et Instancier une classe en Java Déclaration et Implémentation d'une classe En algorithmique (comme en C++ la plupart du temps), l'écriture du corps des méthodes (implémentation) se fait après

Plus en détail

3 Pseudo-code et algorithmes 26

3 Pseudo-code et algorithmes 26 TABLE DES MATIÈRES 1 Introduction à la programmation 1 1.1 Programme et langage de programmation 2 1.2 Étapes du développement des programmes 2 1.3 Notion d'algorithme 6 2 Notions de base 9 2.1 Constantes

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Initialisation des attributs (1)

Initialisation des attributs (1) Initialisation des attributs (1) Initialiser les attributs d une instance en leur affectant individuellement une valeur, après l instanciation, n est pas une technique satisfaisante: a) elle est fastidieuse,

Plus en détail

Module B9-1 : sensibilisation à l UML

Module B9-1 : sensibilisation à l UML Module B9-1 : sensibilisation à l UML Olivier Habart : habart.olivier@gmail.com ENSTA B9-1 UML (Olivier Habart) Septembre 14 Diapositive N 1 Session 2 : Vue statique Sommaire Diagramme de classes Diagrammes

Plus en détail

Langages de haut niveau

Langages de haut niveau Langages de haut niveau Introduction Un assembleur est un programme traduisant en code machine un programme écrit à l'aide des mnémoniques Les langages d'assemblage représentent une deuxième génération

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

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

BAT 4 Polytech Nice. Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4. Vérification des effectifs, Appel Sur EDT

BAT 4 Polytech Nice. Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4. Vérification des effectifs, Appel Sur EDT BAT 4 Polytech Nice Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4 Vérification des effectifs, Appel Sur EDT Une consigne : prenez des notes pendant les cours! Les supports ne

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

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

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Apprendre à programmer

Apprendre à programmer Christophe Dabancourt Apprendre à programmer Algorithmes et conception objet 2 e édition Groupe Eyrolles, 2008, ISBN : 978-2-212-12350-0 Table des matières Avant-propos.................................................

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

Programmation Objet. Cours 1

Programmation Objet. Cours 1 Programmation Objet. Cours 1 Marie-Pierre Béal UPEM DUT 1 Programmation objet. Classes et objets. Principaux styles de programmation Style impératif Fondé sur l exécution d instructions modifiant l état

Plus en détail

Les fonctions. a = 3; b = 4; c = 5; d = 12; u = Math.sqrt(a * a + b * b); v = Math.sqrt(c * c + d * d); Slide 1. Slide 2

Les fonctions. a = 3; b = 4; c = 5; d = 12; u = Math.sqrt(a * a + b * b); v = Math.sqrt(c * c + d * d); Slide 1. Slide 2 Slide 1 Les fonctions Slide 2 a = 3; b = 4; c = 5; d = 12; u = Math.sqrt(a * a + b * b); v = Math.sqrt(c * c + d * d); static double hypothenuse return Math.sqrt(x * x + y * y);} (double x, double y){

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

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet

Initiation à la Programmation avec Java Semestre 1-2008/2009. Compte rendu final du Projet Initiation à la Programmation avec Java Semestre 1-2008/2009 Compte rendu final du Projet Jean-Baptiste Leprêtre Groupe Y1 Chargé de TD : Fabienne Thomarat 1 SOMMAIRE : I) Cahier des Charges II) Analyse

Plus en détail

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Règles d'écriture des programmes DIVERS Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Table des matières 1 Les conventions d'écriture... 3 1.1 "Notation Hongroise" (Hungarian notation)...3

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

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

Programmation Impérative 2

Programmation Impérative 2 Programmation Impérative 2 Responsable: Nguyen Kim Thang thang@ibisc.fr (merci Tarek!) http://www.ibisc.fr/~thang/teaching/progimp2/progimp.html Organisation Jeudis, cours de 8h00-9h30, TD de 9h45-11h15

Plus en détail

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40

Cours Info - 8. Fonctions & Modularité. D.Malka MPSI 2015-2016. D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Cours Info - 8 Fonctions & Modularité D.Malka MPSI 2015-2016 D.Malka Cours Info - 8 MPSI 2015-2016 1 / 40 Sommaire Sommaire 1 Intérêt des fonctions 2 Déclaration d une fonction 3 Appel d une fonction 4

Plus en détail

PARADIGME ORIENTÉ-OBJET

PARADIGME ORIENTÉ-OBJET PARADIGME ORIENTÉ-OBJET A programming paradigm that uses objects to design systems. Sébastien Adam Une introduction des concepts de base 2 Principes fondamentaux Modularité : vise à répartir les opérations

Plus en détail

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N.

Abstraction: introduction. Abstraction et liaison dans les langages de programmation. Abstraction: principe. Abstraction: terminologie. N. Abstraction et liaison dans les langages de programmation LIN2: Paradigmes de programmation N. Hameurlain Abstraction: introduction L'importance de l abstraction découle de sa capacité de cacher les détails

Plus en détail

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets

Construction et destruction des objets de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Construction et destruction des objets Durée de vie des objets Objets composites Tableaux d'objets Copie (Initialisation et affectation) des objets Initialisation des objets Constructeur par recopieinit

Plus en détail

ISBN : 2-212-11407-9

ISBN : 2-212-11407-9 Groupe Eyrolles, 2005, ISBN : 2-212-11407-9 Table des matières Avant-propos................................................ XV CHAPITRE 1 Introduction..................................................

Plus en détail

Opérations UML et leur implémentation par des méthodes Java

Opérations UML et leur implémentation par des méthodes Java Opérations UML et leur implémentation par des méthodes Java LIRMM / Université de Montpellier 2 Janvier-Février 2015 Classes, opérations et méthodes Partie précédente Dénition de classes, attributs Dénition

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

Plus en détail

Améliorer les Classes. Chapitre 5: Améliorer les Classes. Affectation Revisitée. Références. Alias. Affectation de Référence

Améliorer les Classes. Chapitre 5: Améliorer les Classes. Affectation Revisitée. Références. Alias. Affectation de Référence Chapitre : Améliorer les Classes Présentation pour Java Software Solutions Foundations of Program Design Deuxième Edition par John Lewis et William Loftus Java Software Solutions est publié par Addison-Wesley

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

Programmation Répartie - Langage C

Programmation Répartie - Langage C frederic.guinand@univ-lehavre.fr IUT Le Havre Plan les bases quelques rappels de langage C les structures de contrôle conditionnelles les structures de contrôle itératives les tableaux les pointeurs les

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Initiation à Java Saber HENI saber.heni02@univ-paris8.fr http://handiman.univ-paris8.fr/~saber/ Plan du cours Chapitre 1 : Introduction au langage Java Chapitre 2 : Classes

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T

A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T A N A L Y S E, C O N C E P T I O N, E T P R O G R A MMATION O R I E N T E E O B J E T RAPPORT DE PROJET LOGICIEL DE GESTION DE COMPAGNIE DE TRANSPORT MARITIME CE LI NE HE NRY CO MB ES P IERRE LUCE L3 IN

Plus en détail

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J.

Génie Logiciel I. Cours III - Conversion, opérateurs et exceptions. Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Génie Logiciel I Cours III - Conversion, opérateurs et exceptions Nicolas Kielbasiewicz C.D.C.S.P./I.S.T.I.L./I.C.J. Filière M.A.M. 2ème année - 08/09 Nicolas Kielbasiewicz (C.D.C.S.P./I.S.T.I.L./I.C.J.)

Plus en détail

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

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

Programmer avec les exceptions en Java

Programmer avec les exceptions en Java Programmer avec les exceptions en Java Premier Cycle Cours Eurinsa 2002 (c) P.Pollet 05/12/2002 Java 2001 (PP) 1 Plan Gestion traditionnelle des erreurs d exécution Qu est-ce qu une exception? La classe

Plus en détail

Collections d objets (de taille variable)

Collections d objets (de taille variable) Introduction à la programmation en Java Frédéric MALLET Jean-Paul ROY UFR Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 10-1 Où en sommes-nous? Nous savons rédiger le texte d une classe d objets,

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ 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étail

Programme de la Discipline Informatique Premier cycle INSA de Lyon 2014-2015

Programme de la Discipline Informatique Premier cycle INSA de Lyon 2014-2015 Programme de la Discipline Informatique Premier cycle INSA de Lyon 2014-2015 Programme Info PCC 2014-2015 - 1 - Avril 2014 PCC1A au premier semestre : Prise en main et fonctionnement de l ordinateur Postes

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

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

Chapitre 2. 2.1 Les raisons d une méthodologie objet. 2.1.1 L objet, un élément de programme dynamique opératoire qui simplifie. 2.1.

Chapitre 2. 2.1 Les raisons d une méthodologie objet. 2.1.1 L objet, un élément de programme dynamique opératoire qui simplifie. 2.1. Chapitre 2 Le modèle objet avec UML 2.1 Les raisons d une méthodologie objet 2.1.1 L objet, un élément de programme dynamique opératoire qui simplifie la complexité d un problème Objet : modules cohérants

Plus en détail

Cours 8 : Exceptions, un peu de graphique

Cours 8 : Exceptions, un peu de graphique 1 Cours 8 : Exceptions, un peu de graphique 1. Traiter les exceptions usuelles 2. Créer ses propres exceptions 3. Exemples: les files. 4. Quelques éléments sur les graphiques 2 Exceptions Une exception

Plus en détail

Algorithmique - Programmation 1. Cours 1

Algorithmique - Programmation 1. Cours 1 Algorithmique - Programmation 1 Cours 1 Université Henri Poincaré CESS Epinal Automne 2008 1/ 24 Plan Introduction Introduction A propos d AP1 Quelques concepts de base Premiers pas avec Caml Le branchement

Plus en détail

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Notions de programmation orientée objet

Notions de programmation orientée objet 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/04/2007 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent,

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Systèmes de types Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 8 février 2007 1 / 20 Système de types Un type

Plus en détail

Javascript : les bases du langage

Javascript : les bases du langage Javascript : les bases du langage Technologies du Web 1 Jean-Christophe Routier Licence 1 SESI Université Lille 1 Université Lille 1 - Licence 1 SESI Technologies du Web 1 1 Javascript présentation partielle,

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.

JAVA. Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail. JAVA Illustration d UML et Introduction à la programmation «objet» Juillet 2004 Thierry Leydier Virtualité Réelle thierry.leydier@gmail.com Historique JAVA est issu d'un projet de recherche chez SUN (fin

Plus en détail

1 Les arbres binaires en Java

1 Les arbres binaires en Java Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 10 Arbres binaires Buts : structuration des arbres binaires en Java. classes internes. objets de parcours.

Plus en détail

Gestion de la mémoire

Gestion de la mémoire Chapitre 9 Gestion de la mémoire Durant l exécution d un programme, les éléments manipulés par le programme sont stockés dans différents types de mémoire. La pile d exécution contient des éléments dont

Plus en détail

Conduite du Projet Système

Conduite du Projet Système Conduite du Projet Système Département Télécom 2ème Année Enseignants : Yves Denneulin, Jacques Mossière, Grégory Mounié, Simon Nieuviarts, Franck Rousseau, Sébastien Viardot Résumé Ce document est complémentaire

Plus en détail

1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices

1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices Sihao DENG sihao.deng@utbm.fr http://deng.sihao.perso.sfr.fr/mn41 1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices Langage C Références: http://deng.sihao.perso.sfr.fr/mn41/lo11.pdf

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail

Python langage de programmation

Python langage de programmation Initiation à la programmation avec Python langage de programmation Valérie Bellynck (2009), d après un diaporama d Alain Bozzi (2008), lui-même venant de celui de Bob Cordeau (2008) 1 Langage de Programmation

Plus en détail

Concepts des langages de. Introduction à Clojure

Concepts des langages de. Introduction à Clojure Concepts des langages de programmation Introduction à Clojure Plan C'est quoi clojure? Types et structures de données Fonctions et expressions dans Clojure Commentaires en Clojure Définition de variables

Plus en détail

Formation JavaScript : Perfectionnement. Programme. L approche AJAX. L objet XMLHttpRequest. Objectif(s):

Formation JavaScript : Perfectionnement. Programme. L approche AJAX. L objet XMLHttpRequest. Objectif(s): Formation JavaScript : Perfectionnement Objectif(s): Comprendre l'approche AJAX Comprendre l'objet XMLHttpRequest Durée : 2 jour(s) Pré-requis : Bonnes connaissances en (X)HTML, CSS et JavaScript Public

Plus en détail

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre.

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre. Cours C++ Définition : Le langage C est un langage de programmation inventé par MM. Kernighan et Ritchie au début des années 70. Au début des années 90, Bjarne Stroustrup fait évoluer le langage vers le

Plus en détail

PHP 5.4 Développez un site web dynamique et interactif

PHP 5.4 Développez un site web dynamique et interactif Introduction 1. Objectif de l'ouvrage 9 2. Bref historique de PHP 10 3. Où se procurer PHP? 10 4. Conventions d'écriture 12 Vue d'ensemble de PHP 1. Qu'est-ce que PHP? 13 2. Structure de base d'une page

Plus en détail

Programmation Orientée Objet Java

Programmation Orientée Objet Java Programmation Orientée Objet Java Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015 Bertrand Estellon (DII AMU) Programmation Orientée Objet Java 29 octobre

Plus en détail

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas 2 Modélisation Construire un bon logiciel : Répondre aux objectifs fixés (satisfaire le client) Avoir une base architecturale solide qui permette l évolution Mettre en place un processus de développement

Plus en détail

Le Langage. JavaScript

Le Langage. JavaScript Chapitre 2 : Le Langage JavaScript Le Langage JavaScript Rémy Courdier 1996-2002 - Le langage Java - Version du cours 2.6.2 1 Les types primitifs de JavaScript Types de bases Boolean (Booléen) : peut prendre

Plus en détail

Cours de. Algorithmique. et langages du Web. Jean-Yves Ramel. Licence 1 PeipBiologie Groupe 7 & 8. ramel@univ-tours.fr Bureau 206 DI PolytechTours

Cours de. Algorithmique. et langages du Web. Jean-Yves Ramel. Licence 1 PeipBiologie Groupe 7 & 8. ramel@univ-tours.fr Bureau 206 DI PolytechTours Cours de Algorithmique et langages du Web Jean-Yves Ramel Licence 1 PeipBiologie Groupe 7 & 8 ramel@univ-tours.fr Bureau 206 DI PolytechTours Organisation de la partie Algorithmique 17 séances de 2 heures

Plus en détail

Maxima et la programmation en parallèle

Maxima et la programmation en parallèle Maxima et la programmation en parallèle Danielle Léger Département de mathématiques et d informatique Université Laurentienne (Sudbury, Ontario) La présence de l ordinateur constitue une réalité palpable

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

Les tableaux. Programmation Orientée Objet Java. Références et Garbage Collector. Les tableaux

Les tableaux. Programmation Orientée Objet Java. Références et Garbage Collector. Les tableaux Les tableaux Déclaration d une variable de type référence vers un tableau : Programmation Orientée Objet Bertrand Estellon Département Informatique et Interactions Aix-Marseille Université 29 octobre 2015

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Java Licence Professionnelle CISII, 2009-10

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

ENSTA IN204 Introduction à JAVA

ENSTA IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Ce document est mis à

Plus en détail

ENSTA : cours IN204 Introduction à JAVA

ENSTA : cours IN204 Introduction à JAVA Ecole Nationale Supérieure de Techniques Avancées (ENSTA) -http://www.ensta.fr ENSTA : cours IN204 Introduction à JAVA Olivier Sigaud LIP6/AnimatLab olivier.sigaud@lip6.fr 01.44.27.88.53 Page : 1 Plan

Plus en détail

La Gestion des Exceptions

La Gestion des Exceptions La Gestion des Exceptions Les exceptions Les exceptions représentent le mécanisme de gestion des erreurs intégré au langage Java. Il se compose d'objets représentant les erreurs et d'un ensemble de troismotsclésquipermettentdedétecteretdetraiterceserreurs(try,

Plus en détail

Expressions, types et variables en Python

Expressions, types et variables en Python Expressions, types et variables en Python 2015-08-26 1 Expressions Les valeurs désignent les données manipulées par un algorithme ou une fonction. Une valeur peut ainsi être : un nombre, un caractère,

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION 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é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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à 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étail

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1

Claude Kaiser Machine virtuelle et environnement utilisateur SRI_B CHAPITRE 1 CHAPITRE 1 FOURNIR À L'UTILISATEUR UNE MACHINE VIRTUELLE ET UN ENVIRONNEMENT D'EXÉCUTION DE PROGRAMMES Plan ENVIRONNEMENT DE TRAVAIL ADAPTÉ AU BESOIN DE L'UTILISATEUR Fonctions de l'environnement d'exécution

Plus en détail

renforcer le contrôle de type :

renforcer le contrôle de type : renforcer le contrôle de type : définitions, prototypes de fonctions surcharge références conversions de void * préférer le compilateur au préprocesseur considérer les entrées/sorties opérations abstraites

Plus en détail

Nfp121 Programmation Avancée. L évolution de Java conséquences sur le cours. Java 2

Nfp121 Programmation Avancée. L évolution de Java conséquences sur le cours. Java 2 Nfp121 Programmation Avancée Des Cours, des Exercices dirigés, des devoirs hebdomadaires Cours 1h30 + 0h30 Présentation devoirs Eds 1h30 centrés sur la réponse aux devoirs et compléments L évolution de

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ D après les notes d introductives au C++ de Stéphane Menozzi http://www.proba.jussieu.fr/~menozzi/ Maxime Pallud IMACS/X-TEC Bat 404 Tel: 01 69 33 46 86 Mail: pallud@imacs.polytechnique.fr

Plus en détail

P.O.O. : Java TD n 1 Les bases du langage

P.O.O. : Java TD n 1 Les bases du langage E.P.U. GB4 (BIMB) Eclipse P.O.O. : Java TD n 1 Les bases du langage Eclipse est un IDE (Integrated Development Environment EDI en français). Il est développé par IBM, est gratuit et disponible pour la

Plus en détail

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR

Créer une simple application Java avec ECLIPSE. Par Ahcène BOUNCEUR Créer une simple application Java avec ECLIPSE Par Ahcène BOUNCEUR Janvier 2005 INTRODUCTION Dans cet exemple nous allons vous montrer comment peut-on créer une simple application Java en utilisant l IDE

Plus en détail

1 Le jeu «Puissance 4»

1 Le jeu «Puissance 4» Université de Nice-Sophia Antipolis Deug MIAS-MI 1 Algorithmique & Programmation 2002 2003 TP N 3 Procédures et fonctions Buts : Manipuler des objets complexes Tableaux à deux dimensions Usage des sentinelles

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

XML - Semaine 6. XML - Semaine 6. Pierre Nerzic. février-mars 2016. 1 / 42 Pierre Nerzic

XML - Semaine 6. XML - Semaine 6. Pierre Nerzic. février-mars 2016. 1 / 42 Pierre Nerzic XML - Semaine 6 Pierre Nerzic février-mars 2016 1 / 42 Pierre Nerzic Le cours de cette semaine présente l API XML DOM permettant de produire et traiter un document XML : Principes, Création et modification

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 +Cours 2 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

Plus en détail

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux

Cours 3 SDA et conception de logiciel. 1. Exemple d'analyse algorithmique n'utilisant que des tableaux Cours 3 SDA et conception de logiciel Les SDA servent à pouvoir construire des logiciels performants en cherchant à combiner des "briques" dont on sait qu'on pourra les implémenter en utilisant des techniques

Plus en détail