Nombre divisible par 11 – Bac pratique – Section informatique – 2011

Bac Info 19-12-25
167 0

Sujet (Algo et programmation - Bac 2011)

On se propose d'écrire un programme en Python permettant de :

1- Remplir d'un fichier texte intitulé « txt » contenant par ligne, une chaîne de caractères formée uniquement de chiffres et/ou de lettres.

2- Extraire puis concaténer, les chiffres de chaque chaîne pour former à chaque fois, un nombre décimal noté
3- Vérifier à chaque fois, si le nombre Nb_Dec est divisible par 11 en utilisant la méthode suivante
A partir de Nb_Dec, on forme deux sommes Spair et Simpair telles que :
Spair désigne la somme des chiffres de rang pair
Simpair désigne la somme des chiffres de rang impair
Si I Spair - Simpair est divisible par 11 alors Nb_Dec est divisible par 11.
Exemple :
Si une ligne du fichier contient la chaîne 1MN4j08r, alors Nb_Dec =1408 et il est divisible par 11 car :
Spair=4+8= 12
Simpair = 1 + 0 = 1
Spair Simpair I = 12 — 1 = 11, qui est divisible par 11.
Travail demandé :
Ecrire un programme Pascal qui permet de :
1.. Remplir le fichier « chaines.txt » par N chaînes (N < 50) chacune de longueur maximale égale à 9 caractères.
2- Remplir à partir du fichier « chaines.txt », un fichier d'enregistrements nommé « nombres.dat ». Chaque enregistrement sera formé de 2 champs :
Nb Dec comportera le nombre décimal formé à partir d'une chaîne de caractères du fichier « chaines.txt ».
Mention comportera le message « est divisible par 11 » si le nombre décimal est divisible par 11 ou le message « n'est pas divisible par 11 » dans le cas contraire.
Le test de divisibilité se fera selon la méthode décrite précédemment.

Pour les chaînes ne contenant aucun chiffre, elles seront représentées dans le fichier « nombres.dat », de la manière suivante :

Nb_Dec contiendra la valeur : 1999999999

Mention contiendra le message : « Ce n'est pas un nombre décimal ».

3- Afficher le contenu du fichier « nombres.dat ».

 

Solution Algorithmique

Dans cet algorithme, On va utiliser cinq fonctions et une procédure:

- la fonction saisie_n()

- la fonction verif_ch()

- la fonction saisie_ch()

- la fonction extraire_chiffres()

- la fonction test_divisible11()

- la procédure remplir_fichiers()

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie

Cette procédure permet de saisir un entier compris strictement entre deux bornes inf et sup, en contrôlant la validité de la saisie.

Plus précisément :

il demande à l’utilisateur d’entrer un entier n tel que 0 < n < 50. si la valeur saisie n’appartient pas à cet intervalle, le programme redemande la saisie jusqu’à obtenir une valeur correcte. une fois la saisie valide, la fonction retourne l’entier n.

Déclaration des objets

Objet Type / Nature
n chaîne

 

La fonction verif_ch

Cette fonction verif_ch permet de vérifier si une chaîne de caractères est valide.

Une chaîne est considérée valide si :

sa longueur est comprise entre 1 et 9 caractères ;

elle est composée uniquement de lettres (A à Z, minuscules ou majuscules) et/ou de chiffres (0 à 9).

La fonction retourne Vrai si la chaîne respecte ces conditions, Faux sinon.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_ch

Cette fonction saisie_ch permet de saisir une chaîne de caractères valide composée uniquement de lettres et/ou de chiffres.

Elle demande à l’utilisateur de saisir une chaîne.

Elle vérifie la validité de la chaîne en appelant la fonction verif_ch.

Tant que la chaîne saisie est non valide, la saisie est redemandée.

Lorsque la chaîne est correcte, elle est retournée par la fonction.

Déclaration des objets

Objet Type / Nature
ch chaîne

 

La fonction extraire_chiffres

Ce programme (fonction extraire_chiffres) permet d’extraire uniquement les chiffres d’une chaîne de caractères.

Il parcourt la chaîne caractère par caractère.

Il sélectionne seulement les caractères numériques (de 0 à 9).

Il construit une nouvelle chaîne contenant uniquement ces chiffres.

Il retourne cette chaîne représentant le nombre extrait.

Déclaration des objets

Objet Type / Nature
i entier

La fonction test_divisible11

Cette fonction permet de calculer et retourner la somme des chiffres d’un nombre représenté sous forme de chaîne de caractères.

Elle parcourt chaque caractère de la chaîne ch, le convertit en entier, puis l’ajoute à une variable somme.

Déclaration des objets

Objet Type / Nature
i entier
spaire entier
simpaire entier

 

La procédure remplir_fichiers

Cette procédure cherche tous les nombres « rigolos » compris entre m et n et enregistre les résultats dans un fichier texte tout en les affichant à l’écran.

Cette procédure :

1- ouvre le fichier resultat.txt en mode écriture.

2- parcourt tous les entiers entre m et n.

Pour chaque nombre i, teste s’il est rigolo avec les critères ci-dessus.

Si i est rigolo :

Affiche i et sa décomposition en facteurs premiers (avec *) à l’écran.

Écrit cette information dans le fichier.

Si aucun nombre rigolo n’est trouvé, affiche un message correspondant.

3- ferme le fichier.

Déclaration des objets

Objet Type / Nature
f_chaine fichier
f_nombre fichier
ch chaîne
nombre 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