IFT 1170 – toutes les sections (UDM + LONGUEUIL)

publicité
A)
LinkedList, Interface Comparable …
Données : Fichier de type texte Personne.txt
0123456789012345678901234567890123456789012345678901234567890123456789
ROY CHANTAL
F
1.63
54.9
2754
MOLAISON CLAUDE
M
1.57
62.2
1848
ROBITAILLE SUZANNE
F
1.79
72.3
2007
etc . . .
Écrire le code permettant de :
- concevoir la classe Personne pour répondre aux questions
ci-dessous;
- lire le fichier texte, de créer une liste (LinkedList)
des personnes;
- faire une démonstration de Collections.min,
Collections.max, Collections.sort, recherche
séquentielle, recherche dichotomique
- etc . . .
Déjà expliqué en classe :
Voir Liste2.java disponible sur le site du cours.
B)
Programmation des notions de base
Pour les questions de 1.1) à 1.5) (total de 5 x 4 points) dans cette section, le mot terme
désigne un mot ou quelques mots et liste désigne une liste (LinkedList) des personnes
( exemple Liste2.java expliqué en classe et disponible sur le site du cours ).
1.1) Écrivez les trois termes les plus appropriés associés à l’instruction :
System.out.println("Contenu de la liste de personnes : \n" + liste);
Réponse :
1) toString() de l’hiérarchie LinkedList
redéfinition
2) toString() de Personne 3)
1.2) Écrivez les trois termes les plus appropriés associés à liste.getFirst() :
Réponse :
1) liste.get(0)
2) liste.element()
3) liste.peek()
IFT 1170 A, modèle d’un examen final ( 40 % )
1
1.3) Écrivez les trois termes les plus appropriés associés à la méthode indexOf … :
Personne aChercher = new Personne("Dube Francoise", ' ', 0.0, 0.0, 0) ;
int k = liste.indexOf(aChercher);
Réponse :
1) redéfinition de equals
2) vs lastIndexOf 3) recherche séquentielle
1.4) Écrivez les trois termes les plus appropriés associés à la méthode equals de
Personne :
Réponse :
1)
indexOf()
2) lastIndexOf
3) contains(…)
1.5) Écrivez les trois termes les plus appropriés associés à l’instruction :
Collections.sort(liste);
Réponse :
1) Interface Comparable
2) implémenter compareTo 3) binarySearch
fonctionnelle
2) Récursivité ( 15 points )
static void afficher(int n)
{
if (n == 1)
System.out.printf("Go\n");
else
{ System.out.print("Saute ");
afficher(n-1);
}
}
static void afficher2(int n)
{
for (int i = 1; i < n ; i++)
System.out.print("Saute ");
System.out.printf("Go\n");
}
etc . . .
IFT 1170 A, modèle d’un examen final ( 40 % )
2
3)
Classe abstraite, Interface , . . . :
Revoir l’exemple Abstraite.java
4) Fichier Binaire, LinkedList, Pile . . .
Dans Binaire2.java, vous travaillez avec deux fichiers binaires Femme.Bin et
Homme.Bin
Écrivez le code permettant de
3.1) créer deux «LinkedList» listeFem : liste des femmes
et listeHom : liste des hommes ;
3.2) trier listeFem selon les numéros ;
3.3) ajouter 4 cm à la taille de la dernière personne de listeHom.
4.1)
Appels :
LinkedList<Personne> listeFem = relire("Femmes.Bin"),
listeHom = relire("Hommes.Bin");
Méthode :
static LinkedList<Personne> relire(String nomALire)
throws IOException{
System.out.println("On lit le fichier binaire du nom " + nomALire);
LinkedList<Personne> uneListe = new LinkedList<Personne> ();
DataInputStream aLire = new DataInputStream
( new FileInputStream(nomALire));
boolean finFichier = false ;
char sexe = ' ';
while ( ! finFichier ) {
try {
sexe = aLire.readChar();
} catch ( EOFException e ) {
finFichier = true;
}
if (!finFichier) {
double taille = aLire.readDouble(),
poids = aLire.readDouble();
int numero = aLire.readInt();
IFT 1170 A, modèle d’un examen final ( 40 % )
3
String nomPre = "";
for (int i = 0; i < 30; i++)
nomPre += aLire.readChar();
Personne pers = new Personne(nomPre, sexe, taille, poids, numero);
uneListe.add(pers);
}
}
aLire.close();
return uneListe;
}
4.2) trier listeFem selon les numéros :
class Personne
implements Comparable<Personne>
{ . . . etc . . .
public int compareTo(Personne autre)
{
return numero - autre.numero;
}
}
Dans main(…) :
Collections.sort(listeFem);
4.3) ajouter 4 cm à la taille de la dernière personne de listeHom.
Personne lastHom = listeHom.getLast();
lastHom.setTaille( lastHom.getTaille() + 0.04);
Dans Personne, on écrit des méthodes d’accès et de modifications nécessaires.
etc . . .
IFT 1170 A, modèle d’un examen final ( 40 % )
4
Téléchargement