NFA032 Programmation objet avec Java

Documents pareils
Premiers Pas en Programmation Objet : les Classes et les Objets

Programmation Objet Java Correction

Corrigé des exercices sur les références

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

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

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Programmer en JAVA. par Tama

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Corrigés des premiers exercices sur les classes

Synchro et Threads Java TM

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Chapitre 10. Les interfaces Comparable et Comparator 1

Programmation par les Objets en Java

Utilisation d objets : String et ArrayList

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Package Java.util Classe générique

Une introduction à Java

PROGRAMMATION PAR OBJETS

RMI le langage Java XII-1 JMF

Les structures. Chapitre 3

TP1 : Initiation à Java et Eclipse

Exercices sur les interfaces

Remote Method Invocation (RMI)

Généralités sur le Langage Java et éléments syntaxiques.

Java DataBaseConnectivity

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Bases Java - Eclipse / Netbeans

Java Licence Professionnelle CISII,

Objets et Programmation. origine des langages orientés-objet

Fonctions de deux variables. Mai 2011

GOL502 Industries de services

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Algorithmique & programmation

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Programmation Par Objets

INITIATION AU LANGAGE JAVA

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

TD/TP PAC - Programmation n 3

Bases du langage. Historique Applications et applets Éléments de base du langage Classes et objets Les exceptions

Etude et développement d un moteur de recherche

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Internet Le service de noms - DNS

Programme Compte bancaire (code)

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Support de cours et TD Programmation Orientée Objet

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Le prototype de la fonction main()

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

TD/TP PAC - Programmation n 3

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

Développement Logiciel

GUIDE MEMBRE ESPACE COLLABORATIF. Février 2012

INF 321 : mémento de la syntaxe de Java

Projet de programmation (IK3) : TP n 1 Correction

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

Programmation système I Les entrées/sorties

Dis papa, c est quoi un bus logiciel réparti?

KM2 W1 EVC1 M3~ Manuel AUTOMSIM API 24V. BP Dcy 1MINI 1MAXI.

Chapitre VI- La validation de la composition.

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1

PLATEFORME ANTI-CORRUPTION AU CAMEROUN

RECRUTEMENT EXTERNE SANS CONCOURS. Plombier Génie Climatique 2 ème Classe BAP G

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Auto-évaluation Programmation en Java

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Remote Method Invocation Les classes implémentant Serializable

Déployez votre site marchand en 5 étapes

Gestion d'une billeterie défilé des talents

PROJET 1 : BASE DE DONNÉES REPARTIES

Travaux Dirigés n 1 : chaînes de caractères

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Manuel d'installation

EXERCICES UML. Modéliser cette situation par un diagramme de cas d utilisation. Consulter planning

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

Initiation à JAVA et à la programmation objet.

Algorithmique et Programmation, IMA

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Le Sphinx Millenium Modes opératoires Préparer, administrer, Dépouiller les enquêtes

TP, première séquence d exercices.

La base de données XML exist. A. Belaïd

I/ Se connecter sur le réseau Scribe :

as Architecture des Systèmes d Information

Introduction au langage C

Programmation en Java IUT GEII (MC-II1) 1

Présentation du langage et premières fonctions

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Langage Java. Classe de première SI

Suivant les windows, le signal pour indiquer l imprimante par défaut est un petit rond noir ou vers avec un V à l intérieur.

Formation pour les parents Se familiariser avec la tablette ipad et les applications d apprentissage pour enfants

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

F. Barthélemy. 17 mai 2005

Guide d utilisation 2012

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Transcription:

NFA032 Programmation objet avec Java CNAM-Paris-Île-de-France Première session 2013 Documents et calculatrice interdits. Le barème est donné à titre indicatif. Exercice 1 : programmation objet (4 points) Question 1 Ecrivez une classe représentant une personne avec son nom, son prénom et son numéro d inscription au répertoire des personnes physiques (NIRPP, couramment appelé numéro de sécurité sociale) qui est un nombre à 13 chiffres. Notez qu on ne peut pas représenter ce nombre par un int parce que les int ont au plus 10 chiffres. Votre classe comprendra une méthode d affichage et une méthode qui teste si deux personnes sont la même personne en comparant leurs numéros. Cette méthode ne fera pas d affichage mais renverra son résultat. Question 2 On veut dissocier les informations concernant le numéro NIRPP en plusieurs morceaux : le premier chiffre donne le sexe de la personne (1 pour masculin, 2 pour féminin), les deux chiffres sont les deux derniers chiffres de l année de naissance, les deux suivants le mois de naissance, les deux suivants pour le département de naissance, les trois suivants la commune de naissance, les trois derniers sont un numéro d ordre. Exemple : 1181102045315 = 1 {{ sexe 18 {{ annee 11 {{ mois 02 {{ 045 {{ 315 {{ departement commune numero Ecrivez une classe des numéro NIRPP avec 6 variables pour les 6 informations différentes contenues dans un numéro et une méthode qui renvoie le numéro complet. Modifiez la classe des personnes pour prendre en compte la nouvelle représentation des numéros NIRPP. Exercice 2 : références (3 points) c l a s s P o i n t { i n t x ; i n t y ; P o i n t ( i n t xx, i n t yy ) { x=xx ; y=yy ; 1

c l a s s Segment { P o i n t p1, p2 ; Segment ( P o i n t pp1, P o i n t pp2 ) { p1=pp1 ; p2=pp2 ; c l a s s P o l y e d r e { P o i n t [ ] t a b ; P o l y e d r e ( P o i n t [ ] t p ) { t p = t a b ; p u b l i c c l a s s Dessin1 { p u b l i c s t a t i c void main ( S t r i n g [ ] argv ) { P o i n t p1, p2, p3 ; p1=new P o i n t ( 1, 1 ) ; p2=new P o i n t ( 2, 2 ) ; p3=p1 ; Segment seg =new Segment ( p1, p2 ) ; P o i n t [ ] t a b p o i n t ={p1, p2, p3 ; P o l y e d r e p l d =new P o l y e d r e ( t a b p o i n t ) ; Représentez au moyen d un petit dessin les objets et tableaux existant à la fin de l exécution du programme donné ci-dessus. Chaque objet sera représenté par un rectangle et chaque référence par une flèche ou une adresse. Attention : on ne vous demande pas un diagramme de classe. C est chaque objet créé, chaque tableau et chaque référence qui doit être représenté. Exercice 3 : exceptions (3 points) Considérez le code suivant : p u b l i c c l a s s ExoExc1_1 { p u b l i c s t a t i c void m3( i n t x, i n t y ) { i f ( x ==0) throw new E rr1 ( ) ; e l s e i f ( x<y ) { throw new E rr2 ( ) ; T e r m i n a l. e c r i r e S t r i n g l n ( " Fin normale p3 " ) ; p u b l i c s t a t i c void m2( i n t x, i n t y ) { t r y { m3( x, y ) ; T e r m i n a l. e c r i r e S t r i n g l n ( " Fin normale p2 " ) ; catch ( E rr2 e ) { T e r m i n a l. e c r i r e S t r i n g l n ( " R e c u p e r a t i o n p2 " ) ; 2

p u b l i c s t a t i c void m1( i n t x, i n t y ) { t r y { m2( x, y ) ; T e r m i n a l. e c r i r e S t r i n g l n ( " Fin normale p1 " ) ; catch ( E rr1 e ) { T e r m i n a l. e c r i r e S t r i n g l n ( " R e c u p e r a t i o n p1 " ) ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { i n t a = T e r m i n a l. l i r e I n t ( ) ; i n t b = T e r m i n a l. l i r e I n t ( ) ; m1( a, b ) ; T e r m i n a l. e c r i r e S t r i n g l n ( " Fin programme " ) ; c l a s s Err1 extends E r r o r { c l a s s Err2 extends E r r o r { Donnez les messages affichés par l exécution de ce programme si les valeurs lues pour les variables a et b sont à chaque fois : 1. a=7 et b=5 2. a=0 et b=1 3. a=5 et b=1 Exercice 4 : listes (4 points) On donne en annexe un extrait du code des classes ListeIter et ElementListe. 1. Donnez le code modifié de la classe ElementListe pour que la liste contienne des caractères (char) au lieu de nombres entiers (int). 2. Donnez les entêtes des méthodes de la classe ListeIter qui doivent être modifiés (et seulement ceux-là). 3. On appelle répétition une suite de cellules consécutives contenant la même majuscule. Ecrire une méthode pour supprimer les éléments d une répétition à l exception du premier dans une liste L. Exemple : si la liste L contient les lettres : A, A, B, C, C, A, A, A, D, D, cette liste devra, après exécution de la méthode, être transformée en la liste : A, B, C, A, D. 4. Ecrire une méthode qui calcule le nombre de cellules qu il faut supprimer pour supprimer les répétitions dans une liste. Cette méthode ne modifie pas la liste. Le résultat ne doit pas être affiché, mais renvoyé par la méthode. Exercice 5 : programmation et héritage (6 points) On souhaite modéliser les différentes formes de publications pouvant être réalisées (et regroupées) sur un fil d actualités des réseaux sociaux. La classe Post donnée plus bas, modélise une publication simple, 3

caractérisée par le nom de son auteur (String) et le nombre de votes attribués par les membres du réseau (bouton "j aime ) sur cette publication. La classe FilActualite est à écrire et doit contenir une liste de publications, que vous pourrez modéliser soit par un tableau, soit par un ArrayList de Post. p u b l i c c l a s s P o s t { p r i v a t e S t r i n g a u t e u r ; p r i v a t e i n t l i k e s ; / / v o t e s s u r ce p o s t / C o n s t r u c t e u r / p u b l i c P o s t ( S t r i n g a u t e u r ) { a u t e u r = a ; l i k e s = 0 ; p u b l i c S t r i n g g e t A u t e u r ( ) { return a u t e u r ; p u b l i c i n t g e t L i k e s ( ) { return l i k e s ; / I n c r é m e n t e v o t e s " j aime " s u r l e p o s t / p u b l i c void Aime ( ) { l i k e s ++; p u b l i c void AimePas ( ) { i f ( l i k e s > 0) { l i k e s ; / A f f i c h e l e s d e t a i l s de ce p o s t / p u b l i c void a f f i c h e ( ) { System. o u t. p r i n t l n ( a u t e u r ) ; i f ( l i k e s > 0) { System. o u t. p r i n t l n ( " " + l i k e s + " aiment. " ) ; Question 1 On considère deux sortes de publications : les messages texte, et les photos, que l on souhaite modéliser par deux nouvelles classes PostMessage et PostPhoto. Ces publications possèdent les caractéristiques d un Post, avec en plus, le texte du message (String) pour une publication message, et le nom du fichier (String) où se trouve l image et sa légende (String) pour une publication photo. Donnez la définition de ces deux classes en ajoutant dedans, un constructeur, ainsi qu une redéfinition appropriée de la méthode affiche(). Cette méthode devra afficher selon le cas, le message du post, ou le nom du fichier et la légende de l image, ainsi que les autres caractéristiques du post (nombre de votes, auteur, etc). Question 2 Un fil d actualité regroupe une liste de publications pouvant être des objets Post simples, ou PostMessage ou PostPhoto. Complétez le code de la classe FilActualite. Vous pourrez implanter la liste de publications, soit par un tableau, soit par un ArrayList. p u b l i c c l a s s F i l A c t u a l i t e s { / / Completer avec v a r i a b l e s n e c e s s a i r e s / C o n s t r u i t un f i l v i d e / 4

p u b l i c F i l A c t u a l i t e s ( ) { / / A c o m p l e t e r / A j o u t e une p u b l i c a t i o n au f i l. / p u b l i c void a j o u t e P o s t ( P o s t p o s t ) { / / A c o m p l e t e r / A f f i c h e t o u s l e s p o s t s, l e u r a u t e u r + nb de v o t e s / p u b l i c void a f f i c h e ( ) { / / A c o m p l e t e r / A f f i c h e l e nombre de p o s t s p u b l i é s par l a u t e u r de nom a / p u b l i c i n t nombrepostauteur ( S t r i n g a ) { / / A c o m p l e t e r / T o t a l i t é des v o t e s pour l e s p u b l i c a t i o n s dans ce f i l / p u b l i c i n t p o p u l a r i t e ( ) { / / A c o m p l e t e r Question 3 Donnez une méthode main qui déclare un fil d actualité et y ajoute 3 publications : une simple, une photo et un message texte. Deux parmi ces publications auront comme auteur Geek93. Votre programme doit afficher tous les posts du fil, puis afficher tous les posts de Geek93. Annexe : classes ListeIter et ElementListe p u b l i c c l a s s E l e m e n t L i s t e { p r i v a t e i n t v a l e u r ; p r i v a t e E l e m e n t L i s t e s u i v a n t ; p u b l i c E l e m e n t L i s t e ( i n t v a l e u r, E l e m e n t L i s t e s u i v a n t ) { t h i s. v a l e u r = v a l e u r ; t h i s. s u i v a n t = s u i v a n t ; p u b l i c E l e m e n t L i s t e ( i n t v ) { t h i s. v a l e u r = v ; t h i s. s u i v a n t = n u l l ; p u b l i c i n t g e t V a l e u r ( ) { return v a l e u r ; p u b l i c void s e t V a l e u r ( i n t v a l e u r ) { t h i s. v a l e u r = v a l e u r ; p u b l i c E l e m e n t L i s t e g e t S u i v a n t ( ) { return s u i v a n t ; p u b l i c void s e t S u i v a n t ( E l e m e n t L i s t e s u i v a n t ) { t h i s. s u i v a n t = s u i v a n t ; p u b l i c c l a s s L i s t e I t e r { E l e m e n t L i s t e p r e m i e r ; 5

p u b l i c E l e m e n t L i s t e g e t P r e m i e r ( ) { return p r e m i e r ; p u b l i c boolean e s t V i d e ( ) {... p u b l i c E l e m e n t L i s t e g e t P r e m i e r ( ) {... p u b l i c void a j o u t e r A u D e b u t ( i n t v ) { E l e m e n t L i s t e a n c i e n P r e m i e r = p r e m i e r ; p r e m i e r = new E l e m e n t L i s t e ( v, a n c i e n P r e m i e r ) ; p u b l i c void a j o u t e r A L a F i n ( i n t v ) {... p u b l i c i n t getlongueur ( ) {... p u b l i c boolean c o n t i e n t ( i n t v ) {... p u b l i c void r e t i r e r P r e m i e r e O c c u r r e n c e ( i n t v ) {... p u b l i c void c o n c a t e n e r ( L i s t e I t e r l ) {... 6