Algorithmique & Programmation Orientée Objet
Semestre 2 ST

Les tableaux de variables
Cours TD TP - Corrections

Clavier.class - Ecran.class - Chaine.class - Documentation

Première partie

Implantation en langage Java et validation des exercices de TD

On pourra compléter l'exercice n°2 par la question suivante:

c) Développer un sous-algorithme permettant de générer un tableau de n entiers tirés au hasard et placés en ordre croissant.

Seconde partie: Exercice supplémentaire

Exercice n°5

Un texte est stocké dans un tableau de caractères. On souhaite crypter ce texte de manière à le rendre illisible de manière directe. La méthode de cryptage utilisée consiste à transformer chaque caractère c du texte originel par un nouveau caractère cn selon la formule cn = f(c).
La fonction f est une fonction simple qui fait correspondre de manière bijective un caractère à un autre caractère. Ce pourra être par exemple:
f('a') = 'c', f('b') = 'r', f('c') = 'z', f('d') = 'e', f(' ') = 'é', ...

a) Définir un type de données clefDeCryptage qui permettra de stocker l'ensemble des associations (caractère à coder, caractère une fois codé) utilisées lors d'une opération de cryptage ou de décryptage.

b) Développer un sous-algorithme de cryptage d'un tableau de caractères. Si un caractère du tableau à crypter n'apparait pas dans la clef de cryptage telle quelle a été conçue, il est reporté tel quel.

c) Développer un sous-algorithme de décryptage d'un tableau de caractères.

Exercice n°6

On souhaite implanter une "structure de données" permettant de stocker un ensemble de chaînes de caractères pour au maximum 20 chaînes de caractères.
  1) Définir un type agrégé permettant de stocker un tel ensemble (initialisé à l'ensemble vide).
  2) Implanter un sous-algorithme permettant d'afficher les chaînes de caractères présentes dans un ensemble de chaînes de caractères.
  3) Implanter un sous-algorithme permettant d'ajouter une chaîne de caractères à un ensemble de chaînes de caractères (l'ajout d'une chaîne existant déjà est autorisé).
  4) Implanter un sous-algorithme permettant de tester si une chaîne de caractères appartient à un ensemble de chaînes de caractères.
  5) Implanter un sous-algorithme permettant de fusionner 2 ensembles de chaînes de caractères en un nouvel ensemble de chaînes de caractères.
  6) Implanter un sous-algorithme permettant de retirer une chaîne de caractères d'un ensemble de chaînes de caractères.
  7) Implanter un sous-algorithme permettant de tester si un ensemble de chaînes de caractères est vide.