TP sur les tableaux

Page Home (contact) Retour TPs

Support de cours


Dans ce TP vous travaillerez avec des tableaux de nombres entiers.

TRÈS IMPORTANT : à partir de ce TP, toutes les classes devront être dans un paquetage et tous les fichiers de vos exercices devront respecter la structure préconisée dans le cours (sous-répertoires src et classes).


Le plus grand élément d'un tableau

Ecrivez une classe MaximumTableau avec une méthode maxTableau qui renvoie le plus grand entier d'un tableau d'entiers passé en paramètre. Testez dans la méthode main de la classe.

Correction

MaximumTableau.java


A partir de maintenant, et jusqu'à l'exercice sur Arrays, les tableaux manipulés par la classe Tableau seront des tableaux à 1 dimension de nombres entiers positifs (de type int). Les tableaux pourront contenir des "cases vides" dont la valeur sera -1. Toutes les "cases vides" seront à la fin du tableau.


Affichage

Ecrivez une classe Tableau qui contient les méthodes suivantes :

  1. Méthode afficheTableau qui affiche tous les éléments d'un tableau passé en paramètre (y compris les valeurs -1) en utilisant une boucle for "normale".
  2. Méthode afficheTableau2 qui affiche tous les éléments d'un tableau (y compris les valeurs -1) en utilisant une boucle "for-each".
  3. Ecrivez une méthode afficheTableau3 qui affiche seulement les éléments non vides du tableau.

Correction

Tableau.java


Ajout des données

Ajoutez dans la classe Tableau les méthodes suivantes :

  1. Méthode initialise qui initialise à -1 tous les éléments d'un tableau passé en paramètre (toutes les cases du tableau sont vides).
  2. Méthode ajouterElement qui ajoute un élément au tableau passé en paramètre. La méthode ne fera rien si le tableau est déjà plein ; en ce cas elle renverra le booléen false. Testez en utilisant afficheTableau de l'exercice précédent. Testez les différents cas : ajout dans un tableau vide, en dernière position, dans un tableau plein.
  3. Méthode remplir qui remplit complètement un tableau passé en paramètre avec une valeur passée en paramètre, en utilisant les méthodes initialise et ajouterElement ; ça n'est évidemment pas la meilleure façon d'écrire cette méthode !
  4. Méthode testRemplir qui teste le bon fonctionnement de la méthode remplir (à vous de trouver ce qu'elle doit faire). La méthode renverra true si tout s'est bien passé.

Correction

Tableau.java


Recherche d'un élément

Ajoutez dans la classe Tableau les méthodes suivantes :

  1. Méthode rechercher qui recherche la position d'un entier dans un tableau. La méthode renvoie -1 si l'élément n'est pas dans le tableau. La méthode renvoie 0 si l'entier est dans le premier élément du tableau (même si le tableau contient d'autres éléments égaux à l'entier recherché), et plus généralement, renvoie n - 1 si l'entier est dans la position nième position du tableau.
  2. Méthode rechercherTous qui renvoie toutes les positions du tableau qui contiennent des éléments égaux à l'entier recherché dans le cas où il apparait plusieurs fois. Attention à bien prendre en compte le cas où la valeur cherchée n'est pas dans le tableau.
  3. Méthode rechercherTableauTrie qui fait ce que fait la question 1 dans le cas où le tableau est trié par ordre croissant (vous supposerez que c'est vrai, sans le vérifier).
  4. Méthode croissant qui indique si le tableau est trié par ordre croissant.
  5. Méthode rechercher2 qui utilise la méthode croissant pour choisir une des 2 méthodes écrites précédemment pour effectuer la recherche du premier élément d'un tableau égal à un entier donné (évidemment, on ne recherche pas ici les performances).

Correction

Tableau.java

Classe java.util.Arrays

Ecrivez une classe TestArrays dont la méthode main

  1. crée un tableau de 150 nombres entiers et le remplit avec des nombres tirés au hasard entre 1 et 200 ;
  2. affiche les valeurs du tableau en utilisant la classe Arrays ;
  3. trie ce tableau par ordre croissant en utilisant la classe Arrays ;
  4. affiche à nouveau les valeurs du tableau (pour vérifier le tri) ;
  5. tire 20 nombres au hasard et indique s'ils appartiennent au tableau (et en ce cas, donne la position dans le tableau) en utilisant la recherche dichotomique (voir classe Arrays).

Correction

TestArrays.java


Tableau des paramètres de la ligne de commande

Ecrivez du code pour faire afficher les paramètres de la ligne de commande, un paramètre par ligne.

Lorsque la ligne de commande ne contient aucun paramètre, est-ce que le tableau des paramètres est null . S'il n'est pas null, quelle est sa longueur ?

Que se passe-t-il lorsqu'on affiche les valeurs de tous les éléments d'un tableau de longueur 0 avec une boucle for ?

Pour répondre à ces questions écrivez une classe Main qui contient une méthode main et lancez l'exécution avec quelques paramètres ou aucun paramètre.

Correction

Main.java


Si vous avez fini avant les autres...

Suppression d'un élément

Ecrivez dans la classe Tableau une méthode supprimer qui supprime un élement du tableau (le premier élément du tableau égal à la valeur du paramètre de la méthode). Utilisez pour cela une des méthodes de l'exercice précédent pour savoir l'indice de l'élément. Il faudra "tasser" les éléments non vides si l'élément supprimé est au milieu des éléments non vides.

La méthode renvoie l'indice du tableau de l'élément qui a été supprimé. Elle renvoie -1 si l'élément n'a pas été trouvé.

Ecrivez une méthode supprimerTous qui supprimer tous les éléments du tableau égaux à une valeur donnée. Utilisez pour cela la méthode rechercherTous.

Correction

Tableau.java

Tableau à 2 dimensions

Vous avez peut-être appris par coeur la formule (X + Y)² = X² + 2 XY + Y². Les coefficients du polynôme 1, 2, 1 (appelés coefficients binomiaux) peuvent être retrouvés facilement en construisant le triangle de Pascal.

Le triangle de Pascal doit son nom à sa forme. Voici quelques informations sur le triangle de Pascal.

Ecrivez une classe TrianglePascal qui construit le triangle de Pascal jusqu'au rang n (n correspondant à la ligne qui donne la formule pour la puissance nième de a + b). Pour cela, vous construirez un tableau de taille n + 1 et pour chaque case du tableau vous construirez le tableau qui correspond à une ligne du triangle de Pascal. Vous trouverez la formule qui donne les valeurs de chaque ligne en suivant le lien ci-dessus qui donne des informations sur le triangle de Pascal (méthode construireTriangle).

Pour vérifer vous ferez afficher ensuite les valeurs des lignes du triangle construit (méthode afficherTriangle).

Correction

TrianglePascal.java


Retour TPs