etapes

C2-STRAT-01 : Stratégies de résolution de problèmes#

Objectifs pédagogiques#

  • acquérir des éléments de stratégie de résolution de problèmes

  • appliquer sur un problème informatique

Méthodes de résolution (observées)#

On part d’un problème informatique posé et on établi une stratégie de résolution

Exemple de problème en informatique#

Consigne

Vous avez 45 minutes pour écrire un programme informatique qui vérifie si une chaîne de caractère est un palindrome.

Entrée du programme : une chaîne de caractères Sortie du programme : Afficher C'est un palindrome si la chaîne en entrée en est un. Ce n'est pas un palindrome si la chaîne en entrée n’en est pas un

Exemples de palindromes : SUGUS, ELLE, RADAR, KAYAK Il en existe de bien plus longs et dans toutes les langues

1ère méthode#

  • regarder la question pendant 40 minutes

  • Ecire un programme parfait en 5 minutes

2ème méthode#

  • Ne pas lire la question

  • Ouvrir Thonny

  • Ecrire un for peut-être un if

  • Importer le module tortue : from turtle import *

  • Remarquer que rien ne se passe lorsqu’on appuie sur la flèche verte

  • Persister

Proposition d’une méthode efficace#

En suivant cette stratégie, il est devient plus facile de résoudre efficacement un problème (ou une classe de problèmes : un ensemble de problèmes similaires).

La méthode est divisée en deux parties :

  • l’analyse algorithmique du problème

  • la programmation

Analyse algorithmique du problème#

  1. lire la donnée. Prendre le temps de lire chaque mot de la consigne ou du problème posé. Sans comprendre le problème, les chances d’écrire un programme qui le résoud sont nulles

  2. inventer des petits exemples sur une feuille de papier. Si vous ne savez pas résoudre les petits exemples à la main sur une feuille de papier, les chances de retranscrire les étapes sont nulles

  3. décomposer le problème en petites étapes. Chacune de ces étapes pourront être programmées. Un ordinateur n’a pas d’intelligence ni de bon sens : il faut tout détailler

  4. identifier les informations dont on a besoin. Ces informations sont les variables, les entrées, les sorties, les éléments à calculer, les éléments à collecter, etc..

  5. écrire un algorigramme du problème. Ce formalisme permet de tester les différents exemples et de vérifier si l’algorithme est correctement décrit.

  6. connaître les bases de la programmation. Variables, structures de contrôle, syntaxe, indentation, etc.. Sans une maîtrise de ces bases, les chances d’arriver à écrire un programme sont nulles

  7. connaître les structures de données de base. Les variables, les listes, et d’autres structures plus complexes afin de modéliser le problème

  8. relier les éléments de l’algorithme (algorigramme) avec les éléments Python.

Programmation#

  1. Ecrire le programme graduellement

  2. Commencer par le coeur du problème.

  3. Obtenir de la visibilité dans le programme en affichant certains éléments (variables, listes, etc..) au fur et à mesure du développement

    1. Commencer par utiliser des print()

    2. Utiliser le debugger (à voir durant les TP)

Exercice 1 : Les palindromes#

Résoudre le problème des palindromes en appliquant la méthode décrite dans ce chapitre

Consigne

Vous avez 45 minutes pour écrire un programme informatique qui vérifie si une chaîne de caractère est un palindrome.

Entrée du programme : une chaîne de caractères

Sortie du programme : Afficher C'est un palindrome si la chaîne en entrée en est un. Ce n'est pas un palindrome si la chaîne en entrée n’en est pas un

Exemples de palindromes : SUGUS, ELLE, RADAR, KAYAK Il en existe de bien plus longs et dans toutes les langues

Exercice 2 : Le jeu du pendu (pour aller plus loin)#

En appliquant la méthode décrite dans ce chapitre, développez le jeu du pendu en Python.

Règles du jeu

  • Le jeu demande un mot à trouver

  • le joueur doit choisir une lettre

  • si la lettre se trouve dans le mot à trouver, alors le joueur ne perd pas d’essai

  • si la lettre ne se trouve pas dans le mot, alors le joueur perd un essai

  • Pour trouver le mot, le joueur dispose de 10 essais possibles.

Le jeu doit fonctionner quelque soit le mot et le nombre de lettres identiques dans le jeu