Exercice 2 - Partie B · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2025
Thème : Binaire, entiers et opérateurs booléens · Tiré du sujet Métropole France 2 remplacement (2025)
Énoncé
Exercice 2 (6 points)
Cet exercice porte sur les systèmes d'exploitation ainsi que sur programmation et la programmation orientée objet.
Partie A
Partie B
Dans la suite de la documentation de la commande chmod, on peut lire l'extrait suivant.
l'indication de mode, qui peut être une représentation symbolique des changements à effectuer, ou un nombre octal représentant le motif binaire des nouveaux bits de comportement.
Cela signifie que l'on peut indiquer les permissions soit sous la forme d'une chaîne de 9 caractères composée de -, r, w et x, appelée représentation symbolique, soit sous la forme d'une valeur numérique abc composée de trois chiffres a, b et c compris entre 0 et 7 appelée représentation octale.
Le but de cette partie est d'écrire des fonctions Python permettant de passer d'une représentation symbolique à une représentation octale des permissions.
On considère une chaîne de trois caractères dont:
le premier caractère est '-' ou 'r';
le second caractère est '-' ou 'w';
et le dernier est '-' ou 'x'.
On souhaite déterminer le motif binaire de 3 bits correspondant à cette chaîne. Pour cela, on applique les règles suivantes:
si le premier caractère est 'r', le premier bit (celui le plus à gauche), vaut 1, sinon il vaut 0;
si le second caractère est 'w', le second bit vaut 1, sinon il vaut 0;
Si le dernier caractère est 'x', le dernier bit vaut 1, sinon il vaut 0.
5.
Déterminer l'écriture en base 10 du motif binaire de 3 bits correspondant à la chaîne 'rw-'.
La représentation octale associée à une représentation symbolique est obtenue en appliquant ce qui précède trois fois:
les trois caractères correspondant à user donnent le chiffre de gauche;
les trois suivants (correspondant à group) donnent le chiffre du milieu;
les trois derniers (correspondant à other) donnent le chiffre de droite.
Par exemple, la représentation octale associée à la représentation symbolique rwxr-xr-- est 754.
6.
Écrire le code d'une fonction Python bin_to_oct qui prend en paramètre une chaîne de 3 caractères composée uniquement des caractères '0' et '1' et renvoie la représentation octale correspondant à ce motif binaire (le bit de poids fort étant encore à gauche).
Exemples:
>>> bin_to_oct('101') → 5
>>> bin_to_oct('011') → 3
def bin_to_oct(chaine):
7.
On considère la fonction Python mystere qui prend en paramètre une chaîne de 9 caractères et qui renvoie une chaîne de caractères.
def mystere(chaine):
resultat = ''
for c in chaine:
if c == '-':
resultat = resultat + '0'
else:
resultat = resultat + '1'
return resultat
Déterminer ce que renvoie mystere('rw-r-xr--').
8.
On considère dans cette question qu'on dispose d'une fonction Python symb_to_bin qui prend en paramètre une chaîne de 9 caractères correspondant à l'écriture symbolique d'une permission et qui renvoie une chaîne de caractères correspondant au motif binaire de cette permission.
Recopier et compléter le code de la fonction Python symb_to_oct donné ci-dessous, qui prend en paramètre une représentation symbolique sous la forme d'une chaîne de caractères, et qui renvoie la représentation octale correspondante sous la forme d'une chaîne de caractères. Il est possible de répondre en une ou plusieurs lignes de code.
def symb_to_oct(chaine):
repr_bin = symb_to_bin(chaine)
# les 3 premiers bits correspondent au propriétaire
user = repr_bin[0] + repr_bin[1] + repr_bin[2]
# les 3 suivants au groupe
group = repr_bin[3] + repr_bin[4] + repr_bin[5]
# et les 3 derniers aux autres
other = repr_bin[6] + repr_bin[7] + repr_bin[8]
...

Corrigé
Corrigé établi d’après les éléments de correction officiels
5. Déterminer l'écriture en base 10 du motif binaire de 3 bits correspondant à la chaîne 'rw-'.
Réponse : 6
6. Écrire le code d'une fonction Python bin_to_oct qui prend en paramètre une chaîne de 3 caractères composée uniquement des caractères '0' et '1' et renvoie la représentation octale correspondant à ce motif binaire.
Réponse : ```python def bin_to_oct(chaine): valeur = 0 for i in range(len(chaine)): valeur = valeur + int(chaine[i]) * 2 ** (2 - i) return valeur ``` ```python def bin_to_oct(chaine): valeur = 0 poids = 1 for i in range(len(chaine) - 1, -1, -1): valeur = valeur + int(chaine[i]) * poids poids = poids * 2 return valeur ```
7. Déterminer ce que renvoie mystere('rw-r-xr--').
Réponse : '110101100'
8. Recopier et compléter le code de la fonction Python symb_to_oct donné ci-dessous.
Réponse : ```python return str(bin_to_oct(user)) + str(bin_to_oct(group)) + str(bin_to_oct(other)) ```
L’explication pas à pas, faite avec l’IA, est réservée aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 2 - Partie A · Métropole 2026 (sujet 1) · Exercice 3 - Bases de numération · Métropole 1 remplacement 2024 ›