IFT 1170 A, modèle d’un examen final ( 40 % )
1
A) Programmation des notions de base / 60 points
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 2) toString() de Personne 3)
redéfinition
1.2) Écrivez les trois termes les plus appropriés associés à liste.getFirst() :
System.out.println("\nPremière personne : " + liste.getFirst());
Réponse :
1) liste.get(0) 2) liste.element() 3) liste.peek()
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
IFT 1170 A, modèle d’un examen final ( 40 % )
2
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");
}
3) Fichier Binaire, LinkedList ( 25 points )
Dans Binaire2.java, vous travaillez avec deux fichiers binaires Femme.Bin et
Homme.Bin
Écrivez le code permettant de
3.1) cer deux «LinkedLis listeFem : liste des femmes
et listeHom : liste des hommes ;
3.2) trier listeFem selon les nuros ;
3.3) ajouter 4 cm à la taille de la dernière personne de listeHom.
3.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 = ' ';
IFT 1170 A, modèle d’un examen final ( 40 % )
3
while ( ! finFichier ) {
try {
sexe = aLire.readChar();
} catch ( EOFException e ) {
finFichier = true;
}
if (!finFichier) {
double taille = aLire.readDouble(),
poids = aLire.readDouble();
int numero = aLire.readInt();
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;
}
3.2) trier listeFem selon les nuros :
class Personne
implements Comparable<Personne>
{ . . . etc . . .
public int compareTo(Personne autre)
{
return numero - autre.numero;
}
}
Dans main() :
Collections.sort(listeFem);
IFT 1170 A, modèle d’un examen final ( 40 % )
4
3.3) ajouter 4 cm à la taille de la dernre personne de listeHom.
Personne lastHom = listeHom.getLast();
lastHom.setTaille( lastHom.getTaille() + 0.04);
Dans Personne, on écrit des thodes d’accès et de modifications cessaires.
B) LinkedList, Interface Comparable … / 40 points
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 . . .
Voir Liste2.java disponible sur le site du cours.
/* Fichier Liste2.java (liste des personnes)
* Données Personne.txt
*
* Lire le fichier, créer une liste des personnes
* Démonstration de Collections.min, Collections.max,
* Collections.sort, recherche séquentielle,
* recherche dichotomique
*
* Fin de matières pour le final
* Préparé par LVN pour IFT 1170
*/
import java.io.*;
import java.util.*;
class Personne
implements Comparable<Personne>
{
private String nomPre;
private char sexe;
private double taille, poids;
IFT 1170 A, modèle d’un examen final ( 40 % )
5
private int numero;
public Personne(String nomPre, char sexe, double taille,
double poids, int numero)
{
this.nomPre = nomPre;
this.sexe = sexe;
this.taille = taille;
this.poids = poids;
this.numero = numero;
}
public String toString() {
return String.format("%-30s %8.2f %7.1f %10d %s", nomPre,
taille, poids, numero,
(sexe == 'F'? "feminin":"masculin"));
}
// implémenter l'interface Comparable
public int compareTo(Personne autre) {
return nomPre.toUpperCase().trim().compareTo(
autre.nomPre.toUpperCase().trim() );
}
public int getNumero()
{
return numero;
}
public boolean equals(Object obj)
{
if (this == obj)
return true;
else
if ( ! (obj instanceof Personne))
return false;
else
{
Personne autre = (Personne) obj;
return
nomPre.trim().equalsIgnoreCase(autre.nomPre.trim());
}
}
}
public class Liste2
{
// lire un fichier, remplir et retourner une liste des personnes
static LinkedList<Personne> lireCreer(String nomFichier)
throws IOException
{ LinkedList<Personne> liste = new LinkedList<Personne>(); //
liste vide au début
boolean existeFichier = true ; // à ajuster après
1 / 9 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !