Conversion bases – Bac pratique – Section informatique – 2010

Bac Info 11-12-25
34 0

Sujet (Algo et programmation - Bac 2010)

Soit un fichier enregistré sous le nom nb_base.dat dans lequel on va enregistrer n chaînes de caractères. Chaque chaîne est formée de 5 caractères au maximum. Chacun de ces caractères est soit un chiffre, soit une lettre majuscule de l'intervalle "A".."F".Pour chaque chaîne du fichier nb_base.dat, on se propose de réaliser les tâches suivants :

- Déterminer la plus petit base b à laquelle, peut appartenir le nombre m représenté par la chaîne des caractères.

- Déterminer l'équivalent décimal d du nombre m

- Ranger dans une ligne d'un fichier texte nommé nombre.txt, la valeur décimale correspondante, de la façon suivante : (m)b=(d)10

Exemple :

Si le contenu du fichier nb_base.dat est le suivant :

Le contenu du fichier nombre.txt est le sera :

Remarque:

La plus petite base à laquelle appartient la valeur 1B5 est la base 12. En effet, le plus grand chiffre de ce nombre est B qui correspond à la valeur décimale 11.

De ce fait, la plus petite base est 1B5 est 11+1=12

 Travail demandé:

Ecrire un programme en Python qui permet de :

- Saisir un entier 2<=n<=10. - Enregistrer dans un fichier nommé nb_base.dat n chaînes de caractères répondant aux conditions précédemment citées. - Remplir et afficher le fichier nombre.txt.

 

Solution Algorithmique

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

- la fonction saisie_nbr_chaines()

- la fonction verif_chaine()

- la fonction saisie_chaine()

- la fonction recherche_base()

- la fonction exposant()

- la fonction conversion_decimale()

- la procédure remplir_fichiers()

- la procédure afficher_fichier()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction saisie_nbr_chaines

Cette fonction demande à l’utilisateur de saisir un entier compris entre 2 et 10.

Tant que la valeur saisie n’est pas dans cet intervalle, la fonction redemande un nombre.

Elle garantit donc que le nombre retourné sera toujours un entier valide entre 2 et 10.

Déclaration des objets

Objet Type / Nature
n entier

 

La fonction verif_chaine

Cette fonction vérifie si une chaîne de caractères est valide selon deux conditions :

1. La chaîne doit avoir une longueur comprise entre 1 et 5 caractères.

2. Tous les caractères de la chaîne doivent appartenir à l’ensemble : des chiffres 0 à 9 et les lettres majuscules A à F

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction saisie_chaine

Cette fonction vérifie si une chaîne de caractères est valide selon deux conditions :

1. La chaîne doit avoir une longueur comprise entre 1 et 5 caractères.

2. Tous les caractères de la chaîne doivent appartenir à l’ensemble :

Déclaration des objets

Objet Type / Nature
ch chaîne

 

La fonction recherche_base

Cette fonction détermine la plus petite base possible dans laquelle la chaîne ch peut être interprétée.

Elle cherche le caractère le plus grand dans la chaîne ch (par exemple : dans "A3F2", le plus grand caractère est 'F').

Selon ce caractère maximal :

1- S’il s’agit d’une lettre entre A et F, elle calcule sa valeur :

A → 10

B → 11

F → 15

Puis elle retourne valeur + 1, donc la base minimale.

2- S’il s’agit d’un chiffre, elle retourne (chiffre + 1).

Déclaration des objets

Objet Type / Nature
i entier
max_chiffre entier

 

La fonction exposant

Cette fonction calcule la puissance d’un nombre : c’est-à-dire n multiplié par lui-même e fois.

Déclaration des objets

Objet Type / Nature
i entier
p entier

 

La fonction conversion_decimale

Cette fonction convertit un nombre écrit dans une base quelconque (≤ 16) en base 10.

La chaîne ch contient un nombre composé :

- de chiffres 0 à 9 ou de lettres A à F (pour les valeurs 10 à 15)

- de la base dans laquelle ce nombre est écrit.

Déclaration des objets

Objet Type / Nature
nombre entier
i entier

 

La procédure remplir_fichiers

Cette procédure remplit deux fichiers à partir de chaînes saisies par l’utilisateur.

nb_base.dat : ce fichier contient les chaînes originales, telles que saisies par l’utilisateur.

nombre.txt : ce fichier contient leurs conversions en base 10, accompagnées de la base minimale utilisée.

Déclaration des objets

Objet Type / Nature
f_nbbase fichier
f_nombre fichier
i entier
ch chaîne
base entier
nombre entier

 

La procédure afficher_fichier

Cette procédure sert à afficher le contenu d’un fichier texte, ligne par ligne.

Déclaration des objets

Objet Type / Nature
f 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-Prof Info