IFT FINAL. Directives: IFT Session Été, Final. Mohamed Lokbani. Inscrivez tout de suite votre nom et code permanent.

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

Chapitre 10. Les interfaces Comparable et Comparator 1

Corrigé des exercices sur les références

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

Programmer en JAVA. par Tama

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

TP1 : Initiation à Java et Eclipse

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Premiers Pas en Programmation Objet : les Classes et les Objets

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

Java Licence Professionnelle CISII,

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

ACTIVITÉ DE PROGRAMMATION

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

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

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

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

RMI le langage Java XII-1 JMF

Une introduction à Java

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

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Package Java.util Classe générique

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

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

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

as Architecture des Systèmes d Information

Exercices sur les interfaces

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

Utilisation d objets : String et ArrayList

Java DataBaseConnectivity

Cours 1: Java et les objets

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Chapitre 2. Classes et objets

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Le langage C. Séance n 4

Programmation par les Objets en Java

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

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

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

Programme Compte bancaire (code)

Flux de données Lecture/Ecriture Fichiers

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

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

Programmation Objet Java Correction

Introduction au langage Java

Chapitre VI- La validation de la composition.

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

Synchro et Threads Java TM

Corrigés des premiers exercices sur les classes

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

Initiation à JAVA et à la programmation objet.

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

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

Un ordonnanceur stupide

INITIATION AU LANGAGE JAVA

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

Auto-évaluation Programmation en Java

TP, première séquence d exercices.

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

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

Cours 14 Les fichiers

Programmation Par Objets

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Programmation avec des objets : Cours 7. Menu du jour

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 )

Diagramme de classes

Remote Method Invocation (RMI)

Initiation à la programmation en Python

Projet de programmation (IK3) : TP n 1 Correction

TP1 : Initiation à Java et Eclipse

INF 321 : mémento de la syntaxe de Java

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

OpenPaaS Le réseau social d'entreprise

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

Programmation en Java IUT GEII (MC-II1) 1

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

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

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

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

Remote Method Invocation Les classes implémentant Serializable

Langage Java. Classe de première SI

4. Groupement d objets

Le prototype de la fonction main()

Programmation Objet - Cours II

PROGRAMMATION PAR OBJETS

2. Comprendre les définitions de classes

Présentation du PL/SQL

Solutions du chapitre 4

TD/TP PAC - Programmation n 3

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Conventions d écriture et outils de mise au point

Cours de Génie Logiciel

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

Transcription:

IFT1020 - Session Été, Final Mohamed Lokbani IFT1020 - FINAL Inscrivez tout de suite votre nom et code permanent. Nom: Prénom(s): Signature: Code perm: Date : 29 juillet 2004 Durée: 3 heures (de 18h30 à 21h30) Local: 1355 du Pavillon André AISENSTADT. Directives: - Toute documentation permise. - Calculatrice non permise. - Répondre directement sur le questionnaire. - Les réponses doivent être clairement présentées. - L examen compte 12 pages incluant celle-ci. 1. /15 (1.1) 2. /15 (2.1 ; 2.2) 3. /15 (3.1 ; 3.2 ; 3.3) 4. /15 (4.1 ; 4.2 ; 4.3) 5. /15 (5.1 ; 5.2a ; 5.2b) 6. /25 (6.1 ; 6.2 ; 6.3) Total: /100 IFT1020 Été-2004 : Final 1/12

Question 1 (15 points) Utilisez les mots ci-dessous pour compléter les énoncés suivants (certains mots ne seront pas utilisés): classe(s) collection(s) comparaison comparateur(s) Comparator const constructeur(s) destructeur(s) égalité encapsulation equals() exception(s) extends HashMap import interface(s) List Map Message(s) new objet(s) protected private public reference(s) static set this throws try TreeMap Les se démarquent des tableaux dans la mesure où elles ont la capacité de s'étendre et de diminuer au gré, respectivement, des ajouts et des suppressions d'éléments. L'instruction permet d'importer une à plusieurs et d'un paquetage pour la classe courante. Un représente un tableau associatif dont les clés sont classées en ordre croissant. Toutes les méthodes susceptibles de générer une exception doivent soit être comprises dans un bloc, soit signaler au moyen de la commande cette particularité. L'interface permet de réaliser une qui impose un ordre global sur les éléments d'une collection. Les peuvent être passés à une méthode de tri dans le but d'appliquer un contrôle précis sur l'ordre de tri. Les sont donc de véritables créés suite à la détection d'une anomalie dans le déroulement du programme. Un représente un tableau associatif dont une clé et des valeurs peuvent être nulles. La méthode déterminant une d'objet, permet de comparer deux références d'instance de classe par rapport à leur valeur. IFT1020 Été-2004 : Final 2/12

Question 2 (15 points) Soient les classes mammifere, humain et chat suivantes. class mammifere { private double poids; protected int age; public mammifere(double p, int a) { poids = p; age = a; public void affiche() { System.out.println(poids + " " + age); ; class humain extends mammifere { private String nom; private boolean porte_lunettes; public humain(string n, boolean pl, double p, int a){ super(p,a); nom= n; porte_lunettes = pl; public void affiche() { System.out.println(nom); if (porte_lunettes) System.out.println (" porte des lunettes"); else System.out.println (" ne porte pas de lunettes"); ; class chat extends mammifere { private boolean a_griffes; public chat(boolean g, double p, int a){ super(p,a); a_griffes = g; ; 2.1 Énumérez tous les membres d un objet de la classe chat; peu importe qu ils soient publics, protégés ou privés ou qu ils soient des champs ou des méthodes. Vous pouvez ignorer les constructeurs. IFT1020 Été-2004 : Final 3/12

2.2 Soit la classe Exo suivante, définie dans le même fichier que les classes mammifere, humain et chat. Pour chaque fragment de code ci-dessous, indiquez : - si il y aura une erreur de compilation : dans ce cas, expliquez pourquoi et supposez que les prochains fragments de code seront quand même exécutés; - s il n y aura pas d erreur, indiquez ce qui sera affiché. public class Exo { public static void main(string args[]) { Réponse : mammifere m1 = new mammifere(60, 7); m1.affiche(); mammifere m2 = new mammifere(60, 7); humain yves = new humain("yves Rogne", false, 180, 47); m2 = yves; m2.affiche(); Réponse : Réponse : chat matou = new chat(true, 20, 4); matou.age = 6; matou.affiche(); IFT1020 Été-2004 : Final 4/12

Question 3 (15 points) On vous demande d analyser (pas de code à écrire) la réalisation d un petit programme de dessin. Un dessin peut être composé de zéro à plusieurs rectangles et/ou de zéro à plusieurs cercles. A tout moment, le programme est dans l'un des états suivants : - En cours de création d'un rectangle - En cours de création d'un cercle - En mode mise à jour des formes existantes L'utilisateur peut changer d'état à l'aide d'un menu à trois items (un item par état). Par défaut, il est dans l'état "mise à jour des formes existantes". - Quand le programme est dans l'état création d'un rectangle, l'utilisateur indique la forme du rectangle en cliquant à deux endroits différents dans la zone de dessin pour indiquer deux coins opposés du rectangle. En cliquant deux fois, il crée un autre rectangle et ainsi de suite. - Quand le programme est dans l'état création d'un cercle, l'utilisateur indique la forme du cercle en cliquant à deux endroits différents e1 et e2 dans la zone de dessin : e1 pour indiquer le centre et e2 un point quelconque du cercle. En cliquant deux fois, il crée un autre cercle et ainsi de suite. En outre pour chacune de ces figures, on colorie l'intérieur dans une couleur donnée (Rouge, Vert ou Bleu). L'utilisateur choisit une couleur dans un menu. Par défaut la couleur est Rouge. - Quand le programme est dans l'état "mise à jour des formes existantes" et que l'utilisateur clique dans une figure existante, la nouvelle couleur de la figure est la dernière couleur sélectionnée dans le menu de couleur. Pour chaque variable gérée dans le programme, on précise de quel objet elle est un membre donné. 3.1 Recenser tous les composants graphiques de cette application. 3.2 Recenser toutes les actions de l'utilisateur qui doivent faire réagir le programme IFT1020 Été-2004 : Final 5/12

3.3 Définir les écouteurs d'événement associés. Vous devez préciser pour chacun : - Quels sont les objets qu'ils doivent connaître. - Expliquer en français ce que doivent faire la ou les méthodes associées aux événements qu'ils écoutent. IFT1020 Été-2004 : Final 6/12

Question 4 (15 points) Soit la classe : public class BooleanArray { public boolean[] bits = new boolean[32]; Si vous deviez écrire la classe BooleanArrayIterator qui implémente la classe Iterator pour cette classe : 4.1 Quelle est la variable d instance ou les variables dont vous auriez besoin? Argumenter 4.2 Écrire l entête des trois méthodes requises par la classe Iterator. Argumenter 4.3 Nous n avons pas besoin de la méthode remove pour cette classe parce qu elle n est pas utile! Mais le langage java réclame malgré tout de la prévoir dans le cas où elle serait invoquée. Que doit faire en pratique la méthode remove si elle est invoquée sans être implantée? Argumenter IFT1020 Été-2004 : Final 7/12

Question 5 (15 points) Soit l algorithme suivant : fonction f ( réel x, entier n) { réel r = 0; pour ( i de 1 à n) r = r + x; retourner r; 5.1 Que calcule cet algorithme (en théorie)? 5.2 Si l on traduit l algorithme dans un langage réel (par exemple en Java) et qu on l exécute sur une machine où la représentation des réels se fait selon le standard IEEE 754 en simple précision, on obtient les résultats suivants : x n f(x, n) 0.1 10 1.0000001 0.01 100 0.99999934 0.001 1000 0.9999907 0.00001 100000 1.0009902 0.0000001 10000000 1.0647675 0.00000001 100000000 0.25 0.000000001 1000000000 0.03125 a) Expliquez pourquoi il y a une différence entre f(x, n) et le résultat théorique 1.0. IFT1020 Été-2004 : Final 8/12

b) Expliquez pourquoi les deux derniers résultats (0.25 et 0.03125) sont aussi éloignés de la valeur théorique. IFT1020 Été-2004 : Final 9/12

Question 6 (25 points) Toutes les méthodes de cette question feront partie de la classe AnagrammeQ6 6.1 Écrire le code de la méthode seperatestring dont le prototype est : public char[] separatestring(string mot) Où l argument mot est découpé en caractères, qui seront stockés dans le tableau retourné par cette méthode. À noter que l index i du tableau correspond au i e caractère de la chaîne passée comme argument. IFT1020 Été-2004 : Final 10/12

6.2 On suppose que vous avez déjà en votre possession la méthode separatestring décrite en 6.1, écrire le code de la méthode sortstring, dont le prototype est : public String sortstring(string mot) Cette méthode retourne l argument «mot» trié. Par exemple, pour le mot «billet», la méthode retourne «beillt». IFT1020 Été-2004 : Final 11/12

6.3 Étant données les méthodes développées en 6.1 et 6.2, écrire le code de la méthode uniqueanagramme dont le prototype est : public ArrayList uniqueanagramme(arraylist mots) Cette méthode se charge de calculer les anagrammes de l argument «mots». Pour mémoire, une anagramme d'une chaîne est une chaîne formée des mêmes lettres que la première mais dans un ordre différent. Par exemple, «AMI» est une anagramme de «MAI». Vous devez éviter les duplications! Ainsi donc si l argument «mots» contient les deux chaînes «AMI» et «MAI», et comme ces deux chaînes sont anagrammes l une de l autre, vous allez produire comme résultat seulement «AIM». La méthode uniqueanagramme retourne un ArrayList contenant la représentation unique de ces anagrammes. Fin de l examen. Bon été à tou(te)s IFT1020 Été-2004 : Final 12/12