Nombre brésilien – Bac théorique – Section informatique – 2022

Bac Info 19-01-26
23 0

Sujet (Algo et programmation - Bac 2022)

Un nombre décimal n est dit brésilien s’il possède, dans une base B (avec 2 ≤ B n – 2), une représentation qui s’écrit sous la forme de p chiffres égaux, c’est-à-dire :

Exemples :

- 7 est un nombre brésilien car 7 = (111)2

- 3124 est un nombre brésilien car 3124 = (44444)5

- 1170 est un nombre brésilien car 1170 = (2222)8

- 20 est un nombre brésilien car 20 = (22)9

- 204 est un nombre brésilien car 204 = (CC)16

- 9 n'est pas un nombre brésilien car 9 = (1001)2 = (100)3 = (21)4 = (14)5 = (13)6 = (12)7 et aucune de ces écritures n’est brésilienne.

On se propose d’écrire un algorithme d’une procédure Gen_Bres qui permet de créer et de remplir un fichier d’enregistrements nommé "F_Brésilien.dat" par les nombres brésiliens contenus dans un fichier texte existant nommé "Nombres.txt", sachant que chaque ligne du fichier texte "Nombres.txt" contient un nombre décimal et chaque enregistrement du fichier "F_Brésilien.dat" comportera les champs suivants :

- N : Le nombre décimal.

- B : Une base dans laquelle le nombre N s’écrit sous la forme de p chiffres égaux avec 2 ≤ B ≤ 16. - Rep : La représentation du nombre décimal N dans la base B.

Travail demandé :

1. Analyser le problème en le décomposant en modules.

2. Ecrire les algorithmes des modules envisagés.

 

Solution Algorithmique

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

- la fonction saisie()

- la fonction conversion_base()

- la fonction test_bresilien()

- la fonction recherche_base()

- la procédure remplir_fichier_nombres()

- la procédure remplir_fichier_bresilien()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie()

La fonction saisie() sert à demander à l’utilisateur de saisir un entier valide n supérieur ou égal à 2, puis à vérifier cette saisie avant de la retourner.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction conversion_base

La fonction conversion_base(n, b) sert à convertir un nombre décimal n en sa représentation dans une base b, avec 2 ≤ b ≤ 16, puis à retourner cette représentation sous forme de chaîne de caractères.

Déclaration des objets

Objet Type / Nature
ch entier
chiffres entier
reste entier

 

La fonction test_unicite_chiffres

La fonction test_unicite_chiffres(nombre) sert à vérifier si tous les chiffres d’un nombre, représenté sous forme de chaîne, sont identiques.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction test_bresilien

La fonction test_bresilien(n) vérifie si un nombre n est brésilien, c’est-à-dire s’il existe une base entre 2 et 16 dans laquelle tous ses chiffres sont identiques.

Déclaration des objets

Objet Type / Nature
b entier
nombre chaîne

 

La fonction recherche_base

La fonction recherche_base(n) sert à déterminer la base (entre 2 et 16) dans laquelle un nombre décimal n devient un nombre brésilien, c’est-à-dire une base où tous ses chiffres sont identiques.

Déclaration des objets

Objet Type / Nature
b entier
nombre chaîne

 

La procédure remplir_fichier_nombres

La procédure remplir_fichier_nombres(n) sert à créer un fichier texte "Nombres.txt" contenant tous les nombres brésiliens compris entre 2 et n.

Déclaration des objets

Objet Type / Nature
f fichier
i entier

 

La procédure remplir_fichier_bresilien

La procédure remplir_fichier_nombres(n) sert à créer un fichier texte "Nombres.txt" contenant tous les nombres brésiliens compris entre 2 et n.

Déclaration des objets

Objet Type / Nature
f_nombres fichier
f_bresilien fichier
nombres chaîne
nombre_f chaîne
n entier
b entier
nombre chaîne
enregistrement_bresilien Enregistrement

 

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