Document 4606767

Download Report

Transcript Document 4606767

REALISE PAR
LABIOD AISSA
BOUKRAA KACEM
GROUPE 7 |
section b
On va vous présenter dans ce premier Tp la solution
analytique et programmatique de l’exercice 26 qui sert
à trouver le PPCM de deux nombres positifs et ainsi
l’exercice 28 pour construire le nombre C qui sera
Composé par les chiffres de A et B(4 positions chacun)
mais concaténés .
On va aussi tester les deux algorithmes en utilisant le
langage PASCAL qui est très puissant et flexible.
1
2
Construire l'algorithme de recherche du PPCM (plus petit commun multiple) de 2
nombres A et B.
Soit deux nombres A et B, on les prend.
Si AxB=0 ,alors le PPCM égale 0, on l’affiche.
En dehors de ce cas(AxB=0).
• On prend le plus grand nombre entre les deux comme A et l’autre
comme B.
• On affecte à une variable (ppcm) la valeur ( A – 1).
• On incrémente cette variable ( ppcm
ppcm+1) jusqu’il vérifie
(ppcm mod A)=0 et (ppcm mod B)=0.
• On affiche ppcm.
Algorithme Calculer_PPCM
Variable A,B,ppcm,t :Entier
Debut
Ecrire(‘Veuillez entrer le premier numero’)
Lire(A)
Ecrire(‘Veuillez entrer le deuxième numero’)
Lire(B)
Si (A*B)=0 Alors Ecrire(‘Le PPCM de ‘,A,’ et ‘,B,’ est ‘,0)
Sinon
DSIN
Si B> A Alors
Dsi
t ---- B
B ---- A
A ---- t
Fsi
ppcm ------ A-1
Répéter
ppcm
------ ppcm +1
Jusqu’à (( ppcm mod A)=0) et ((ppcm mod B)=0)
Ecrire(‘Le PPCM de ‘,A,’ et ‘,B,’ est ‘,ppcm)
FSIN
Fin.
3
A
B
ppcm
14
0
0
0
0
0
A
B
ppcm
6
4
5
5
1
6
4
6
0
2
6
4
7
1
3
6
4
8
2
0
6
4
9
3
1
6
4
10
4
2
6
4
11
5
3
6
4
12
0
0
ppcm mod A
4
ppcm mod B
5
Si A ou B égale 0 alors
6
7
Sinon
8
9
10
On voudrait à partir de 2 nombres A et B, de 4 positions chacun, construire un
troisième nombre C tel que C est composé des chiffres de A et de B mais
concaténés de manière alternée, c’est à
dire que C est composé du premier chiffre de A puis du premier chiffre de B,
ensuite du deuxième chiffre de A
puis du deuxième chiffre de B, etc ...
Regardez attentivement l’exemple suivant :
si A = 1 2 3 4 et B = 5 6 7 8
C=1526374 8
Soient deux nombres entiers A et B (de 4 positions chacun), on les
•
prend.
On vérifie qu’ils sont effectivement composés de 4 positions .
•
•
On déclare deux variables :puissA (puissance qui va définir la position
de chaque chiffre de A dans C) qu’on initialise par 10, et
puissB(puissance qui va définir la position de chaque chiffre de B dans
C) qu’on initialise par 1(le poids faible de C est celui de B).
•
On initialise C par 0.
•
En utilisant une boocle, on fait des divisions successive de A et B par 10
et à chaque division :
- on récupère le reste de la division de A par 10(A mod 10) et on le
multiplie par puissA ((A mod 10)*puissA).
- on récupère le reste de la division de B par 10 (B mod 10) et on le
multiplie par puissB((B mod 10)*puissB).
- on ajoute la somme des deux multiplications à C
(C
C+(A mod 10)*puissA+(B mod 10)*puissB
-
On incrémente puissA (puissApuissA*100),
et puissB(puissBpuissB*100).
- On s’arrête (condition d’arrêt) quand A=0.
•
On affiche C.
11
Algorithme exo28
Variable A,B,C,Ainitial,Binitial, puissA, puissB :Entier
Debut
Ecrire(‘Veuillez entrer le premier numero de 4 positions’)
Lire(A)
Ecrire(‘Veuillez entrer le deuxième numero de 4 positions’)
Lire(B)
Si (A>999) et (A<10000) et (B>999) et (B<10000) Alors
Dsi
puissA10
puissB1
C0
Ainitial A
Binitial B
Répéter
C C+ (A mod 10)* puissA + (B mod 10)* puissB
AA div 10
BB div 10
puissA puissA*100
puissB puissB*100
Jusqu’à A=0
Ecrire(‘si A=’,Ainitial,’ et B=’,Binitial,’ C=’,C)
Fsi
Sinon Ecrire(‘Veuillez réessayer avec deux autres nombres de 4 positions seulement !’)
Fin.
A
123651252
A
5789
578
57
5
0
B
1458
B
8561
856
85
8
0
PuissA
10
C
0
91
8691
758691
58758691
12
PuissA
1
PuissB
1
100
10000
1000000
100000000
Résultat
Message d’erreur
PuissA
10
1000
100000
10000000
1000000000
13
Le cas où le nombre de positions ègale à 4 pour les d deux nombres
14
15
Sinon
16
17
Espérons qu’on l’a bien présenté, On vient d’achever le
TP par donner les deux fichiers exécutables et fichiers
sources des deux programmes qui traduisent le coté
analytique et algorithmique de ce TP.
Programme Exo26
Programme Exo28
Code source Exo26
Code source Exo28
18