Correction Algo
82940CTPA0113
BTS Services informatiques aux organisations – première année
Algorithmique appliquée
Devoir 1
Durée : 1 heure
Algorithme
Voici la proposition de correction algorithmique :
/* programme conversion (devoir 1)
* but : Analyse d’un nombre
* auteur : Emds
* date : 19/12/2012
*/
programme poids
// déclarations nb : entier long // nombre entier à analyser tabPosition[0..9][0..8] : entier // mémorisation des positions de chaque chiffre chiffre : entier // pour récupérer un chiffre du nombre position : entier // pour mémoriser la position du chiffre dans le nombre k : entier // compteur
// boucle sur la saisie du nombre (précédée d’une première saisie) afficher «Entrer un nombre entier de 9 chiffres maximum = «
82940CTPA01 2/4 saisir nb tantque nb!=0
// initialisation du tableau des positions avec une valeur impossible à trouver pour chiffre de 0 à 9 pour k de 0 à 8 tabPosition[chiffre,k] ß -1 finpour finpour
// initialisation de la position position ß 0
// analyse du nombre tantque nb!=0
// récupération du chiffre le plus à droite chiffre ß nb mod 10
// recherche de la première position libre dans le tableau, pour ce chiffre k ß 0 tantque tabPosition[chiffre,k]<>-1 et k<9 k ß k+1 fintantque // mémorisation de la position tabPosition[chiffre,k] ß position
// suppression, dans le nombre, du chiffre qui vient d’être traité nb ß nb div 10
// on avance dans les positions position ß position+1 fintantque // affichage de la position de chaque chiffre pour chiffre de 0 à 9
// affichage uniquement si le chiffre apparait au moins une fois si tabPosition[chiffre,0]<>-1
// affichage du chiffre (début de la ligne) aficher chiffre, « : «
// suivi de l’affichage des poids pour ce chiffre k ß 0 tantque tabPosition[chiffre,k]<>-1 et k<10 aficher tabPosition[chiffre,k], « « k ß k+1 fintantque finsi finpour // reconstruction du nombre à partir des positions pour chiffre de 0 à 9 k ß 0 tantque tabPosition[chiffre,k]<>-1
82940CTPA01 3/4
// on ajoute au nombre le