Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 12

Calcul conditionnel : Remises et plus encore

Recommended resources

Bonjour ! Dans la leçon précédente, nous avons vu comment utiliser une méthode structurée pour résoudre des problèmes basés sur des choix, comme la détermination d'une année bissextile. Nous avons appris à utiliser les structures Si...SinonSi...Sinon pour guider l'algorithme vers différentes conclusions.

Introduction

Aujourd'hui, nous allons clore notre module sur les structures de contrôle conditionnelles en appliquant ces mêmes principes à un autre type de problème très courant : les problèmes de calcul. L'objectif est d'utiliser une condition non pas pour afficher un simple message, mais pour choisir entre différentes formules mathématiques.

Nous verrons comment un algorithme peut calculer un prix final en appliquant une remise qui dépend du montant initial. C'est une compétence fondamentale qui illustre parfaitement comment la logique et le calcul s'entremêlent en algorithmique, un pas de plus vers votre objectif d'écrire du "code clean" et efficace.


1. Du Choix à l'Action de Calcul

Jusqu'à présent, nos blocs Si...Alors...Sinon se terminaient souvent par une instruction Ecrire(...) pour afficher un résultat textuel.

Si (condition) Alors
  Ecrire("Le cas A est vrai.")
Sinon
  Ecrire("Le cas B est vrai.")
FinSi

Le changement fondamental aujourd'hui est que l'action à l'intérieur de ces blocs sera une affectation de variable issue d'un calcul.

Si (condition) Alors
  resultat ← formule_de_calcul_A
Sinon
  resultat ← formule_de_calcul_B
FinSi
Ecrire(resultat)

Cette structure nous permet de stocker le résultat d'un calcul (qui dépend d'une condition) dans une variable, pour ensuite l'utiliser, par exemple en l'affichant à la fin.


2. Étude de Cas : Tarifs Dégressifs

Plongeons-nous dans un exemple concret. Un magasin de photos propose des tarifs différents en fonction du nombre de photos à développer. Analysons ce problème pour en extraire la logique.

Algorithmes (3) Instruction conditionnelle

Ce document présente un problème de calcul de prix avec des tarifs qui changent selon la quantité. Lisez la description du problème et son analyse pour bien comprendre comment la condition influence le calcul.

Lisez la première page, sections "I. Exemple introductif" et "2°) Analyse du problème". Concentrez-vous sur l'identification des entrées, de la sortie, et de la règle qui détermine quel calcul de prix appliquer.

Après cette lecture, nous pouvons synthétiser l'analyse du problème :

  • Entrée : N, le nombre de photos (un entier).
  • Sortie : P, le prix total (un réel).
  • Règle de décision : Le nombre de photos N est-il inférieur à 75 ?
    • Oui (N < 75) : Le calcul est P ← N * 0.16.
    • Non (N >= 75) : Le calcul est P ← N * 0.12.

Cela se traduit directement par l'algorithme suivant, qui utilise la structure Si...Alors...Sinon pour choisir le bon calcul :

Algorithme CalculTarifPhoto
  Variables
    N : Entier
    P : Réel
  Début
    Ecrire("Entrez le nombre de photos :")
    Lire(N)

    Si N < 75 Alors
      P ← N * 0.16
    Sinon
      P ← N * 0.12
    FinSi

    Ecrire("Le montant total est de : ", P, " €")
  Fin

Cet algorithme est propre et efficace : une seule structure conditionnelle suffit pour gérer les deux cas de calcul.


3. Le Calcul de Pourcentages

Les remises sont souvent exprimées en pourcentages. Comprendre comment les traduire en une formule de calcul est une compétence essentielle.

Supposons qu'un prix P subisse une réduction de t pour cent (t%).

  1. Le montant de la réduction est :
  2. Le nouveau prix est donc :
  3. En remplaçant :
  4. En factorisant par P, on obtient :

Le terme est appelé le coefficient multiplicateur. C'est une astuce de calcul très utile.

Exemples :

  • Une remise de 30% : le coefficient est . Le nouveau prix est PrixInitial * 0.7.
  • Une remise de 10% : le coefficient est . Le nouveau prix est PrixInitial * 0.9.

Cette méthode est bien plus directe que de calculer la remise puis de la soustraire.


4. Exercice Pratique : Appliquer une Remise

Maintenant, à vous de jouer ! Mettez en pratique ce que nous venons de voir.

Problème :
Un magasin applique la politique de remise suivante :

  • Si le prix d'un article est strictement supérieur à 50 €, il applique 30% de remise.
  • Sinon (c'est-à-dire si le prix est inférieur ou égal à 50 €), il applique 10% de remise.

Votre tâche est de compléter l'algorithme ci-dessous pour qu'il calcule et affiche le prix final Q après réduction, à partir d'un prix initial P. Pensez aux coefficients multiplicateurs !

Algorithme CalculRemise
  Variables
    P, Q : Réels
  Début
    Ecrire("Saisir le prix avant réduction :")
    Lire(P)

    Si ................... Alors
      Q ← ...................
    Sinon
      Q ← ...................
    FinSi

    Ecrire("Le prix après réduction est : ", Q)
  Fin

Prenez quelques minutes pour remplir les pointillés en vous basant sur l'énoncé et sur ce que nous avons appris sur les pourcentages.


Une fois que vous avez une solution en tête, vous pouvez la vérifier avec la correction détaillée.

Algorithmes (3) Instruction conditionnelle

Pour vérifier votre solution et approfondir la logique des calculs de pourcentage, consultez la correction de cet exercice dans le document suivant.

Dans le document, trouvez la section de correction nommée "2. Algorithme de calcul d’un prix après réduction". Lisez l'algorithme corrigé et portez une attention particulière au paragraphe "Explication" qui justifie l'utilisation des coefficients 0,7 et 0,9.

Voici l'algorithme complet :

Algorithme CalculRemise
  Variables
    P, Q : Réels
  Début
    Ecrire("Saisir le prix avant réduction :")
    Lire(P)

    Si P > 50 Alors
      Q ← P * 0.7  // Application de la remise de 30%
    Sinon
      Q ← P * 0.9  // Application de la remise de 10%
    FinSi

    Ecrire("Le prix après réduction est : ", Q)
  Fin

Traçons-le manuellement :

  • Si l'utilisateur saisit P = 100 :

    1. La condition 100 > 50 est vraie.
    2. L'algorithme exécute Q ← 100 * 0.7, donc Q prend la valeur 70.
    3. Il affiche "Le prix après réduction est : 70".
  • Si l'utilisateur saisit P = 40 :

    1. La condition 40 > 50 est fausse.
    2. L'algorithme exécute le bloc Sinon : Q ← 40 * 0.9, donc Q prend la valeur 36.
    3. Il affiche "Le prix après réduction est : 36".

L'algorithme fonctionne parfaitement !


Conclusion

Félicitations ! Vous avez terminé le module sur les structures de contrôle conditionnelles. Vous êtes maintenant capable d'utiliser la logique Si...Alors...Sinon pour résoudre une grande variété de problèmes, qu'ils impliquent de faire des choix, de vérifier des règles complexes ou, comme aujourd'hui, d'effectuer des calculs différents selon la situation.

Points clés à retenir :

  • Les structures conditionnelles sont fondamentales pour exécuter différentes formules de calcul en fonction des données d'entrée.
  • Traduire des pourcentages en coefficients multiplicateurs (Prix * (1 - t/100)) est une technique efficace et courante pour gérer les remises ou les taxes.
  • Un algorithme bien structuré sépare clairement la condition (le Si) de l'action de calcul (l'affectation dans le Alors ou le Sinon).

Et après ?

Nous avons maîtrisé les instructions qui s'exécutent de haut en bas (séquentielles) et celles qui créent des embranchements (conditionnelles). Mais que faire si nous devons répéter une action des centaines de fois ? C'est le sujet de notre prochain module : les structures de contrôle répétitives, plus connues sous le nom de boucles. Dans la prochaine leçon, nous découvrirons la boucle Pour, un outil puissant pour répéter une action un nombre de fois bien défini.