Conversion entier – Bac théorique – Section informatique – 2022

Bac Info 21-01-26
24 0

Sujet (Algo et programmation - Bac 2022)

On se propose de réaliser la conversion d’un entier naturel strictement positif N dans une base B donnée (avec 2 ≤ B ≤ 16).

Pour cela on effectue des divisions euclidiennes par B, les restes successifs seront rangés dans un tableau Restes à Rmax éléments (avec Rmax = 15) puis on inverse les éléments du tableau Restes et on les concatène tout en convertissant les valeurs supérieures ou égales à 10 (dans le cas où la base B >10) en leurs équivalents dans la base B.

Travail demandé :

1- Ecrire un algorithme d’une procédure SAISIE(P, Binf, Bsup) qui permet de saisir un entier naturel P tel que Binf ≤ P ≤ Bsup (avec Binf et Bsup deux entiers naturels).

2- Ecrire un algorithme d’une procédure RANGER (N, B, RESTES, NbreR) qui permet de :

- Ranger dans un tableau RESTES les restes successifs de la suite des divisions euclidiennes par B jusqu’à obtenir un quotient égal à 0 (dans la première division euclidienne on divise N par B, puis on divise le quotient obtenu par B, etc.).

- Calculer le nombre des restes NbreR.

3- Ecrire un algorithme d’une procédure RENVERSER(RESTES, NbreR) qui renverse les NbreR éléments rangés dans le tableau RESTES. (Permuter RESTES [0] avec RESTES [NbreR-1], RESTES [1] avec RESTES [NbreR-2], etc.)

4- Ecrire un algorithme d’une fonction CONVERT(C) qui permet de retourner le caractère qui correspond à l’entier C (avec 0 ≤ C ≤ 15).

Exemples : CONVERT (0) retourne le caractère "0", CONVERT (9) retourne le caractère "9", CONVERT (10) retourne le caractère "A", CONVERT (15) retourne le caractère "F"

5- Ecrire un algorithme d’une procédure CONCATENATION(RESTES, NbreR) qui, en utilisant la fonction CONVERT et la procédure RENVERSER, affiche l’équivalent du nombre N dans la base B en concaténant les éléments du tableau RESTES.

6- En faisant appel uniquement aux modules déjà définis, écrire un algorithme d’un programme principal intitulé CONVERSION qui permet de saisir un entier naturel N (avec 100 ≤ N ≤ 20000) et une base B (avec 2 ≤ B ≤ 16) et d’afficher le résultat de la conversion du nombre décimal N dans la base B.

 

Solution Algorithmique

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

- la fonction saisie()

- la procédure remplir_tableau()

- la procédure inverser_tableau()

- la procédure afficher_tableau()

- la fonction convert()

- la procédure concatenation()

 

Algorithme du programme Principal

Déclaration des objets

Objet Type / Nature
p entier
b matrice
reste tableau
taille entier

 

La fonction saisie

La fonction saisie(Binf, Bsup) permet de saisir un entier compris entre deux bornes données, en garantissant que la valeur entrée par l’utilisateur est valide.

Déclaration des objets

Objet Type / Nature
p entier

 

La procédure remplir_tableau

Cette procédure permet de convertir un nombre décimal p en une base b en stockant les restes successifs de la division de p par b dans le tableau reste.

Déclaration des objets

Objet Type / Nature
r entier
taille entier (variable globale)

 

La procédure inverser_tableau

Cette procédure permet d’inverser l’ordre des n premiers éléments du tableau t.

Déclaration des objets

Objet Type / Nature
i entier
temp entier

 

La procédure afficher_tableau

Cette procédure permet d’afficher les n premiers éléments du tableau t sur une seule ligne, séparés par des espaces.

Déclaration des objets

Objet Type / Nature
i entier

 

La fonction convert

Cette fonction permet de convertir un chiffre numérique en son caractère correspondant lors d’une conversion en base comprise entre 2 et 16.

 

La procédure concatenation

Cette procédure concatène les n premiers éléments du tableau t après conversion en caractères, afin d’afficher le nombre final en base b.

Déclaration des objets

Objet Type / Nature
i entier
resultat 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