110 likes | 322 Views
Algo-Prog e n Ada. TD1. 2 IMACS. Romaric GUILLERM. guillerm@laas.fr. http://romaric.guillerm.free.fr. TD1 : Algorithme de Kaprekar. L’algorithme de Kaprekar consiste à associer à un nombre n entier positif un nombre K généré de la façon suivante :
E N D
Algo-Prog en Ada TD1 2 IMACS Romaric GUILLERM guillerm@laas.fr http://romaric.guillerm.free.fr
TD1 : Algorithme de Kaprekar • L’algorithme de Kaprekar consiste à associer à un nombre nentier positif un nombre Kgénéré de la façon suivante : • On considère les chiffres de n. On forme le nombre n1en arrangeant ces chiffres dans l’ordre croissant et le nombre n2en les arrangeant dans l’ordre décroissant. • On pose K= n2 - n1. • On itère ensuite le processus en remplaçantn par K. • On arrête les itérations lorsque : • Le nombre Kobtenu à l'issue d'une itération est nul, • Les nombres Kobtenus à l'issue de 2 itérations successives sont identiques, • Le nombre d'itérations dépasse une valeur maximale prédéfinie.
TD1 • Si nest un nombre positif à 4 chiffres non tous égaux, on peut montrer que l’algorithme de Kaprekar produit un nombre K = 6174 qui n'évolue plus au fil des itérations. • Exemple : à partir du nombre n= 5463 on obtient K= 6174 selon les itérations suivantes : • 6543 – 3456 = 3087 • 8730 – 378 = 8352 • 8532 – 2358 = 6174 • 7641 – 1467 = 6174 • On veut concevoir un programme permettant de tester l’algorithme de Kaprekar à partir de nombres à 4 chiffres fournis par un utilisateur.L’utilisateur devra pouvoir tester plusieurs nombres.Le programme s’arrêtera lorsque l’utilisateur fournira le nombre 0.
TD1 Partie 1 • 1.1. Proposer une structure de données permettant de manipuler les chiffres composant un nombre de 4 chiffres c'est à dire permettant de les trier par ordre croissant et/ou décroissant.
TD1 • 1.2.Ecrire le programme principal (déclaration des variables et partie instructions) en s'appuyant sur une décomposition logique en sous-programmes.
TD1 • 1.2.Ecrire le programme principal (déclaration des variables et partie instructions) en s'appuyant sur une décomposition logique en sous-programmes.
TD1 • 1.3.Spécifier les sous-programmes identifiés lors de la décomposition (type du sous-programme, liste des paramètres avec leur mode de passage et leur type, commentaire précisant le but du sous-programme et la signification des paramètres)
Travailler à la maison !avec Windows • Compilateur Ada GNAT : http://romaric.guillerm.free.fr • Pour écrire le programme (fichier.adb): Bloc Note, Emacs… ou : Notepad++ • Pour compiler et exécuter :
TD1 Partie 2 • Ecrire les corps des sous-programmes.
TD1 Partie 2 • Ecrire les corps des sous-programmes.