Méthodes et diagnostics · Méthodes et diagnostics

Comment résoudre un exercice de NSI

Le plus difficile n’est pas toujours d’écrire une instruction : c’est de savoir par où commencer. Une méthode de résolution transforme une question large en décisions plus petites. Elle fonctionne aussi pour un schéma de réseau, une requête SQL ou une preuve, sans se réduire à une recette de programmation.

SofienAvec SofienIngénieur et enseignant en informatique
Dans ce chapitre

Un cap pour ce chapitre

Ce que vous saurez faire

  • Extraire les données, le résultat attendu et les contraintes.
  • Construire un exemple qui guide la résolution.
  • Relier chaque étape à une vérification.

Les notions nécessaires sont introduites dans cette ressource.

Reformuler ce qui est demandé

Repérez le verbe principal : calculer, écrire, expliquer, justifier, comparer ou corriger ne demandent pas la même production. « Donner un chemin » appelle une suite de sommets ; « montrer qu’il est minimal » ajoute une justification. Entourez aussi les contraintes : tableau trié, graphe orienté, absence de doublons ou modification interdite des données.

Reformulez ensuite l’entrée et la sortie dans vos propres mots. Si l’on demande combien de valeurs dépassent un seuil, le résultat est un nombre, pas la liste de ces valeurs. Cette distinction évite de résoudre un problème voisin et de découvrir trop tard que la réponse ne correspond pas à la consigne.

Construire un exemple assez petit pour être maîtrisé

Prenons [4,9,9,2] et un seuil de neuf avec une condition supérieure ou égale. La réponse attendue est deux. L’exemple comporte une valeur inférieure, une égalité et un doublon : il rend visibles plusieurs choix qui pourraient être oubliés. Un exemple entièrement uniforme explique moins bien la frontière du problème.

Pour un réseau, un dessin de quatre sommets peut suffire ; pour une jointure, deux petites tables permettent de vérifier les associations. Le but est de produire à la main un résultat de référence et d’identifier les informations nécessaires. Une représentation pertinente réduit la charge mentale avant le choix de l’algorithme.

Décomposer sans perdre l’objectif

Pour compter les valeurs admissibles, il faut un compteur, un parcours et une condition. Le compteur démarre à zéro, augmente lorsque la condition est vraie et devient le résultat à la fin. Chaque élément de cette décomposition correspond directement à une partie du besoin.

Si le problème possède des sous-tâches déjà connues, réutilisez-les avec un contrat précis : une fonction qui recherche une clé, une file qui conserve un ordre, une requête qui filtre une relation. N’ajoutez pas une structure complexe simplement parce qu’elle vient d’être étudiée. Le choix doit réduire une difficulté identifiable du problème.

Écrivez les décisions qui feraient changer la solution : compter ou lister, occurrence ou valeur distincte, première réponse ou toutes les réponses, ordre imposé ou libre. Un exemple comme [5,5,7] tranche plusieurs de ces interprétations. Cette préparation reste utile même si l’on connaît déjà un algorithme portant un nom familier.

Vérifier la réponse et la rendre lisible

Exécutez mentalement la méthode sur l’exemple de départ, puis sur des cas limites : entrée vide si autorisée, un seul élément, résultat absent ou valeur sur la frontière. Pour une démonstration, vérifiez que chaque hypothèse utilisée figure dans l’énoncé. Pour du code, distinguez affichage et retour, indices et valeurs, mutation et copie.

La rédaction finale doit faire apparaître la conclusion demandée et les étapes nécessaires à sa vérification. Si une question reste bloquée, écrivez ce que vous savez établir et identifiez l’obstacle précis. Une tentative structurée permet de reprendre le raisonnement ; des modifications au hasard rendent plus difficile la compréhension de vos propres choix.

Exemple suivi : de la consigne à un compteur

Consigne : « Renvoyer le nombre de mesures appartenant à l’intervalle fermé [3,7], sans modifier la liste. » L’entrée est une liste de nombres et la sortie un entier. Sur [2,3,7,7,8], l’attendu vaut trois, car les deux occurrences de 7 comptent. La condition est 3 <= valeur <= 7. Un compteur nul augmente pour les valeurs 3,7,7 et conserve zéro contribution pour 2 et 8.

La trace des totaux après chaque valeur est 0,1,2,3,3. Elle relie les mots de la consigne à la méthode : « nombre » donne le compteur, « appartenant » donne la condition et « liste » donne le parcours. Les tests vide et singleton frontière complètent l’exemple. Une justification peut ensuite établir qu’après chaque tour le compteur décrit exactement le préfixe déjà traité. Le code devient la traduction d’une démarche définie, et non une recherche au hasard de lignes plausibles.

Valeur examinéeDans l’intervalle fermé de 3 à 7 ?Compteur après traitement
2Non0
3Oui1
7Oui2
7Oui3
8Non3

Exemple suivi : fournir un chemin puis justifier sa longueur

Un réseau non orienté possède A-B, B-D, A-C et C-D. La consigne demande un chemin de A à D ayant le moins de sauts. A-B-D fournit d’abord un témoin d’accessibilité avec deux arêtes. Pour justifier le minimum, on observe qu’A n’est pas D et que la liaison directe A-D est absente : un chemin de zéro ou un saut est impossible. Deux est donc minimal ; A-C-D est une autre solution.

La représentation du graphe doit conserver l’absence de liaison directe, information essentielle à la preuve. La distance dessinée sur la feuille ne sert pas à ce comptage. Si l’énoncé introduit des poids, la preuve doit être adaptée à la somme des coûts. Cette étude illustre une méthode transférable : définir la mesure, construire une réponse réalisable et exclure les réponses strictement meilleures, au lieu de confondre existence et optimalité.

À vous de faire varier les choses

Quel rôle joue cette étape du raisonnement ?

Classez les éléments d’une résolution du problème « compter les valeurs supérieures ou égales à dix ». Chaque retour explique ce que l’étape établit.

Lire les associations expliquées
La fonction renvoie un entier et ne modifie pas la liste reçue. : Spécification
Cela fixe le contrat observable.
Pour [9,10,11], la réponse attendue est deux. : Exemple de référence
C’est un résultat manuel qui servira de référence.
Initialiser un compteur à zéro puis parcourir les éléments. : Méthode
Cela décrit les opérations de résolution.
Après chaque tour, le compteur décrit les éléments admissibles déjà parcourus. : Vérification ou justification
Cette propriété constitue un invariant utile à la correction.
La liste vide est autorisée et doit donner zéro. : Spécification
Cette règle définit un cas du domaine et son résultat.
Sur [10], comparer résultat observé et résultat attendu un. : Vérification ou justification
Ce test vérifie une frontière et une petite taille.
Ajouter un au compteur lorsque la valeur est au moins dix. : Méthode
C’est la mise à jour qui construit le résultat.
Pour [2,12,12], deux occurrences sont comptées. : Exemple de référence
L’exemple rend explicite le traitement des doublons.
La consigne compte les valeurs distinctes : deux occurrences de 5 ne doivent contribuer qu’une fois. : Spécification
Ce choix détermine le sens de la sortie et peut imposer de mémoriser les valeurs déjà rencontrées.
Sur [5,5,7], le compte distinct attendu est 2, calculé avant de lancer le programme. : Exemple de référence
Cet exemple sépare distincts et occurrences. Il sert de référence indépendante.
Le programme passe [5,5,7], puis on vérifie [] et [0] pour un comptage strictement positif. : Vérification ou justification
Ces tests ciblent le vide et l’exclusion de zéro ; ils ne prouvent pas à eux seuls tous les cas.

Une résolution solide relie contrat, exemple, méthode et vérification, sans confondre leurs rôles.

De la compréhension à l’autonomie

À vous de résoudre

Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.

Exercice 1 · Comprendre#

Identifier la sortie

La consigne demande « renvoyer le nombre de températures négatives ». Pour [-2,3,-1], faut-il renvoyer [-2,-1] ou 2 ?

Indice 1

Le nom de la quantité demandée est nombre.

Indice 2

Une liste et un entier ne décrivent pas le même résultat.

Comprendre la correction

Il faut renvoyer deux. La liste [-2,-1] contient bien les valeurs concernées, mais ce n’est pas la production demandée. On peut l’utiliser dans son raisonnement, puis fournir la quantité attendue.

Exercice 2 · Appliquer#

Choisir un exemple révélateur

Pour tester une condition « valeur≥10 », quel exemple est le plus informatif : [20,30,40] ou [9,10,11] ? Pourquoi ?

Indice 1

Cherchez la différence entre > et ≥.

Indice 2

Une valeur exactement à la limite révèle cette distinction.

Comprendre la correction

[9,10,11] est plus informatif pour cette frontière : il contient un cas refusé, un cas d’égalité accepté et un cas supérieur accepté. [20,30,40] ne distinguerait pas les conditions >10 et ≥10.

Exercice 3 · Analyser#

Distinguer résultat et preuve

Un élève donne A-B-D comme chemin et écrit « donc c’est le plus court ». Quelle étape manque pour une question de minimalité ?

Indice 1

Un chemin possible est seulement un témoin d’accessibilité.

Indice 2

Il faut écarter l’existence d’un chemin plus court selon la métrique.

Comprendre la correction

Il manque une justification du minimum : une exploration en largeur par couches dans un graphe non pondéré, ou une comparaison des coûts selon le modèle, par exemple. L’existence d’un chemin ne démontre pas à elle seule sa minimalité.

Exercice 4 · S’organiser#

Transformer un blocage en question précise

Vous savez parcourir une liste mais hésitez entre compter toutes les occurrences et une seule occurrence de chaque valeur. Quelle information rechercher avant de coder ?

Indice 1

Relisez les mots distinct, occurrence et doublon.

Indice 2

Le choix change la structure et le résultat.

Comprendre la correction

Il faut vérifier si la consigne compte les occurrences ou les valeurs distinctes. Pour [5,5,7], les réponses seraient respectivement trois ou deux. Cet exemple rend l’ambiguïté explicite et permet de demander une clarification précise si l’énoncé ne la tranche pas.

Exercice 5 · Problème de synthèse#

Étude de cas : répondre exactement à la consigne

La fonction doit renvoyer le nombre de valeurs distinctes strictement positives dans [2,2,-1,5,0]. Reformulez entrée, sortie et frontières ; donnez le résultat. Comparez au nombre d’occurrences positives. Proposez une structure et trois cas de test qui distinguent les deux besoins.

Indice 1

Le mot distinct change le traitement des deux occurrences de 2.

Indice 2

Zéro n’est pas strictement positif.

Comprendre la correction

La sortie attendue est 2, correspondant aux valeurs 2 et 5 ; compter les occurrences positives donnerait 3. Un ensemble des valeurs positives permet de ne conserver qu’une occurrence de chaque valeur, puis on renvoie sa taille. Les tests [], [0,-1] et [2,2] attendent respectivement 0,0,1. Chaque choix est relié à un mot de la consigne.

Exercice 6 · Problème de synthèse#

Étude de cas : valider un plus court trajet

Le réseau comporte A-B, B-D, A-C, C-E et E-D. Un élève propose A-C-E-D et affirme qu’il est minimal parce qu’il apparaît en premier sur son dessin. Vérifiez sa route, trouvez un meilleur témoin et justifiez le minimum en sauts. Que faudrait-il si chaque liaison avait un coût différent ?

Indice 1

Le dessin n’impose aucun ordre d’exploration.

Indice 2

Comparez les nombres de liaisons, puis excluez un accès direct.

Comprendre la correction

A-C-E-D est une route valide de trois sauts. A-B-D en comporte deux et est minimal puisque A-D n’existe pas. Pour des coûts différents, le nombre de sauts ne suffirait plus : il faudrait comparer les sommes et utiliser une méthode adaptée aux poids. Une correction complète reconnaît la partie juste, l’accessibilité, puis corrige l’affirmation de minimalité.

Exercice 7 · Problème de synthèse#

Étude de cas : organiser une correction

Un comptage des valeurs ≥10 utilise une condition >10 et oublie la dernière case. Sur [10,11], il renvoie zéro. Préparez une démarche en quatre étapes pour isoler les deux causes, puis donnez deux petits tests indépendants et le résultat final attendu après correction.

Indice 1

[10,0] révèle l’égalité sans dépendre de la dernière case.

Indice 2

[0,11] révèle l’oubli du dernier élément sans utiliser l’égalité.

Comprendre la correction

On fixe le contrat, écrit l’attendu, trace les indices et teste chaque hypothèse séparément. [10,0] attend 1 et cible l’égalité ; [0,11] attend 1 et cible la dernière case. On corrige les deux causes puis rejoue aussi le vide et les singletons. Sur [10,11], le résultat doit être 2. Une modification du résultat final sans réparation des causes ne suffirait pas.

Les erreurs qui méritent un détour

Commencer par une structure avant d’avoir défini la sortie.
La représentation doit servir le besoin, pas le remplacer.
Considérer une réponse plausible comme déjà justifiée.
Un exemple, une trace et une preuve n’établissent pas exactement la même chose.

La fiche à garder

L’essentiel à retenir

  • La consigne définit la production et ses contraintes.
  • Un petit exemple peut révéler les décisions importantes.
  • La vérification doit viser le contrat, avec des cas différents.

Le prochain pas

Retrouver le catalogue des ressources

Ce chapitre s’appuie sur les programmes officiels de NSI (nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.