École Polytechnique Département de Génie Informatique INF-4100, Sujets spéciaux: le langage JAVA Examen intratrimestriel: Automne 2003

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Programmer en JAVA. par Tama

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

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

Package Java.util Classe générique

Java Licence Professionnelle CISII,

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

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

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

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

Programme Compte bancaire (code)

as Architecture des Systèmes d Information

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

Flux de données Lecture/Ecriture Fichiers

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

Java DataBaseConnectivity

Premiers Pas en Programmation Objet : les Classes et les Objets

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

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

Solutions du chapitre 4

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Une introduction à Java

Langage Java. Classe de première SI

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

TP1 : Initiation à Java et Eclipse

Corrigé des exercices sur les références

Programmation Par Objets

ACTIVITÉ DE PROGRAMMATION

TP, première séquence d exercices.

INF 321 : mémento de la syntaxe de Java

Chapitre 10. Les interfaces Comparable et Comparator 1

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

Cours 14 Les fichiers

INITIATION AU LANGAGE JAVA

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

PROGRAMMATION PAR OBJETS

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

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

Rappels Entrées -Sorties

Cours 1: Java et les objets

Utilisation d objets : String et ArrayList

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Support de cours et TD Programmation Orientée Objet

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

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

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

Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

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

Développement Logiciel

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

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


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

JAVA. Introduction à la programmation objet avec java 1/4. Nadir BOUSSOUKAIA

Introduction au langage C

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

Langage à objets : JAVA (1)

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

Java Licence Professionnelle CISII,

Remote Method Invocation (RMI)

I. Introduction aux fonctions : les fonctions standards

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

Derrière toi Une machine virtuelle!

Programmation en Java IUT GEII (MC-II1) 1

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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)

Synchro et Threads Java TM

Programmation par les Objets en Java

COMPARAISONDESLANGAGESC, C++, JAVA ET

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

1. Langage de programmation Java

IRL : Simulation distribuée pour les systèmes embarqués

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

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

Threads. Threads. USTL routier 1

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Traitement de données

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

Introduction au langage Java

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

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

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

Programmation Orientée Objets Le Langage JAVA

Interfaces graphiques avec l API Swing

TD/TP PAC - Programmation n 3

Auto-évaluation Programmation en Java

Programmation avec des objets : Cours 7. Menu du jour

1.6- Génération de nombres aléatoires

Les bases de l informatique et de la programmation. École polytechnique

Exercices sur les interfaces

Programmation Objet Java Correction

TD2 Programmation concurrentielle

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 )

Cours d Algorithmique et de Langage C v 3.0

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Transcription:

École Polytechnique Département de Génie Informatique INF-4100, Sujets spéciaux: le langage JAVA Examen intratrimestriel: Automne 2003 Question 1: (5 points) 1.1 On désire créer et initialiser un tableau bidimensionnel non rectangulaire constitué de 500 rangées; chaque rangée contient un nombre variable de colonnes, chaque emplacement contenant une valeur de type "float"; le nombre de colonnes d'une rangée est fixé comme suit: - si le numéro de rangée est compris entre zéro et 249, le nombre de colonnes de cette rangée est égal au numéro de rangée plus un; - si le numéro de rangée est plus grand que 249, le nombre de colonnes est égal à 500 moins le numéro de rangée. Une fois le tableau créé, il doit être initialisé en plaçant dans chaque Tableau[i][j] une valeur donnée par la formule 8.75 * i + 6.29*j Écrivez les instructions requises. Réponse: 1.2 float Tableau [][] = new float[500][]; for(int i = 0; i<500; i++) if(i<250)tableau[i] = new float[i+1]; else Tableau[i] = new float[500-i]; for(int i=0; i<500; i++) for(int j=0; j< Tableau[i].length; j++) Tableau[i][j] = 8.75f*i + 6.29f*j; Étant donné ce même tableau, et un entier K compris entre 0 et 499, comment obtient on le nombre d'éléments de la rangée K sans refaire le calcul décrit ci-haut? int TailleRangeeK = Tableau[K].length; Question 2: (4 points) Écrivez une méthode qui reçoit un nom complet de fichier et le sépare en ses éléments; la spécification détaillée est comme suit: - nom de la méthode: Separe

- un seul argument: une chaine de caractères qui est le nom complet d'un fichier, y compris l'identification du disque; les séparateurs entre les noms de répertoires peuvent être soit / ou \; le nombre de répertoires n'est pas prédéfini; - valeur de retour: un tableau de chaines de caractères dont la taille est égale au nombre de noms de répertoires dans la chaîne fournie en argument plus deux; le premier élément contient le nom du disque sans le deux-points; le dernier élément contient le nom du fichier avec son extension; chacun des autres éléments contient un des noms de répertoire; Exemple: si cette méthode reçoit la chaine c:\rep1\tralala/foufou/unfichier.lll, elle retourne un tableau de taille 5 dont les éléments sont: c Rep1 Tralala FouFou Unfichier.lll Réponse: String [] Separe(String S) { StringTokenizer ST = new StringTokenizer(S, ":/\\"); String Resultat[] = new String[ST.countTokens()]; for(int i=0; i<resultat.length; i++) Resultat[i] = new String(ST.nextToken()); return Resultat; NOTE: Dans les deux questions suivantes, le mot "package" réfère à une des "librairies" de JAVA. Question 3: (5 points) On considère le programme ci-dessous. Ce programme est composée de deux classes, la classe "Decelle.java" et la classe "Reference.java". La classe "Decelle.java" contient le point d entrée de ce programme. Les deux classes "Decelle.java" et "Reference.java" sont spécifiées de la façon suivante : public class Decelle { StringBuffer sb = new StringBuffer("Le pavillon"); String s = "le pavillon "; public Decelle() { if ((sb.length() > 20) && (sb.append(" Decelle").equals("False"))) sb.append(" : se trouve sur l'avenue Decelle"); sb.append(" Decelle");

System.out.println("La valeur est: " + sb); System.out.println(s.toUpperCase()); System.out.println(s); public static void main(string args[]) { Decelle decel = new Decelle(); Reference R1 = new Reference (); Reference R2 = new Reference (); R1.vare = 10; R1.varstatic ++; R2.vare = 20; R1.incremente(R2); R2.incremente(R1); System.out.println(R1.vare); System.out.println(R2.vare); System.out.println(R1.varstatic); System.out.println(R2.varstatic); class Reference { int vare = 10; static int varstatic = 30; public void incremente(reference refere) { refere.vare++; refere.varstatic++; 3.1 Quelle est la différence entre la classe String et la classe StringBuffer? Réponse: La classe String représente une chaîne de caractère constante son contenu ne change pas même si on applique l ensemble des méthodes que la classe String possède. Le contenu change si et seulement si l objet est recréé avec une nouvelle chaîne de caractère. La classe StringBuffer représente une chaîne de caractère dont la taille change dynamiquement. Le contenu des objets de type StringBuffer change suite à l appel de certaines méthodes de cette classe.

3.2 À quel package (librairie) appartiennent ces deux classes (String et StringBuffer)? Réponse: Java.lang 3.3 Pour quelle raison ce package (librairie)(de la question 3.2) n est-il pas importé dans la classe Decelle? Réponse: Le package java.lang est importé par défaut par toutes les applications Java 3.4 Qu est ce que ce programme affiche après son exécution? Réponse: le résultat de l exécution du programme est : La valeur est: Le pavillon Decelle LE PAVILLON le pavillon 11 21 33 33. Question 4: (6 points) On considère une classe ManipuleFichier. Cette classe contient la méthode fichier() décrite de la façon suivante : void fichier(){ Try { FileOutputStream fos = new FileOutputStream("xx"); for (int j = 10; j < 50; j++) fos.write(j); fos.close(); RandomAccessFile raf = new RandomAccessFile("xx", "r"); raf.seek(10); int i = raf.read(); raf.close() System.out.println("i = " + i); catch(ioexception e) { 4.1 Décrivez brièvement la particularité de la classe RandomAccessFile dans le package (librairie) java.io? Réponse: La classe RandomAccessFile permet un accès aléatoire aux fichiers en lecture et en écriture. Le reste des classes du package Java.io ne permettent qu un accès séquentiel aux fichiers. 4.2 Quel est le résultat de l appel de la méthode fichier()? Réponse: i = 20 4.3 Écrivez une méthode publique de la classe ManipuleFichier sans valeur de retour. Cette méthode sera nommée "affichejeton", reçoit en paramètre une chaîne de

caractère qui représente le chemin et le nom d un fichier texte dont les caractères sont codés sur 8 bits. Cette méthode ouvre le fichier en lecture. Si le fichier existe, la méthode affiche dans la zone de texte "zonetxt", la taille de ce fichier, le nombre de mots qu il contient ainsi que les mots eux mêmes. Chaque mot doit être affiché sur une ligne. Si le fichier n existe pas un message d erreur serait affiché dans une boite de dialogue. La méthode "affichejeton" ne dois pas utiliser la classe JFileChooser. On suppose que la classe ManipuleFichier déclare la zone de texte "zonetxt" de type JTextArea et que cet objet est accessible par la méthode "affichejeton". Réponse: public void affichejeton(string nomfichier){ char cbuf []; StringTokenizer tokens; int taille ; try{ File file = new File(nomfichier); BufferedReader br = new BufferedReader( new InputStreamReader( new FileInputStream(nomfichier))); taille = (int)file.length(); cbuf = new char [(int)file.length()]; br.read(cbuf,0,(int)file.length()); tokens = new StringTokenizer(new String(cbuf)); zonnetxt.settext(""); zonnetxt.settext("la taille du fichier: " + taille+ "\n Nombre d'éléments: " + tokens.counttokens() + "\nles jetons sont:\n" ); while ( tokens.hasmoretokens() ) zonnetxt.append( tokens.nexttoken() + "\n" ); catch(ioexception e){ JOptionPane.showMessageDialog( this, "Nom de fichier non valable", "Nom de fichier non valable", JOptionPane.ERROR_MESSAGE); -o-o-o-o-o-o-o-o-o-o-o-o-o-o- Les professeur Bernard Lanctôt Nabil El Abboudi le 9 septembre 2003