Module 1Modéliser un problème
Chapitre 1 sur 11
Analyser un problème
Comprendre un problème : entrées, sorties, traitements et types de traitement.
- ≈ 105 min
- 3 leçons
- 3 exercices
- TP
Module 1Modéliser un problème
Chapitre 1 sur 11
Comprendre un problème : entrées, sorties, traitements et types de traitement.
Objectifs
Avec ce chapitre, tu sauras…
Le développement d'un logiciel, c'est la transformation d'une idée ou d'un besoin (un problème) en un logiciel fonctionnel. Ce chapitre est court en heures (3 h), mais c'est celui qui évite la plus grande erreur des débutants : commencer à coder avant d'avoir compris ce qu'on doit faire.
Leçon 1
Les trois phases de la résolution d'un problème
L'exemple du magasin (résumé théorique OFPPT)
Un magasin d'électroménager contient 380 aspirateurs. Il s'approvisionne de 40 autres appareils et fait 3 ventes de 5 aspirateurs chacune. Quel est le stock actuel ?
| Élément | Dans l'exemple |
|---|---|
| entrées (données) | stock initial = 380, approvisionnement = 40, nombre de ventes = 3, quantité par vente = 5 |
| traitement | stock = stock initial + approvisionnement − nombre de ventes × quantité par vente |
| sortie (résultat) | stock actuel = 380 + 40 − 3 × 5 = 405 aspirateurs |
Leçon 2
| Énoncé de départ | Reformulation |
|---|---|
| « On se donne un ensemble d'entiers positifs, on souhaite calculer la moyenne de ces entiers. » | « Quelle est la moyenne de K entiers positifs ? » |
| entrées | K (le nombre d'entiers) et les K entiers |
| traitement | additionner les K entiers, puis diviser la somme par K |
| sortie | la moyenne (un réel) |
Leçon 3
| Type | Principe | Exemple |
|---|---|---|
| séquentiel | les instructions s'exécutent l'une après l'autre, dans l'ordre | calculer le stock du magasin |
| conditionnel | une instruction ne s'exécute que si une condition est vraie | afficher « admis » si la note ≥ 10 |
| itératif | un même traitement est répété plusieurs fois | additionner 10 entiers donnés |
| récursif |
1Les trois phases de la résolution d'un problème sont…
2Dans « calculer la surface d'un rectangle », la longueur et la largeur sont…
3Additionner 100 nombres saisis relève d'un traitement…
4« Si le solde est négatif, afficher une alerte » est un traitement…
5Factorielle(N) = N × Factorielle(N − 1) est une formulation…
6Le cas de base d'une récursion sert à…
L'essentiel du chapitre
| règle de gestion | K doit être strictement positif (on ne divise pas par 0) |
| le problème s'exprime à l'aide du même problème en plus petit |
| la factorielle d'un entier N |
Entrées ──▶ Algorithme (traitements) ──▶ Résultat (sorties)Cette phrase du résumé OFPPT résume tout le chapitre. Si tu sais dire précisément ce qui entre et ce qui sort, l'algorithme est souvent évident. Si tu ne le sais pas, aucun langage de programmation ne t'aidera.
L'analyse d'un problème s'intéresse à trois éléments : les résultats souhaités (sorties), les traitements (actions pour atteindre le résultat) et les données nécessaires aux traitements (entrées). Son objectif est de :
Un énoncé est souvent écrit en langage naturel et contient des ambiguïtés. Il faut donc :
Tableau: Exemple de reformulation (résumé OFPPT)
Tableau: Les quatre types de traitement
Indique le ou les types de traitement nécessaires : (a) convertir des dirhams en euros ; (b) afficher la table de multiplication de 7 ; (c) calculer la puissance x^n en sachant que x^n = x × x^(n−1) et x^0 = 1 ; (d) afficher « pair » ou « impair » pour un nombre donné.
Pour chaque problème, donne les entrées, le traitement, la sortie et au moins une règle de gestion : (a) calculer le prix TTC d'un article à partir de son prix hors taxe (TVA à 20 %) ; (b) dire si un étudiant est admis (moyenne de trois notes ≥ 10) ; (c) calculer la remise d'un client : 10 % si le montant dépasse 1 000 DH, sinon aucune.
Reformule en une question précise, puis analyse : « Un professeur veut savoir comment se situe sa classe ; il a les notes de ses 30 élèves et voudrait connaître la meilleure et la moins bonne. »
« Calculer la moyenne » paraît simple, mais que se passe-t-il si K = 0 ? Une division par zéro. Les cas particuliers font partie de l'analyse : écris-les avant de commencer l'algorithme.
Le traitement itératif : la somme de 10 entiers
1. Entrer un entier
2. Ajouter l'entier à la somme
3. Répéter 1 et 2 dix fois
4. Afficher le résultatOn n'écrit pas dix fois les mêmes lignes : on utilise un outil (la boucle, chapitre 4) qui exécute le traitement un certain nombre de fois.
Le traitement récursif : la factorielle
La factorielle de N (notée N!) est le produit 1 × 2 × … × N, avec par convention 0! = 1.
Si N > 0 : Factorielle(N) = N * Factorielle(N - 1)
Si N = 0 : Factorielle(N) = 1Pour calculer 4!, on calcule 4 × 3!, et pour 3!, on calcule 3 × 2!… jusqu'à 0! = 1, qu'on connaît directement. Chaque poupée contient une poupée plus petite, jusqu'à la plus petite qui ne s'ouvre plus : c'est le cas de base. Sans cas de base, la récursion ne s'arrêterait jamais.