Aperçu du sujet
Exercice 1 (6 points) Cet exercice porte sur la programmation en Python et la programmation dynamique. Dans cet exercice, on se réfère à la citation suivante de Donald Knuth : « An algorithm must be seen to be believed. » En typographie, il existe plusieurs manières d’aligner un texte :
Exercice 1 (6 points) Cet exercice porte sur la programmation en Python et la programmation dynamique. Dans cet exercice, on se réfère à la citation suivante de Donald Knuth : « An algorithm must be seen to be believed. » En typographie, il existe plusieurs manières d’aligner un texte : aligner à gauche, centrer, aligner à droite et justifier. Figure 1. Justification d’un texte à l’aide d’un traitement de texte L’alignement justifié permet d’obtenir que chaque ligne ait la même longueur appelée justification. Pour cela et pour chacune des lignes, on ajoute si nécessaire des espaces supplémentaires. Dans tout cet exercice, on désigne par une espace exactement un caractère d’espacement, tel que contenu dans la chaine Python ' '. On répartit ces espaces supplémentaires ainsi : • s’il n’y a qu’un mot on insère les espaces à droite de celui-ci ; • sinon − on effectue la division euclidienne du nombre total d’espaces nécessaires pour compléter la ligne par le nombre d’emplacements inter- mots (entre les mots) ; − on répartit le quotient d’espaces entre chaque emplacement inter-mot ; − puis, s’il reste des espaces à distribuer, on les répartit une par une de gauche à droite. Dans toute la suite, pour simplifier, on considère que tous les caractères, espaces comprises, ont la même largeur. Les mots ne sont ni coupés, ni décorés (gras, italique, etc.). 25-NSIPE2 Page : 2 / 18 Partie A 1. On considère les quatre premiers mots , , , 'An' 'algorithm' 'must' 'be' de la citation de Donald Knuth avec un alignement justifié de 25 caractères, c’est-à-dire que la ligne contient 25 caractères au total, en comptant les lettres et les espaces. Montrer que, pour cette justification, le nombre d’espaces nécessaires est de 8. 2. On souhaite répartir ces 8 espaces entre ces quatre mots. Déterminer la seule proposition, parmi les quatre propositions ci-après, respectant les règles de l’alignement justifié définies précédemment, pour une justification de 25 caractères. Le caractère représente ici une espace. - − − − − On considère le code de la fonction , donnée ci-après, qui prend en ajout_espace paramètres une liste non vide de chaînes de caractères représentant un liste_mots ensemble de mots et un entier représentant la justification. La justification fonction renvoie une chaîne de caractères constituée des mots de à liste_mots laquelle on ajoute des espaces pour la justifier selon . justification La fonction en Python est utilisée