Suite Robinson – Bac pratique – Section informatique – 2012

Bac Info 21-12-25
12 0

Sujet (Algo et programmation - Bac 2012)

La suite de Robinson est définie par :

- Uo = 0

- Un se construit en concaténant le nombre d'apparitions de chacun des chiffres constituant le terme Un-1 du chiffre lui-même, selon l'ordre décroissant des chiffres, pour tout n > 0.

Exemple :

Pour n = 5, U5 = 1113122110

En effet :

U0=0

U1 =  10 car il y a une apparition (1) du chiffre 0 dans U0

U2 = 1110 car il y a une apparition (1) du chiffre 1 et une apparition (1) du chiffre 0 dans U1

U3 = 3110 car il y a trois apparitions (3) du chiffre 1 et une apparition (1) du chiffre 0 dans U2

U4 = 132110 car il y a une apparition (1) du chiffre 3, deux apparitions (2) du chiffre 1 et une apparition (1) du chiffre 0 dans U3

U5 = 1113122110 car il y a une apparition (1) du chiffre 3, une apparition (1) du chiffre 2, trois apparitions (3) du chiffre 1 et une apparition (1) du chiffre 0 dans U4.

Travail a faire :

Ecrire un programme Python et l'enregistrer sous le nom Robinson, permettant de remplir et d'afficher un fichier texte nomme "Robinson.txt" contenant les k premiers termes de la suite de Robinson (avec 2 < k < 15) sachant que chaque terme de la suite occupera une ligne dans le fichier "Robinson.txt".

 

Solution Algorithmique

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

- la fonction saisie()

- la fonction concatiner_suite()

- la procédure remplir_fichier_robinson()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
k entier

 

La fonction saisie

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

Plus précisément :

Elle demande à l’utilisateur de saisir une valeur entière n.

Elle vérifie que n appartient à l’intervalle ]inf , sup[.

Tant que la valeur saisie est inférieure ou égale à inf ou supérieure ou égale à sup, la saisie est redemandée.

Lorsque la valeur est correcte, la fonction la retourne.

Déclaration des objets

Objet Type / Nature
n chaîne

 

La fonction concatiner_suite

La fonction concatiner_suite(u) a pour rôle de générer le terme suivant de la suite de Robinson à partir d’un terme précédent u.

Plus précisément, elle fait les opérations suivantes :

- Parcourt chaque chiffre du terme précédent u.

- Compte le nombre d’apparitions consécutives de chaque chiffre.

- Pour chaque groupe de chiffres identiques, elle concatène dans une nouvelle chaîne : (nombre d’apparitions) + (chiffre).

- Retourne cette nouvelle chaîne, qui correspond au terme suivant de la suite.

Déclaration des objets

Objet Type / Nature
i entier
chiffre chaîne
cp entier
u1 chaîne

 

La procédure remplir_fichier_robinson

La procédure remplir_fichier_circul(p, q) a pour rôle est de déterminer et enregistrer tous les nombres premiers circulaires compris entre deux entiers p et q.

Plus précisément, cette procédure :

- affiche un message indiquant le début du remplissage

- ouvre le fichier Circul.dat en mode écriture

- parcourt tous les entiers de p à q (bornes incluses)

- teste pour chaque entier s’il est premier circulaire à l’aide de la fonction test_circulaire()

- affiche chaque nombre premier circulaire trouvé

- écrit chaque nombre premier circulaire dans le fichier, un nombre par ligne

- ferme le fichier après la fin du traitement

Déclaration des objets

Objet Type / Nature
f fichier
i entier
u0 chaîne
u1 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-Prof Info