[latex]
Bac General
Centre d’examen : Polynesie
Matiere : EPS
Annee : 2026
Session : Normale
Duree : 3 heures 30
Repere : 26-NSIJ1PO1
Calculatrice : non autorisée
EXERCICE 1 (6 points) – Complexité
Suite d’entiers Un définie par U0=0, U1=1, Un=Un-1+Un-2 pour n≥2.
1. Compléter la fonction récursive suite qui prend en paramètre un entier n et renvoie Un.
2. Écrire une fonction nb_additions_suite prenant en paramètre un entier n et renvoyant p(n) où p(0)=0, p(1)=0, p(n)=1+p(n-1)+p(n-2).
3. Calculer p(2), p(4) et p(7).
4. Compléter le tableau avec le nombre d’additions effectuées par suite2 pour n=2,3,4,5,6,7.
5. Expliquer pourquoi suite2 est plus efficace que suite et donner le nom du procédé algorithmique utilisé.
6. Proposer une version itérative suite3 du calcul des termes de la suite Un.
7. Expliquer pourquoi la version itérative est préférable à la version récursive.
EXERCICE 2 (6 points) – Programmation Python, POO, arbres binaires de recherche, dictionnaires, fichiers CSV
Gestion d’annuaire téléphonique avec contacts fictifs.
Partie A – Arbres binaires de recherche
1. Donner la structure de données de contacts_fictifs.
2. Justifier que l’arbre binaire présenté est un ABR pour l’ordre alphabétique.
3. Indiquer la racine et l’ensemble des feuilles de l’arbre.
4. Donner la hauteur et la taille de l’arbre.
5. Citer l’avantage d’utiliser un arbre de recherche par rapport au type de données contacts_fictifs.
6. Donner le sous arbre-droit du nœud Benjamin.
7. Parmi les instructions A, B et C, choisir celle qui construit le sous-arbre de racine Benjamin.
8. Donner les instructions à placer lignes 14, 23 et 26 pour compléter inserer_recursive et trouver_recursive.
9. Écrire une fonction recherche_contact qui prend en paramètre prenom_recherche et affiche le résultat.
10. Indiquer le type de parcours à utiliser pour afficher la liste des prénoms dans l’ordre alphabétique.
11. Écrire les instructions des lignes 4 et 5 de affichage_contacts_trie.
EXERCICE 3 (8 points) – POO, bases de données, arbres binaires de recherche
Chatbot utilisant une base de données pour stocker questions et réponses.
Partie 1 – Structures de données
1. Compléter les lignes 3 et 6 dans la classe Chatbot.
2. Écrire les lignes de code pour instancier Bot1 et ajouter l’interaction « Bonjour, comment vas-tu ? » / « Bonjour, je vais bien, merci. »
3. Écrire les lignes de code pour obtenir la réponse à la question « Bonjour, comment vas-tu ? »
Partie 2 – Interaction avec la base de données
Table questions_reponses avec colonnes id, question, reponse, mot_cle.
4. Associer SELECT, INSERT, UPDATE à leurs définitions.
5. Définir ce qu’est une clé primaire.
6. Indiquer quel attribut serait le plus adapté pour être clé primaire et justifier.
7. Écrire une requête pour récupérer toutes les questions avec mot-clé « python ».
8. Écrire une requête pour insérer « Date de la bataille de Marignan ? », « 1515 », mot clef « Histoire », Id=15.
9. Écrire la requête pour mettre à jour la réponse de Id=12 en « Oui ».
Partie 3 – Représentation de la recherche avec les arbres
ABR basé sur les mots-clés : IA (racine), bot et programmation (enfants), algo, chatbot, informatique, python (petits-enfants).
10. Indiquer quel parcours donnerait : IA, bot, programmation, algo, chatbot, informatique, python.
11. Indiquer l’ordre d’apparition avec un parcours infixe.
12. Indiquer l’ordre d’apparition avec un parcours postfixe.
13. Indiquer quel parcours permettrait d’obtenir les mots-clés dans l’ordre alphabétique.
14. Compléter la méthode recherche dans l’ABR (lignes 9, 12 et 14).
