• Aucun résultat trouvé

Université Paris XII IUT de Sénart-Fontainebleau Département Informatique S3 - APL 20172018 PARTIEL 1

N/A
N/A
Protected

Academic year: 2022

Partager "Université Paris XII IUT de Sénart-Fontainebleau Département Informatique S3 - APL 20172018 PARTIEL 1"

Copied!
3
0
0

Texte intégral

(1)

Université Paris XII

IUT de Sénart-Fontainebleau Département Informatique S3 - APL

20172018

PARTIEL 1

Seuls sont autorisés, à titre de documents, les programmes imprimés com- prenant explicitement le nom imprimé de l'étudiant sur chaque page (et celui-ci seulement), un extrait de table Unicode et les notes manuscrites.

Les exercices sont indépendants mais ils doivent être présentés dans l'ordre (prévoir deux pages par exercice).

Exercice 1.- (Envois diérés)

Une le d'attente (queue en anglais) est une structure de données dynamique linéaire : on place les éléments un à un en n de la le d'attente et on les récupère un à un en début de la le d'attente.

Autrement dit on récupère le premier qui s'est placé dans la le (alors que dans une pile, on récupère le dernier).

On va considérer ici des les d'attente d'entiers naturels.

- 1o) Concevoir une classe Java QueueElement ayant pour attributs une valeur entière et deux objets de la classe QueueElement : l'élément précédent (previous) et l'élément suivant (next) dans la le d'attente.

Les méthodes sont : le constructeur prenant en argument un entier (pour construire le premier élément d'une le d'attente vide), le constructeur prenant en argument un entier et un objet de la classe QueuElement (qui servira à ajouter un élément à une le d'attente non vide), les accesseurs setNext(QueueElement), getVal() et getNext() dont les noms précisent les rôles.

- 2o) Concevoir une classe Java Queue dont les attributs sont le premier élément (begin) de la pile et le dernier (end) et les méthodes sont : le constructeur par défaut (construction d'une le d'attente vide), isEmpty() pour tester si la le d'attente est vide, push(int) pour ajouter un élément en n de la le d'attente, pop() pour récupérer la valeur du premier élément si la le d'attente n'est pas vide et affiche() qui ache les valeurs des éléments de la le, du premier au dernier, un par ligne.

- 3o) Écrire une application Java qui demande un certain nombre d'entiers naturels non nuls, qui ache (envoie) ces entiers lorsqu'on entre 0 et qui ter- mine la session (après avoir aché les entiers qui sont encore dans le tampon) lorsqu'on entre - 1.

1

(2)

[Un exemple de session est :

>java envoi n = 1 n = 7 n = 9 n = 0 17 9n = 5 n = 12 n = 0 512 n = 3 n = 4 n = -1 34

>

]

- 4o) a) Usuellement un tel tampon est implémenté par un tableau. Expliquer pourquoi cela n'est pas une bonne implémentation.

b) On aurait pu utiliser une pile pour entreposer les valeurs entrées : dans ce cas il faut, au moment de l'envoi diéré, placer d'abord les éléments de la pile dans une pile auxiliaire puis acher les éléments de la pile auxiliaire (pour les acher dans le bon ordre). Expliquer pourquoi cette façon de faire est moins ecace que l'utilisation d'une le d'attente.

2

(3)

Exercice 2.- (Inversion d'une chaîne de caractères) - 1o) Écrire une méthode récursive :

String inversion(String s)

qui renvoie la chaîne de caractères écrite dans l'ordre inverse (`Bonjour' donne

`ruojnoB').

[On remarquera que : inv(λ) =λ,

inv(aw) = inv(w) + a,

oùλest le mot vide, aun caractère etw une chaîne de caractères.]

- 2o) Écrire une application Java qui demande une chaîne de caractères et qui ache l'inverse de celle-ci.

[Un exemple de session est :

>java inverse

Entrez un mot : Jean Dupont Ce mot inversé est : tnopuD naeJ

>]

Remarque.- Voyez-vous comment on aurait pu répondre au problème de l'exercice 1 en utilisant une méthode récursive, sans utiliser de structure de données dy- namique ?

Documentation

Complément sur les chaînes de caractères

Donnons deux méthodes de la classe String :

• char charAt(int index)

renvoie le index-ième caractère, le premier caractère ayant pour index 0 ;

• String substring(int indexbegin, int indexend)

renvoie la sous-chaîne de caractères constituée des caractères de la chaîne commençant par celui d'index indexbegin (inclus) jusqu'à celui d'index indexend (non inclus).

3

Références

Documents relatifs

Ecrire une application Java qui affiche un cadre (fermant) sur lequel lorsqu’on ´ clique sur deux emplacements, le cercle de centre le premier endroit cliqu´e et passant par

Il y a en Java un certain nombre de constantes de style : public final static int PLAIN; // romain public final static int BOLD; // gras public final static int ITALIC; //

Dans le r´ epertoire de l’application serveur se trouve un sous-r´ epertoire de nom “images” qui contient des images de format .jpg contenant des actualit´ es telles que

Ce programme cr´eera alors deux fichiers (texte) : un fichier ‘texte.txt’ constitu´e du reprenant le contenu du fichier entr´e dont on a enlev´e tous les caract`eres ‘*’ et

- Pour la première lettre du message, ‘e’ étant la cinquième lettre de l’al- phabet, ‘p’ est remplacé par la quatrième lettre qui suit ‘p’, c’est-à-dire ‘t’... -

- 3 o ) Écrire une application Java demandant le nom d’un fichier (texte) source, le nom d’un fichier (texte) but et qui place dans le fichier but la liste des mots se trouvant dans

Pour cela vous allez écrire une application qui demande à l’utilisateur les coordonnées du centre et le rayon d’un premier cer- cle, puis les coordonnées et le rayon d’un

Un enseignant corrige les copies d'une promotion, entre le nom et la note correspondante de chaque étudiant et veut voir acher les noms par ordre de mérite : un nom par ligne, le nom