Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Licence CC BY-NC-ND Thierry Parmentelat & Arnaud Legout Inria - UCA

Merci à Adrien Ollier d’avoir proposé cet exercice

exercice - niveau intermédiaire

Le but de l’exercice est d’écrire la fonction spreadsheet

Pour rappel dans un tableur les colonnes sont appelées d’abord A jusque Z, puis on passe à AA, AB, et ainsi de suite jusque ZZ, puis AAA, etc etc..

La valeur d’entrée index = 0 est considérée comme non valide.

# voici quelques exemples charnière
from corrections.exo_spreadsheet import exo_spreadsheet
exo_spreadsheet.example()
Loading...

Pour vous aider, on rappelle l’existence des fonctions prédéfinies chr() et ord() qui permettent de passer des caractères Unicode à leur représentation numérique (codepoint) et vice-versa.

On vous invite également à envisager la progression suivante :

  1. Exercice intermédiaire: Écrire la fonction qui prend les entiers de 0 à 25 et qui retourne les lettres de A à Z.

  2. Écrire la fonction qui prend les entiers de 1 à 26 et qui retourne les lettres de A à Z. La valeur d’entrée index = 0 est considérée comme une erreur.

  3. À partir de la fonction précédente, écrire la fonction spreadsheet() pour les indices commençant à 1 et allant au-delà de 26.

Remarquez que, contrairement à ce qu’on indiquait dans une version antérieure de cet énoncé, il ne s’agit pas exactement de faire une décomposition en base 26; les nombres “charnière”, c’est-à-dire ceux qui correspondent à un passage de Z* à A*, sont donnés - à 1 près - par la formule n+n2+n3+...+nkn + n^2 + n^3 + ... + n^k, avec ici n=26n=26

# écrivez votre code ici'
def spreadsheet(index):
    ...
# et validez-le ici
exo_spreadsheet.correction(spreadsheet)
Loading...