MODULE 624

publicité
MODULE 624
Contrôle continu de programmation du 21 mai 2007 – Groupe 02
Modalités
-
Tout accès au réseau est formellement interdit.
Durée : 90 minutes.
Documentation : tous documents (yc. électroniques) personnels et le restant autorisés.
Il ne sera répondu qu'à des questions publiques et d'intérêt général lors d'une séance
officielle à 10h45.
- Tous les fichiers nécessaires sont sur la clé USB fournie par la personne surveillante.
- À la fin de l'épreuve, vous copierez le fichier DiviseursCommuns.java qui constitue le
fruit de votre travail dans le dossier Résultat de la clé USB fournie et vous la rendrez à la
personne surveillante.
- Il est de votre responsabilité de vous assurer que la clé USB rendue contient bien la
bonne version du fichier créé pendant l'épreuve.
Installation
- Copiez le répertoire CCMai2007 se trouvant à la racine de la clé USB dans D:\Users.
- Le répertoire CCMai2007 contient le fichier DiviseursCommuns.java qui est la classe
que vous devez compléter.
- Pendant la durée du contrôle continu, vous travaillerez exclusivement sur le disque dur
local ; à la fin du contrôle, vous recopierez le résultat de votre travail comme indiqué.
Problème
Calculer la liste des diviseurs communs de deux nombres fournis en paramètres de la ligne
de commande en respectant un algorithme fixé. L'algorithme de calcul imposé est spécifié
dans le commentaire de la méthode calculer() de la classe fournie.
À faire
- Compléter le commentaire général de la classe DiviseursCommuns en inscrivant vos
nom et prénom ainsi que le numéro de la clé USB qui vous a été attribuée.
- Compléter les méthodes affiche(), diviseurs(), communs() et main() de la
classe DiviseursCommuns fournie en remplaçant les commentaires /* A CODER */
par du code fonctionnel respectant les spécifications données en commentaires.
- Contrainte impérative :
Vous n'avez pas le droit de modifier le code de la méthode calculer() fournie, ni les
signatures des méthodes que vous devez compléter.
Annexe
- Listage de la classe DiviseursCommuns que vous devez compléter.
- Exemples de sorties produites par le programme.
Peter DAEHNE
2006-2007
/**
* DiviseursCommuns - Liste des diviseurs communs de deux nombres
*
* Nom et prénom: METTEZ VOTRE NOM ICI
* N° de clé USB: METTEZ VOTRE N° DE CLÉ USB ICI
*
*/
public class DiviseursCommuns {
/* Affiche le titre sur la première ligne, puis, sur la deuxième ligne,
les Integer contenus dans vect, séparés par un espace. */
private static void affiche (String titre, java.util.Vector vect) {
/* A CODER */
} // affiche
/* Retourne un java.util.Vector contenant les diviseurs de n. */
private static java.util.Vector diviseurs (int n) {
/* A CODER */
} // diviseurs
/* Retourne un java.util.Vector contenant les Integers contenus à la fois dans v1 et v2. */
private static java.util.Vector communs (java.util.Vector v1, java.util.Vector v2) {
/* A CODER */
} // communs
/* Calcule et affiche les diviseurs communs de n1 et n2 avec l'algorithme suivant:
- les diviseurs de n1 sont calculés et stockés dans div1;
- les diviseurs de n2 sont calculés et stockés dans div2;
- les entiers communs à div1 et div2 sont calculés et stockés dans communs;
- div1, div2 et communs sont affichés avec un titre signifiant. */
private static void calculer (int n1, int n2) {
java.util.Vector div1 = diviseurs(n1);
java.util.Vector div2 = diviseurs(n2);
java.util.Vector communs = communs(div1, div2);
affiche("Diviseurs de " + n1, div1); System.out.println();
affiche("Diviseurs de " + n2, div2); System.out.println();
affiche("Diviseurs communs", communs); System.out.println();
} // calculer
/* - Vérifie le nombre d'arguments et affiche un message d'erreur explicite si le
nombre d'arguments n'est pas exactement égal à 2.
- Appelle la méthode calculer avec comme paramètres les deux entiers fournis comme arguments. */
public static void main (String[] args) {
/* A CODER */
} // main
} // DiviseursCommuns
EXEMPLES DE SORTIES PRODUITES PAR LE PROGRAMME:
***********************************************
---------- Execution avec arguments ---------Diviseurs de 997
1 997
Diviseurs de 2003
1 2003
Diviseurs communs
1
---------- Execution avec arguments ---------Diviseurs de 60
1 2 3 4 5 6 10 12 15 20 30 60
Diviseurs de 90
1 2 3 5 6 9 10 15 18 30 45 90
Diviseurs communs
1 2 3 5 6 10 15 30
---------- Execution avec arguments ---------Diviseurs de 20
1 2 4 5 10 20
Diviseurs de 30
1 2 3 5 6 10 15 30
Diviseurs communs
1 2 5 10
Téléchargement