TD1
description
Transcript of TD1
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 : On considère les chiffres de n. On forme le nombre n1 en
arrangeant ces chiffres dans l’ordre croissant et le nombre n2 en les arrangeant dans l’ordre décroissant.
On pose K= n2 - n1.
On itère ensuite le processus en remplaçant n par K.
On arrête les itérations lorsque : Le nombre K obtenu à l'issue d'une itération est nul, Les nombres K obtenus à l'issue de 2 itérations successives
sont identiques, Le nombre d'itérations dépasse une valeur maximale
prédéfinie.
TD1
Si n est 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.
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)
TD1
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 :
Partie 2
Ecrire les corps des sous-programmes.
TD1
Partie 2
Ecrire les corps des sous-programmes.
TD1