Vous êtes sur la page 1sur 3

Tache 1 : Implémenter l’algorithme d’Euclide

3. Dans la classe AlgorithmePGCD déclarer une méthode publique static appelée TrouverPGCD.
La méthode accepte deux paramètres de type entier appelés a et b, et renvoie une valeur entière.

4. Dans la méthode TrouverPGCD, ajouter du code qui calcule et renvoie le PGCD des valeurs
des paramètres a et b en utilisant l’algorithme d’Euclide.

L’algorithme d’Euclide : http://en.wikipedia.org/wiki/Euclidean_algorithm fonctionne comme


suit :
a. si a est égal à zéro, le PGCD de a et b est b(vice versa).

b. Sinon, soustraire de façon répétitive b de a (si a est supérieur à b) ou soustraire a de b (si b est
supérieur à a) jusqu’à ce que b soit égal à zéro.

c. Le PGCD des deux nombres initiaux est la nouvelle valeur de a.

Tache 2: Tester la méthode TrouverPGCD


Dans le fichier MainWindow.xaml.cs, ajouter le code pour appeler la méthode statique
TrouverPGCD de la classe AlgorithmePGCD et afficher le résultat dans le label resultatEuclide. Dans
l’appel à la méthode, utiliser les variables premierNombre et secondNombre comme arguments (ces
variables contiennent les valeurs tapées au clavier dans la fenêtre WPF). Finalement, le résultat doit
être formaté comme indiqué ci-dessous.
Euclide : resultat
Utiliser la méthode String.Format.
1. Compiler la solution et corriger les erreurs.

2. Exécuter l’application PlusGrandCommunDiviseur.

3. Dans l’application PlusGrandCommunDiviseur, dans la fenêtre MainWindow, dans la première


zone de texte, saisir 2806

6. Dans la deuxième zone de texte, saisir 345 et cliquez sur le bouton Trouver PGCD (2 Entiers). Le
résultat 23 doit être affiché.

Ajout de méthodes surchargées pour le calcul du PGCD de 3,4 et 5 nombres


1. Pour 3 nombres : Dans la classe AlgorithmePGCD déclarer TrouverPGCD3 une version
surchargée de la méthode TrouverPGCD ayant 3 paramètres a, b et c. Dans cette méthode
appelez TrouverPGCD avec 2 arguments a et b et stocker le résultat dans une variable x.
Appeler à nouveau TrouverPGCD avec comme arguments c et x.
2. Pour 4 et 5 nombres : Adapter la procédure décrite pour 3 nombres.
3. Test des méthodes surchargées
Dans la fenêtre WPF repérez l’instruction if (sender == trouverPGCD) // Euclide pour 2 entiers
Faites appel à TrouverPGCD3, TrouverPGCD4 ou TrouverPGCD5 selon le bouton cliqué
trouverPGCD3, trouverPGCD4 ou trouverPGCD5.
4. Taper les valeurs 7396 1978 1204 430 258 et cliquer sur Trouver PGCD (5 entiers). Vérifier
que le résultat obtenu est 86.

Comparaison efficacité des deux algorithmes

1. Ouvrir la classe AlgorithmePGCD déclarer une méthode publique statique TrouverPGCDStein et y


insérer l’extrait de code Modstein.
2. Dans la méthode TrouverPGCD_Click, affecter le résultat de l’appel à TrouverPGCDStein au label
resultatStein de la fenêtre principale.
3. Exécuter l’application. Saisir les valeurs 298467352 and 569484 et vérifier que le résultat affiché
est 4.
4. Modifier la signature de la méthode TrouverPGCD en rajoutant un paramètre out appelé duree
de type long.
5. Au début de la méthode TrouverPGCD
a. Initialiser duree à zéro.
b. Créer une instance de la classe StopWatch appelée chrono.
c. Démarrer chrono
6. Avant l’instruction return de la méthode :
a. TrouverPGCD arrêter chrono
b. Affecter à la variable duree la propriété ElapsedTicks de chrono
7. Faites les adaptations 4 à 6 ci-dessus à la méthode TrouverPGCDStein
8. Ouvrir la méthode TrouverPGCD_Click :
a. Déclarer les variables de type long dureeEclide et dureeStein :
b. Adapter les appels de méthode à TrouverPGCD et TrouverPGCDStein en incluant les
paramètres de type out dureeEclide et dureeStein
c. Compléter l’affichage du résultat en utilisant String.Format à nouveau :
i "Euclide: {0}, Durée (en ticks): {1}", résultatEuclide, dureeEclide
ii "Stein: {0}, Durée (en ticks): {1}", résultatStein, dureeStein
9. Commentez les appels de méthode au calcul du PGCD de 3, 4 et 5 nombres.
10. Testez votre application avec les valeurs 298467352 et 569484.

Quelle proportion observez-vous entre les ordres de magnitude des durées calculées par les deux
algorithmes.
Graphe Comparaison efficacité des deux algorithmes
Veillez à partir d’une nouvelle souche de solution fournie. Vous pouvez continuer votre solution à
condition de repérer les modifications apportées à la fenêtre WPF et d’autres instructions de
préparation, formatage et affichage du graphique.

1. Repérez les commentaires suivants :

// TODO Exercice 4, Tâche 2

// Appel méthode DessinerGraphe

Ajouter un appel à la méthode DessinerGraphe

Tester l’application

2. Modifications à apporter à la méthode DessinerGraphe :


a. Repérez la méthode DessinerGraphe
b. Ajouter 3 parametres optionnels :
i. orientation de type Orientation, valeur par défaut : Orientation.Horizontal.
ii. couleurEuclide de type string, valeur par défaut : Red,
iii. couleurStein de type string, valeur par défaut : Blue,
c. Supprimer la déclaration de la variable orientation
d. Affectez aux variables bEuclide et bStein la valeur des paramètres optionnels
couleurEuclide et couleurStein . Votre code doit se présenter ainsi :
private void DessinerGraphe(long dureeEuclide, long dureeStein,Orientation
orientation =Orientation.Horizontal,string couleurEuclide="Red",string
couleurStein="Blue")
BrushConverter bc = new BrushConverter();
Brush bEuclide = (Brush)bc.ConvertFromString(couleurEuclide);
Brush bStein = (Brush)bc.ConvertFromString(couleurStein);
(cf // TODO Exercice 4, Tâche 3)

3. Tester l’application
4. Inclure dans l’appel à la méthode DessinerGraphe les paramètres optionnels orientation,
couleurEuclide et couleurStein (cf // TODO Exercice 4, Tâche 4)
5. Tester l’application avec les valeurs 298467352 et 569484 et modifiez les paramètres couleurs et
orientation du graphe.

Vous aimerez peut-être aussi