1
Exercice 26 : 4
TP
1. ENONCÉ : 4
2. DÉCOUPAGE MODULAIRE : 5
3. ANALYSE DU MODULE : 5
4. ANALYSE GÉNÉRALE : 5
5. ALGORITHME : 6
6. PROGRAMME : REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET 7
2
7. RÉSULTAT : 8
POPULAIRE
Exercice 28 : Ecole Nationale Supérieure d’Informatique 9
1. ENONCÉ : 9
2. DÉCOUPAGE MODULAIRE : 10
3. ANALYSE DU MODULE : 10
4. ANALYSE GÉNÉRALE : 10
5. ALGORITHME : 11
6.
7.
Module : Algorithme et structure de données statiques
PROGRAMME :
RÉSULTATS OBTENUS :
13
14
Binôme :
Cherouana Wissem
Zennir Feriel 2
Exercice 26 :
1. Enoncé :
Un nombre parfait est un nombre qui est égal à la somme de tous ses diviseurs
excepté lui-même. Construire l’algorithme qui recherche tous les nombres parfaits
compris entre 1 et 1000.
Par exemple : 6 est un nombre parfait (6 = 1 + 2 + 3)
(En utilisant la modularité)
2. Découpage modulaire :
Rôle : Calculer la somme des diviseurs d’un nombre donné.
3. Analyse du module :
3
Soit N un entier dont on veut calculer la somme de tous ses diviseurs excepté lui-
même, pour ce faire :
On initialise S=0 (S va contenir la somme des diviseurs de l’entier N) .
On fait varier i entre 1 et N div 2
o Si le reste de la division de N par i = 0 (N mod i = 0) alors on cumule i dans S
(car i est un diviseur de N).
SomDiv = S.
4. Analyse générale :
Pour chercher tous les nombres parfaits compris entre 1 et 1000 :
On fait varier l’entier N entre 1 et 1000 :
o Si SomDiv = N alors N est parfait et on l’affiche.
5. Algorithme :
4
ALGORITHME Exo26
VARIABLES N : entier
FONCTION SomDiv (N: entier): entier
Variables i, S : entiers
Début
S0
Pour i allant de 1 à N div 2 faire
Si N mod i = 0 alors
SS+i
SomDiv S
Fin
Début
Ecrire (‘ La liste des nombres parfaits compris entre 1 et 1000 est : ’)
Pour N allant de 1 à 1000 faire
Si SomDiv (N) = N alors
Ecrire
Fin.
6. Programme :
5
7. Résultat :
6
Exercice 28 :
1. Enoncé :
Construire l’algorithme qui effectue un swapping, autrement dit qui échange les
octets de poids fort et de poids faible d’un nombre entier quelconque.
Par exemple :
7
Si N= 5961 résultat après swapping 1965
Si N= -18 résultat après swapping -81
Si N= 723859 résultat après swapping 923857
Si N=9 résultat après swapping 9
2. Découpage modulaire :
Rôle : faire une permutation entre le chiffre du poids fort et le chiffre du poids faible
d’un entier N.
3. Analyse du module :
Soit N un entier sur lequel on veut effectuer un swapping, pour ce faire :
On initialise i=1 (i va contenir la puissance).
On extrait le chiffre du poids faible (a= N mod 10).
On garde la valeur de N dans M .
On répète la procédure suivante.
o On fait des divisions successives de N par 10 (N = N div 10).
o On récupère le reste de N par 10 dans b (b va contenir à la fin le chiffre du
poids fort)
8
o On multiplie i par 10 (pour élever la puissance).
Cette procédure est répétée jusqu’à ce que N div 10 = 0 (Tous les chiffres sont
extraits dont le chiffre du poids fort c).
Le swapping est donnée par la relation suivante :
Swapping= N – a+b + i × ( a – b).
4. Analyse générale :
Soit un entier N (signé ou non).
Si N div 10 ≠ 0 (N ne se compose pas d’un seul chiffre) alors on affiche : Swapping ;
Sinon on affiche N ( le swapping de 9=9)
5. Algorithme :
ALGORITHME Exo28
VARIABLES N, M: entier
FONCTION Swapping (N, M: entier): entier
Variables a, b, i : entiers
Début
i1
a N mod 10
M := N ;
Répéter
N N div 10
b N mod 10
i 10 * i
Jusqu’à N div 10 = 0
Swapping M – a+b + i * (a-b) 9
Fin
Début
Ecrire (‘ Veuillez entrer le Nombre N sur lequel vous voulez effectuer un swapping : ’)
Lire (N)
Si N div 10 <> 0 alors
Ecrire (‘le Swapping est : ’, Swapping (N,M))
Sinon écrire (N)
Fin.
6 .Programme :
10
7 .Résultats obtenus :
11
12