Calcul du PPCM – Bac pratique – Section informatique – 2019

Bac Info 13-01-26
16 0

Sujet (Algo et programmation - Bac 2019)

Parmi les méthodes utilisées pour calculer le Plus Petit Commun Multiple (PPCM) de deux entiers a et b, on cite la suivante :

- On procède à la décomposition de chaque entier en produit de facteurs premiers sous forme de

- Le PPCM est égal au produit de tous les facteurs premiers, communs ou non, chacun est élevé à son exposant le plus grand.

NB :

1- La décomposition d'un entier k en un produit de facteurs premiers consiste à écrire cet entier sous forme d'un produit de nombres premiers. Pour ce faire, on peut procéder comme suit :

2- Vérifier si k est divisible par 2 (le plus petit nombre premier).

Si oui, diviser k par 2 et le remplacer par k div 2 (le quotient de la division) jusqu'à obtenir un reste différent de O.

a- Refaire l'étape précédente pour les nombres premiers suivants (3, 5, 7, ...) jusqu'à obtenir un quotient égal à 1.

b- Un nombre premier est un entier naturel, strictement supérieur à 1, divisible uniquement par 1 et par lui-même.

Exemple 1 :

Pour a = 168 et b = 36, le calcul du PPCM se présente comme suit :

Décomposition de chaque entier en produit de facteurs premiers, sous forme de puissances

168=2 * 2 * 2 * 3 * 7 = 23 * 31 * 71

36=2 * 2 * 2 * 3 * 3 = 22 * 32

Le PPCM (168,36) =  23 * 32 * 71 = 5.4

Exemple 2 :

Pour a = 24 et b = 35, le calcul du PPCM se présente comme suit :

Décomposition de chaque entier en produit de facteurs premiers, sous forme de puissances :

24=2*2*2*3=23*31

35 = 5 * 7 = 51 * 71

Le PPCM (24, 35) = 23 * 31 * 51 * 71 = 840

On se propose de créer et de remplir un fichier d'enregistrements intitulé "F_PPCM.dat" dont chaque enregistrement contient les trois champs a, b et PPCM tel que la valeur du champ PPCM est égale au Plus Petit Commun Multiple des deux entiers a et b calculé en utilisant la méthode expliquée ci-dessus.

Travail demandé :

Ecrire un programme en Python intitulé "CalcPPCM" qui permet :

- de saisir un entier N représentant le nombre d'enregistrements du fichier "F_PPCM.dat" (avec 2 <= N <= 100), - de créer et de remplir le fichier d'enregistrements "F_PPCM.dat" tel que :

a et b sont des entiers strictement positifs inférieurs à 1000 et dont les valeurs sont lues à partir du clavier.

PPCM est calculé comme décrit précédemment.

- d'afficher le contenu du fichier "F PPCM.dat" en respectant la forme suivante : PPCM(a, b) = PPCM

 

Solution Algorithmique

Dans cet algorithme, On va utiliser deux fonctions et trois procédures:

- la fonction saisie()

- la procédure factoriel_premiers()

- la fonction calcul_ppcm()

- la procédure remplir_fichier()

- la procédure afficher_fichier()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie

Cette fonction permet de saisir un entier valide compris entre deux bornes inf et sup.

1- Elle demande à l’utilisateur de saisir un entier n.

2- Elle vérifie que n appartient à l’intervalle [𝑖𝑛𝑓,𝑠𝑢𝑝]

3- Si la valeur saisie n’est pas valide, la fonction redemande la saisie jusqu’à obtenir un entier correct.

4- Elle retourne finalement la valeur valide saisie par l’utilisateur.

Déclaration des objets

Objet Type / Nature
n entier

 

La procédure factoriel_premiers

Cette procédure permet de décomposer un nombre entier n en facteurs premiers et de stocker ces facteurs dans le tableau t.

1- Le tableau t est d’abord initialisé à 0 pour effacer les anciennes valeurs.

2- On commence la recherche des diviseurs à partir de 2, le plus petit nombre premier.

3- Tant que n est différent de 1 :

Si i divise n, alors : i est un facteur premier de n. Alors on divise n par i et on stocke i dans le tableau t

Sinon, on passe au diviseur suivant.

Déclaration des objets

Objet Type / Nature
index entier
k entier
i entier

 

La fonction calcul_ppcm

Cette fonction permet de calculer le Plus Petit Commun Multiple (PPCM) de deux nombres à partir de leurs facteurs premiers stockés dans les tableaux t1 et t2.

Principe de fonctionnement

1- Initialisation

i = 0 : sert à parcourir les deux tableaux.

ppcm = 1 : variable qui contiendra le PPCM final.

2- Parcours simultané des deux tableaux

Tant qu’on a des facteurs dans les deux tableaux (t1[i] != 0 et t2[i] != 0) :

Si les facteurs sont identiques, on multiplie le PPCM par ce facteur. Sinon, on multiplie le PPCM par les deux facteurs différents.

L’indice i est incrémenté pour passer au facteur suivant.

3- Ajout des facteurs restants

Si un tableau a encore des facteurs après la fin du parcours commun, on les multiplie au PPCM :

Tant que t1[i] != 0 → multiplie le PPCM par les facteurs restants de t1.

Tant que t2[i] != 0 → multiplie le PPCM par les facteurs restants de t2.

4- Retour du résultat

La fonction retourne la valeur finale du PPCM.

Déclaration des objets

Objet Type / Nature
i entier
ppcm entier

 

La procédure remplir_fichier

Cette procédure sert à remplir un fichier nommé F_PPCM.dat avec le PPCM de plusieurs couples de nombres saisis par l’utilisateur.

1- Affichage d’un message d’information

Il indique à l’utilisateur que le fichier va être rempli.

2- Ouverture du fichier

Le fichier est ouvert en mode écriture ("w").

Si le fichier existe déjà, son contenu est effacé.

3- Saisie des couples de nombres :

La procédure demande à l’utilisateur de saisir n couples de nombres.

La fonction saisie garantit que les nombres sont compris entre 1 et 1000.

4- Décomposition en facteurs premiers

Chaque nombre est décomposé en facteurs premiers.

Les facteurs sont stockés dans les tableaux t1 et t2.

5- Calcul du PPCM

La procédure utilise la fonction calcul_ppcm pour obtenir le PPCM du couple.

6- Écriture dans le fichier

Chaque résultat est écrit dans le fichier sous la forme : PPCM(a, b) = résultat

7- Fermeture du fichier

La procédure libère le fichier et sauvegarde toutes les données.

Déclaration des objets

Objet Type / Nature
a entier
b entier
ppcm entier
t1 tableau
t2 tableau
f fichier

 

La procédure afficher_fichier

Cette procédure sert à lire et afficher le contenu du fichier F_PPCM.dat créé précédemment, pour que l’utilisateur puisse voir les résultats des calculs de PPCM.

Déclaration des objets

Objet Type / Nature
f fichier
lignes chaîne
ligne chaîne

 

Solution en Python

Exécution du programme

0 commentaire

laisser un commentaire

Veuillez noter s'il vous plaît*

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Passion de robotique

Atelier robotique

Construction des robots

Bras robotique

Maison intelligente

But de ce site web

La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.

Coordonnées

Zaouiet Kontech-Jemmel-Monastir-Tunisie

+216 92 886 231

medaliprof@gmail.com

Photos des articles

Site robotique réalisé par Mohamed Ali Haj Salah - Prof Info