Exercice 5 - Questions 1 à 3 · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2022

Thème : Mise au point des programmes : bugs, assertions et tests · Tiré du sujet Métropole France 2 remplacement (2022)

Énoncé

EXERCICE 5 (4 points)

Cet exercice porte sur la programmation de base en Python et sur la récursivité.

Le Scrabble est un jeu de société qui se joue à plusieurs joueurs. Chaque joueur pioche des jetons sur lesquels sont inscrites une lettre majuscule et sa valeur.

Le joueur propose ensuite un mot qu'il dispose sur un plateau de jeu en plaçant un jeton par case.

Certaines cases permettent une bonification.

1.

Lorsqu'on pose un mot sur des cases ne présentant aucune bonification, on calcule le score en additionnant la valeur des lettres qui composent le mot.

vaut 10 points.

Voici le code d'une fonction calculer_score_sans_bonif qui a pour paramètre une chaîne de caractères mot et qui renvoie le score du mot lorsqu'il n'y a pas de bonification.

def calculer_score_sans_bonif(mot):

1 scrabble = {"A":1,"B":3,"C":3,"D":2,"E":1,"F":4,"G":2,

2 "H":4, "I":1, "J":8, "K":10,"L":1,"M":2,"N":1,"O":1,

3 "P":3, "Q":8, "R":1,"S":1,"T":1,"U":1,"V":4,"W":10,

4 "X":10,"Y":10, "Z":10}

5 score = 0

7 for k in range(len(mot)):

8 score = scrabble[mot[k]]

9 return score

Une erreur s'est glissée dans le corps de la fonction entre les lignes 5 et 9 incluses.

Indiquer la ligne à modifier et corriger l'erreur.

2.

Sur certaines cases est indiquée la bonification "lettre compte double" ou "lettre compte triple".

Exemple:

Le score obtenu est de 12.

La fonction calculer_score_avec_bonif a pour paramètres:

une chaîne de caractères mot

une liste bonif de même longueur que mot précisant pour chaque lettre la bonification correspondante.

Cette fonction renvoie le score du mot en tenant compte des bonifications.

Dans l'exemple précédent on appelle calculer_score_avec_bonif("JEU", [1, 3, 1]) et on obtient 12.

1 def calculer_score_avec_bonif(mot, bonif):

2 scrabble={"A":1,"B":3,"C":3,"D":2,"E":1,"F":4,"G":2,

3 "H":4, "I":1, "J":8, "K":10,"L":1,"M":2,"N":1,"O":1,

4 "P":3, "Q":8, "R":1,"S":1,"T":1,"U":1,"V":4,"W":10,

5 "X":10,"Y":10, "Z":10}

6 score = 0

7 for k in range(len(mot)):

8 score = # A compléter

9 return score

Recopier et compléter la ligne incomplète (ligne 8):

3.

Lucien joue une partie avec ses grands-parents. Avec le tirage B A O L E L N, il a composé une liste de mots: BAL, NOBLE, ANE, BALLE, LOBE. Il souhaite mettre la lettre B sur une case "lettre compte triple", mais pour cela le B doit être la 3 e lettre du mot qu'il doit poser.

(a)

Ecrire une fonction mot_lettre_position qui a pour paramètres:

une liste de mots liste

un caractère c

une position i (la position 2 correspond à la 3 e lettre)

et qui renvoie la liste de tous les mots qui sont dans liste et qui ont le caractère c en position i.

(b)

Quel appel Lucien doit-il effectuer pour trouver les solutions à son problème ?

Énoncé: Exercice 5 - Questions 1 à 3 · Bac Numérique et Sciences Informatiques Métropole 2 remplacement 2022

Corrigé

Corrigé proposé par AprenAI (non officiel)

1. Indiquer la ligne à modifier

Réponse : 8

1. Corriger l'erreur

Réponse : ```python score = score + scrabble[mot[k]] ``` ```python score += scrabble[mot[k]] ```

2. Recopier et compléter la ligne incomplète

Réponse : ```python score = score + scrabble[mot[k]] * bonif[k] ``` ```python score += scrabble[mot[k]] * bonif[k] ```

Les réponses des 2 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium

Résous-le ici : correction automatique, indices et corrigé détaillé.

‹ Exercice 2 - Mise au point de programmes et tests · Métropole 2026 (sujet 2) · Exercice 4 - Échange d'éléments · Métropole Candidat libre 2021 (sujet 2) ›

Plus d’exercices de Mise au point des programmes : bugs, assertions et tests