Exercices Java : Les tableaux - moyenne , égalité du contenu, tableau pas plein

    

Exercice 1 : moyenne de nombres

{sidebar id=2}

Ecrivez un programme qui réalise la moyenne des nombres entiers entrés sur la ligne de commande.

Exercice 2 : égalité de contenu

Ecrivez une méthode qui teste si un tableau et une chaîne contiennent les mêmes caractères dans le même ordre. Vous écrirez une méthode main permettant de tester cette méthode.

Exercice 3 : égalité à la casse près

Ecrivez une méthode testant si deux chaînes contiennent les mêmes caractères dans le même ordre, les majuscules et minuscules d’un même caractère étant considérées comme identiques.

Exercice 4 : tableau pas plein

           On veut mémoriser dans un tableau les notes d’un élève. On veut garder le même tableau tout au long de l’année, alors que le nombre de notes varie : au début, il n’y en a aucune, puis petit à petit, il y en a de plus en plus. Comme un tableau a une taille fixe et qui ne peut pas changer, on prendra une taille relativement grande et on laissera certaines cases inoccuppées. En fait, ces cases contiendront une information non pertinente, que notre programme ne prendra pas en compte. Notez bien qu’il y aura toujours un entier dans chaque case, quoi qu’on fasse. Il faudra que notre programme ne les interprète pas comme des notes, qu’il ne les regarde même pas. On ne peut pas ne rien mettre dans une variable ou dans une case de tableau : elle contient toujours une valeur du type des éléments.
         Les opérations que l’on voudra effectuer sur le tableau sont : ajouter une note, afficher toutes les notes et calculer la moyenne de l’élève.
– Solution 1 : on mémorise le nombre N de notes dans une variable de type int. On met les notes dans les N premières cases du tableau. Les cases à partir de l’indice N+1 sont “vides”.
Exemple :

t1 :
0      1    2    3    4    5    6     7
12  15  10  19   8    7  15   -25
N : 3

Les cases dont les indices sont compris entre 0 et N-1 (0, 1, 2) sont occuppées, alors que les cases sont comprises entre N et t1.length-1 (3, 4, 5, 6, 7) sont libres.

– Solution 2 : on utilise une valeur particulière du type int pour représenter la non-note, ou l’absence de note. On met cette valeur dans les cases inoccuppées du tableau. Il faut dans ce cas choisir une valeur peu utile. Dans notre exercice, il s’agit de notes. 0 est une valeur très utile pour les notes. Il ne faut donc pas choisir 0 comme valeur pour dénoter la non-occupation. On peut en revanche choisir -1 qui
ne correspond pas à une note, ou encore Integer.MIN_VALUE, la plus petite valeur du type int.
Exemple :

t1 :
0     1     2     3   4    5    6    7
12 15   -1   10  -1   -1  -1   -1

– Solution 3 : utiliser en parallèle avec le tableau de notes un tableau de booléens dont chaque case indique si oui ou non, la case correspondante du tableau de note est occuppée.
Exemple :

{sidebar id=1}

t1 :
0      1     2     3   4    5    6     7
12  15   13  10   8    9  13   14

t2 :
0       1         2         3       4         5         6          7
true  true   false    true   false   false   false   false

Dans cet exemple, les cases 0, 1 et 3 sont occuppées. Les autres sont libres.

1. Parmi ces trois solutions, laquelle vous semble la meilleure ? Pourquoi ? Dans votre raisonnement, vous devrez prendre en compte les opérations que l’on veut effectuer avec le tableau.

2. En utilisant cette meilleure solution, écrivez un programme qui saisit un certain nombre de notes au clavier, nombre non fixé dans le programme mais par l’utilisateur, à l’exécution, et ensuite affiche lecontenu du tableau (en ayant soin de n’afficher que des notes, pas le contenu des cases inemployées) et la moyenne. L’affichage et le calcul de moyenne seront réalisés au moyen de sous-programmes.
L’ajout sera fait dans la méthode main.
3. Si vous avez du courage, faites de même pour les deux autres solutions.

Article publié le 20 Mars 2010 Mise à jour le Dimanche, 11 Avril 2010 12:58