Pour chacun des couples suivants, dire si la chaîne est une écriture…
Application directe du cours · niveau 1 (application) · NSI (première), chapitre 1 — Représenter les entiers · Lire et écrire dans une base
Énoncé
Pour chacun des couples suivants, dire si la chaîne est une écriture valide dans la base indiquée : "1021" en base ; "1021" en base ; "BAD" en base ; "BAD" en base ; "019" en base ; la chaîne vide en base . Écrire ensuite est_valide(s, b).
Corrigé
Un chiffre valide en base est un entier compris entre et .
"1021"en base : non, le chiffre n'existe pas."1021"en base : oui, et sa valeur est ."BAD"en base : oui, avec , , ; sa valeur est ."BAD"en base : non, dépasse ."019"en base : oui au sens des chiffres. Le zéro de tête est inutile, mais il ne rend pas l'écriture invalide.- la chaîne vide : non, elle ne représente aucun nombre.
def est_valide(s, b):
"""Vrai si s est une écriture correcte en base b."""
if s == "":
return False
for c in s:
if c not in CHIFFRES[:b]:
return False
return True
Contrôle : CHIFFRES[:b] est exactement la liste des chiffres autorisés — écrire la condition ainsi évite de comparer des caractères à des nombres.
Les autres exercices de ce chapitre Le cours du chapitre
Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.