C2-STRAT-01 : Stratégies de résolution de problèmes
Contents
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 unif
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#
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
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
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
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..
é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.
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
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
relier les éléments de l’algorithme (algorigramme) avec les éléments Python.
Programmation#
Ecrire le programme graduellement
Commencer par le coeur du problème.
Obtenir de la visibilité dans le programme en affichant certains éléments (variables, listes, etc..) au fur et à mesure du développement
Commencer par utiliser des
print()
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