Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit :



Documents pareils
Chapitre 10. Les interfaces Comparable et Comparator 1

Gestion distribuée (par sockets) de banque en Java

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Tp 1 correction. Structures de données (IF2)

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Une introduction à Java

Premiers Pas en Programmation Objet : les Classes et les 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

Programmation par les Objets en Java

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

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

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Corrigés des premiers exercices sur les classes

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

Programmation avec des objets : Cours 7. Menu du jour

Programmation Objet Java Correction

TD/TP PAC - Programmation n 3

TP, première séquence d exercices.

Flux de données Lecture/Ecriture Fichiers

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

Auto-évaluation Programmation en Java

Héritage presque multiple en Java (1/2)

Développement Logiciel

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

Programmation Par Objets

Langage Java. Classe de première SI

as Architecture des Systèmes d Information

Utilisation d objets : String et ArrayList

Apprendre Java en 154 minutes

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

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

Projet de programmation (IK3) : TP n 1 Correction


Programmer en JAVA. par Tama

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

TD/TP PAC - Programmation n 3

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Cours 1: Java et les objets

Package Java.util Classe générique

TP1 : Initiation à Java et Eclipse

Java Licence Professionnelle CISII,

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

COMPARAISONDESLANGAGESC, C++, JAVA ET

Solutions du chapitre 4

Programmation en Java IUT GEII (MC-II1) 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

Exercices sur les interfaces

La gestion des exceptions

Programme Compte bancaire (code)

PROGRAMMATION PAR OBJETS

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

INITIATION AU LANGAGE JAVA

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Création d objet imbriqué sous PowerShell.

Programmation Objet I

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

Un ordonnanceur stupide

Chapitre V. Les classes : Object, Vector, etc.

Plan du cours. Historique du langage Nouveautés de Java 7

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Génie Logiciel avec Ada. 4 février 2013

Chapitre VI- La validation de la composition.

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Traduction des Langages : Le Compilateur Micro Java

Programmation Orientée Objet application au langage Java Version Novembre 2007

Programmation Objet - Cours II

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

.NET - Classe de Log

FORD C-MAX + FORD GRAND C-MAX CMAX_Main_Cover_2013_V3.indd /08/ :12

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

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

Support de cours et TD Programmation Orientée Objet

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

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Algorithmique et Programmation, IMA

Environnements de développement (intégrés)

Chapitre 2. Classes et objets

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

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Initiation à JAVA et à la programmation objet.

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

RMI le langage Java XII-1 JMF

1 Définition d une classe en Java

Plateforme PAYZEN. Définition de Web-services

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

Remote Method Invocation Les classes implémentant Serializable

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Langage à objets : JAVA (1)

Claude Delannoy. 3 e édition C++

Autos électriques ou hybrides

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

7 Développement d une application de MapReduce

3.11 Instauration d un crédit d impôt remboursable pour l acquisition ou la location d un véhicule neuf écoénergétique

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Transcription:

UNIVERSITÉ DE MONTRÉAL FACULTÉ DES ARTS ET DES SCIENCES DIRECTION DE L ENSEIGNEMENT DE SERVICE EN INFORMATIQUE COURS : IFT 1170 EXAMEN INTRA DATE : 4 juin 2009 CHARGÉ DE COURS : Michel Reid DURÉE : 2 heures NOM et PRÉNOM DE L ÉTUDIANT : CODE PERMANENT : SIGNATURE : TOUTE DOCUMENTATION SUR PAPIER PERMISE ORDINATEURS ET CALCULATRICES PROHIBÉS Pour cet examen, vous disposez de la classe Voiture, incomplète, qui suit : public class Voiture { //autre champ à déclarer ici private String nom; private int nbcylindres; //Nb de cylindres du moteur //Consommation d essence en litres/100km en ville ainsi que sur la route private double consville, consroute; public Voiture(String nom, int nbcylindres, double consville, double consroute) { // À compléter // 2 voitures sont égales si le nom est identique ainsi que le nombre de cylindres public boolean equals(voiture autre){ return nom.equals(autre.nom) && nbcylindres==autre.nbcylindres; //Méthode pour déterminer l égalité utilisée implicitement par Vector public boolean equals(object autre){ //À compléter //Présumez que la method tostring a bien été redéfinie En plus, vous disposez d une classe TestVoiture, contenant la méthode main. Cette classe vous permet de tester votre classe Voiture. Il est fortement conseillé de lire les questions qui suivent et de vous référer à cette page pour les méthodes déjà existantes ainsi que certaines méthodes à compléter. Intra E09 (IFT 1170) 1

PARTIE 1 Vrai ou Faux (9 points) Cochez Vrai si l'énoncé est correct ou Faux si l'énoncé est incorrect. Si vous répondez Faux, et seulement dans ce cas, vous devez justifier votre réponse. Chaque question vaut trois (3) points, si une justification est requise, elle vaut deux (2) points. 1) Si une classe possède un champ entier nommé nombre, la méthode d accès pour ce champ doit absolument être déclarée comme suit : public int getnombre() sinon le compilateur va signaler une erreur. Vrai : Faux : Justification (au besoin) : 2) Dans une classe donnée, une méthode non-statique peut avoir accès à un champ, de la même classe, déclaré static. Vrai : Faux : Justification (au besoin) : 3) Le constructeur suivant va compiler. public Voiture(String nom){ if(nom.length( )>0) this(nom,4,10,10); Vrai : Faux : Justification (au besoin) : Intra E09 (IFT 1170) 2

PARTIE 2 Code, méthodes et compréhension de base du Java et de la POO 4) (4 points) Déclarez un champ, de la classe Voiture, qui sera commun pour tous les objets Voiture, représentant la consommation minimum de l ensemble des voitures. N oubliez pas d initialiser ce champ de façon à ce qu il soit modifié dès la première comparaison. Remarque, il n est pas nécessaire d avoir un objet Voiture pour que le champ existe. 5) (10 points) Complétez le constructeur suivant qui, en plus d initialiser les 4 champs membres (attributs de l objet), va vérifier si la consommation minimum, déclarée en 4), doit changer. Cette valeur devra changer si une des 2 consommations (ville ou route) est >=0 et plus petite que la valeur courante de la consommation minimum. Donc, la consommation minimum déclarée en 4) contiendra la plus petite consommation que ce soit de ville ou de route. public Voiture(String nom, int nbcylindres, double consville, double consroute) { Intra E09 (IFT 1170) 3

6) (6 points) Puisque la comparaison de 2 voiture se fait sur 2 champs seulement, écrivez un constructeur pour créer un objet Voiture en initialisant ces 2 champs. Remarque : vous n êtes pas tenu de faire appel au constructeur précédent, mais si vous le faites, assurez-vous que la consommation minimum déclarée en 4) ne changera pas. Le fichier auto.txt contient des informations sur des voitures, voici un aperçu de son contenu : Kia Rondo 6 11.5 7.7 Subaru Impreza 4 11.5 8.5 Toyota Camry Hybride 4 5.7 5.7 Ford Fusion Hybride 4 4.6 5.4 Les 25 premiers caractères d une ligne représentent le nom de la voiture, les deux suivants, le nombre de cylindres, suivi de 5 caractères pour la consommation en ville et les 5 derniers, la consommation sur la route. Il y a, au plus, 25 lignes dans le fichier Voici le code d une méthode de la classe testvoiture pour lire un fichier (comme auto.txt) et remplir un tableau de Voiture. public static int lirefichier(voiture[] t, String nomfichier) throws IOException{ Voiture auto; int n = 0; Scanner in = new Scanner(new BufferedReader (new FileReader(nomFichier))); while (in.hasnext()) { String ligne = in.nextline(); // une ligne du fichier t[n]=analyseligne(ligne); n++; return n; Intra E09 (IFT 1170) 4

7) (6 points) a) Écrivez la déclaration d un tableau de Voiture, nommé tabauto, suffisamment grand pour recevoir toutes les voitures du fichier, ainsi que la variable nbauto, pour conserver le nombre d éléments du tableau. Écrivez aussi l appel de la fonction lirefichier pour lire le fichier, remplir le tableau et initialiser le nombre d éléments du tableau. b) Dans quelle classe sera déclaré ce tableau? Voiture TestVoiture 8) (15 points) Écrivez la méthode analyseligne, qui est utilisée par le code de la méthode, de la page précédente, pour extraire les informations d une ligne du fichier, et les utiliser pour créer et retourner un nouvel objet Voiture. Vous pouvez utiliser substring, StringTokenizer ou split pour extraire les informations de la ligne. Intra E09 (IFT 1170) 5

9) (14 points) Écrivez une méthode qui va recevoir en paramètre de l information sur un trajet, c est-àdire, le nombre de kilomètres à parcourir en ville et le nombre de kilomètres à parcourir sur la route. Cette méthode va calculer le nombre estimé de litres d essence nécessaires pour compléter le trajet. a) Dans quelle classe sera déclaré cette méthode? Voiture TestVoiture b) Cette méthode sera-t-elle déclarée statique? Oui Non c) Écrivez la méthode. Intra E09 (IFT 1170) 6

10) (16 points) Écrivez une méthode pour parcourir toutes les objets Voiture du tableau tabauto et va retourner la Voiture qui consommera la plus petite quantité d essence pour un trajet dont la portion de ville et la portion de route seront passés en paramètres. Écrivez aussi un appel de cette fonction pour déterminer la voiture qui prendra le moins d essence pour un trajet de 100 km de ville et 2245 km de route. Indiquez clairement dans quelle classe la méthode, ainsi que l appel doivent être écrits. Intra E09 (IFT 1170) 7

11) (10 points) Écrivez les instructions nécessaires pour créer un nouveau vecteur et y insérer les voitures du tableau tabauto ayant 6 cylindres. Présumez que la méthode d accès pour nbcylindres est déjà définie. Écrivez aussi dans quelle classe le bloc d instructions est écrit. Intra E09 (IFT 1170) 8

12) (10 points) Vous voulez chercher dans le vecteur si la voiture suivante existe, Toyota Camry, 6 cylindres. Si oui, affichez ses informations, sinon affichez un message indiquant qu elle n est pas dans le vecteur. a) Écrivez la méthode equals, de la classe Voiture, qui sera utilisée par Vector pour les comparaisons. Ne réécrivez pas inutilement le code de l autre méthode equals, mais utilisez un appel vers celle-ci. Intra E09 (IFT 1170) 9

b) Écrivez les instructions nécessaires pour rechercher la voiture décrite ci-haut et l affichage demandé. Bonne chance et bon succès! Équipe du IFT 1170 Intra E09 (IFT 1170) 10