IN101 : Sujet du TD6
Groupe ESIEE, Denis BUREAU, décembre 2005.
Attention !
Le sujet peut être modifié jusqu'à la veille du TD.
1 Les objectifs
Savoir déclarer, définir, et utiliser des tableaux mono- ou bi-
dimensionnels de taille fixée à l'exécution,
et savoir utiliser les collections (en particulier : ArrayList).
2 Notions abordées dans le cours 6
- Notion de tableau mono-dimensionnel de taille "fixe"
- Notation, indiçage, accès à une case
- Type du tableau, attribut, méthodes, classe Arrays
- Tableaux de caractères et lien avec les chaînes de caractères
- Tableaux multi-dimensionnels
- Contenu du framework Collections
- Interfaces, classes abstraites, implémentations, algorithmes
- ArrayList<E>
3 Références dans le "Petit mémento de syntaxe Java"
- Paragraphes 8.2.4, 8.2.5, 8.2.5.1 p.18, 8.2.5.2, et 8.2.5.4 p.21.
4 Exercices liés à ce TD
- Voir page web de l'unité (exercices avec tableaux).
5 Tableaux: Traduire en Java
Aide : pour saisir le ième entier, on peut écrire :
n = Integer.parseInt( JOptionPane.showInputDialog( "Entier numero "+i ) );
Debut CLASSE Tableaux
PROCEDURE run()
Soient t1 et t2 deux tableaux d'entiers.
t1 <--- saisirTableau( "premier" )
afficheTableau( t1 )
t2 <--- saisirTableau( "second" )
afficheTableau( t2 )
SI tabEgal( t1, t2 )
ALORS AFFICHER "identiques".
SINON AFFICHER "differents".
FINSI
FIN PROCEDURE
FONCTION saisirTableau( une Chaine: qt ) RETOURNERA un tableau d'entiers
Soit n un entier.
AFFICHER "Taille du " qt " tableau ?"
SAISIR la taille dans n
ALLOUER un tableau d'entiers t
Soit r un entier.
POUR i DE 1 A n FAIRE
AFFICHER "Element" i " : "
SAISIR r
t[i-1] <--- r
FIN POUR
RETOURNER t
FIN FONCTION
PROCEDURE afficheTableau( un tableau d'entiers: t )
Soit une Chaine vide s.
SI t n'est pas vide
ALORS
AJOUTER t[0] A s
FINSI
POUR i DE 1 A (taille de t)-1 FAIRE
AJOUTER ", " t[i] A s
FIN POUR
AFFICHER s
FIN PROCEDURE
FONCTION tabEgal( 2 tableaux d'entiers: t1 et t2 ) RETOURNERA un booleen
Soit r un booleen initialise a VRAI.
SI les 2 tailles sont differentes
ALORS r <--- FAUX
SINON
i <--- 0
TANTQUE i < taille de t1 ET r
SI t1[i] different de t2[i] ALORS r <--- FAUX FINSI
INCREMENTER i
FIN TANTQUE
FINSI
RETOURNER r
FIN FONCTION
Fin CLASSE
6 Écrire en Java
6.1 Moyenne
Écrire une fonction moyenne qui retourne la moyenne de nombres
réels positifs ou nuls (des notes sur 20 par exemple) passés en paramètre.
- ère version : les paramètres sont un tableau de réels et
son nombre d'éléments utiles.
- ème version : le seul paramètre est une ArrayList.
- ème version : même paramètre, mais il faut utiliser la nouvelle
boucle POUR CHAQUE.
6.2 Minimum
Écrire une fonction minimum qui prend en paramètre un tableau de réels
et son nombre d'éléments, et qui retourne la plus petite valeur
présente dans le tableau.
6.3 Matrice
- Créer une classe Matrice sans attribut, mais avec une méthode
statique test() qui déclarera
un tableau bi-dimensionnel de réels
mat, puis qui appellera les 2 méthodes suivantes (n=20).
- Écrire une fonction statique initMat (à un paramètre n)
qui crée, initialise, et retourne un tableau de réels de
n lignes x 5 colonnes comme suit : la 3ème colonne
contiendra les nombres de 1 à n ; les colonnes 1, 2, 4, et 5
contiendront respectivement la racine cubique, la racine carrée, le
carré et le cube du nombre de la 3ème colonne.
- Écrire une procédure statique affMat d'affichage de la matrice sur
n lignes de 5 colonnes, avec seulement 3 chiffres après la virgule
(un simple calcul suffit pour cela).
Pour la beauté de la présentation, on peut utiliser le caractère
'\t' qui affiche une tabulation sur l'écran.
6.4 En travail personnel
- Écrire (sans utiliser ni tableau ni collection) une fonction
estPalindrome prenant en entrée une chaîne de
caractères et retournant une valeur booléenne suivant que cette
chaîne est un palindrome ou non.
Rappel : un palindrome est un mot ou une phrase se lisant de la
même manière de gauche à droite et de droite à gauche.
Exemples : "Radar", "Esope reste ici et se repose."
On peut donc constater d'après ces exemples que les minuscules et
les majuscules sont équivalentes, et que seuls les caractères
alphabétiques sont pris en compte.
Rappels :
- La fonction charAt(i) retourne le caractère situé
à la position i dans la chaîne de caractères.
- La fonction isLetter(c) de la classe Character
retourne vrai si c est une lettre (minuscule ou
majuscule).
- La fonction toLowerCase(c) de la classe Character
retourne le caractère c en minuscule si c'était une
majuscule, ou le caractère c inchangé sinon.
- Avec tableau :
Refaire cet exercice en convertissant la chaîne de caractères
en tableau de caractères, avant d'entamer les vérifications.
- Avec collection :
Refaire cet exercice en construisant une ArrayList de caractères,
avant d'entamer les vérifications.
File translated from
TEX
by
TTH,
version 3.70.
On 12 Dec 2005, 22:18.