Axe : Conditions Sections : Sc. Expérimentales, Mathématiques & Sc. Techniques Conventions 2024-2025

Série N°2 : Les structures conditionnelles

Forme réduite, alternative, généralisée, choix multiples (Selon / match-case) & T.D.O.

Série N°2

Exercice 1 : Racine carrée de la valeur absolue

🟢 Facile Forme réduite

Ecrire un programme qui permet de lire un réel x, puis d'afficher la racine carrée de sa valeur absolue, sans utiliser la fonction prédéfinie abs.

racine(abs(x))
💡 Structure recommandée : Forme réduite
Algorithme
Si condition Alors
  // Traitement
Fin Si
Python
if condition:
    # Traitement
Indice : Modifier le signe du nombre uniquement s'il est négatif avant d'en calculer la racine carrée.

Exercice 2 : Signe d'un nombre

🟢 Facile Forme généralisée
Signe d'un nombre
Signe d'un nombre

Écrire un programme qui affiche si un nombre x donné est :

  • positif, si x > 0
  • négatif, si x < 0
  • nul, si x = 0
💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Traitement 1
Sinon Si condition2 Alors
  // Traitement 2
Sinon
  // Traitement 3
Fin Si
Python
if condition1:
    # Traitement 1
elif condition2:
    # Traitement 2
else:
    # Traitement 3
Indice : Enchaîner les conditions pour distinguer les trois cas possibles (strictement positif, strictly négatif, ou nul).
Donner un nombre ? 27
27 est positif
Donner un nombre ? -6
-6 est négatif

Exercice 3 : Vendeur de poissons

🟢 Facile Forme généralisée
Vendeur de poissons
Vendeur de poissons

Un vendeur de poissons veut calculer le prix de vente de ses marchandises en fonction du prix d'achat :

Prix vente = Prix achat × (1 + gain / 100)

Sachant que :

  • gain = 20% , si 0 ≤ Prix achat < 15
  • gain = 25% , si 15 ≤ Prix achat < 30
  • gain = 35% , si Prix achat ≥ 30

Écrire un programme qui :

  • Saisit le nom du produit np et son prix d'achat pa .
  • Détermine le pourcentage de gain g selon les tranches ci-dessus.
  • Calcule et affiche le prix de vente pv .
💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Traitement 1
Sinon Si condition2 Alors
  // Traitement 2
Sinon
  // Traitement 3
Fin Si
Python
if condition1:
    # Traitement 1
elif condition2:
    # Traitement 2
else:
    # Traitement 3
Indice : Tester le prix d'achat pour fixer le taux de gain avant de procéder au calcul du prix de vente final.
Calcul du prix de vente
Quel est le nom du produit ? Sardines
Quel est le prix d'achat (DT) ? 5
Gain : 20 %
Prix de vente : 6.0 DT
Calcul du prix de vente
Quel est le nom du produit ? Trilia
Quel est le prix d'achat (DT) ? 20
Gain : 25 %
Prix de vente : 25.0 DT

Exercice 4 : Chiffre hexadécimal

🟢 Facile Structure à choix

Ecrire un programme qui permet de saisir un entier n entre 0 et 15 et de le convertir en chiffre hexadécimal (0-9 conservés, 10-15 représentés par A-F).

Chiffres hexadécimaux
Chiffres hexadécimaux
💡 Structure recommandée : Structure à choix
Algorithme
Selon variable
  valeur1, valeur2 : // Traitement 1
  valeur3 .. valeur4 : // Traitement 2
  Sinon : // Traitement par défaut
Fin Selon
Python
match variable:
  case valeur1 | valeur2:
    # Traitement 1
  case var if valeur3 <= var <= valeur4:
    # Traitement 2
  case _:
    # Traitement par défaut
Indice : Associer chaque nombre de 10 à 15 au caractère correspondant ('A' à 'F').

Exercice 5 : Tiny Calculator

🟢 Facile Structure à choix
Tiny calculator
Tiny calculator

Ecrire un programme calculatrice qui permet de saisir deux valeurs réelles a et b , puis un opérateur arithmétique op ( + , - , * , / ) et affiche le résultat de l'opération.

Attention : tester une éventuelle division par zéro.

💡 Structure recommandée : Structure à choix & Forme alternative
Algorithme
Selon opérateur
  "+" : // Addition
  "-" : // Soustraction
  "*" : // Multiplication
  "/" : // Division avec test de zéro
Fin Selon
Python
match op:
  case "+": # Addition
  case "-": # Soustraction
  case "*": # Multiplication
  case "/": # Division (if b != 0)
Indice : Tester si le deuxième opérande est nul avant d'effectuer l'opération de division.

Exercice 6 : Jeu de trois dés

🟡 Moyen Forme généralisée
Jeu de trois dés
Jeu de trois dés

Les combinaisons gagnantes dans un jeu de trois dés sont les suivantes :

  • Trois nombres identiques, on gagne 300 pts
  • Deux nombres identiques ou la somme des trois dés est égale à 6, on gagne 200 pts
  • Au moins un 6, on gagne 50 pts
  • Dans les autres cas, on gagne la somme des trois dés

On demande d'écrire un programme qui :

  • Simule le lancement de trois dés (valeurs aléatoires entre 1 et 6)
  • Affiche la valeur de chaque dé, ainsi que la somme des trois dés
  • Calcule et affiche le nombre de points gagnés
💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Gain maximal (300 pts)
Sinon Si condition2 Alors
  // Gain intermédiaire (200 pts)
Sinon Si condition3 Alors
  // Gain minimal (50 pts)
Sinon
  // Gain standard (Somme)
Fin Si
Python
if condition1:
    # Gain 300 pts
elif condition2:
    # Gain 200 pts
elif condition3:
    # Gain 50 pts
else:
    # Gain somme
Indice : Évaluer les règles de gain dans l'ordre décroissant de leur priorité/valeur.
Dé1 : 6 - Dé2 : 3 - Dé3 : 4
Somme : 13
Vous gagnez 50 pts
Dé1 : 4 - Dé2 : 1 - Dé3 : 2
Somme : 7
Vous gagnez 7 pts

Exercice 7 : Conversion de devise

🟡 Moyen Structure à choix / Généralisée
Conversion de devise
Conversion de devise

On donne les taux de conversion suivants : 1€ = 1.17$ = 3.28 D .

Écrire un programme qui :

  • Saisit le montant à convertir mac .
  • Saisit la devise initiale di ( $ , € ou D ).
  • Saisit la devise requise dr ( $ , € ou D ).
  • Calcule la valeur convertie mc de mac de la devise di vers la devise dr .
  • Affiche le résultat de la conversion mc .
💡 Structure recommandée : Forme généralisée ou Structure à choix
Algorithme
Selon variable
  valeur1, valeur2 : // Traitement 1
  valeur3 .. valeur4 : // Traitement 2
  Sinon : // Traitement par défaut
Fin Selon
Python
match variable:
  case valeur1 | valeur2:
    # Traitement 1
  case _:
    # Traitement par défaut
Indice : Convertir d'abord le montant vers une devise de référence commune (ex: le Dinar), puis effectuer la conversion finale vers la devise de destination.
Montant ? 100
Devise initiale ($/€/D) ? D
Devise requise ($/€/D) ? $
100 D = 35.67 $
Montant ? 100
Devise initiale ($/€/D) ? €
Devise requise ($/€/D) ? $
100 € = 117.0 $

Exercice 8 : Bonhommes de neige

🟡 Moyen Forme alternative
Bonhommes de neige
Bonhommes de neige

Ecrire un programme qui saisit l'hauteur, en cm, des trois bonhommes de neige a , b et c puis affiche s'ils sont ordonnés ou pas.

Note : Les bonhommes de neige peuvent être ordonnés en ordre croissant ou en ordre décroissant.

💡 Structure recommandée : Forme alternative
Algorithme
Si condition Alors
  // Traitement 1 (si Vrai)
Sinon
  // Traitement 2 (si Faux)
Fin Si
Python
if condition:
    # Traitement 1 (si True)
else:
    # Traitement 2 (si False)
Indice : Vérifier si la suite des hauteurs est entièrement croissante OU entièrement décroissante.
Hauteur du Bonhomme 1 ? 3
Hauteur du Bonhomme 2 ? 4
Hauteur du Bonhomme 3 ? 5
Les bonhommes sont ordonnés
Hauteur du Bonhomme 1 ? 3
Hauteur du Bonhomme 2 ? 5
Hauteur du Bonhomme 3 ? 4
Les bonhommes ne sont pas ordonnés

Exercice 9 : La meilleure moyenne

🟡 Moyen Forme généralisée
Meilleure moyenne
La meilleure moyenne

Ecrire un programme qui saisit les notes et les noms de trois élèves, puis affiche le nom de l'élève qui a obtenu la meilleure note .

On suppose que les notes sont deux à deux distinctes.

💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Traitement 1
Sinon Si condition2 Alors
  // Traitement 2
Sinon
  // Traitement 3
Fin Si
Python
if condition1:
    # Traitement 1
elif condition2:
    # Traitement 2
else:
    # Traitement 3
Indice : Comparer la moyenne de chaque élève à celles des deux autres.
Elève 1 ? Eya
Moyenne Eya ? 15.6
Elève 2 ? Rayen
Moyenne Rayen ? 16.0
Elève 3 ? Amira
Moyenne Amira ? 15.5
L'élève Rayen a obtenu la meilleure moyenne
Elève 1 ? Sami
Moyenne Sami ? 17.6
Elève 2 ? Youssef
Moyenne Youssef ? 13.0
Elève 3 ? Abderrazek
Moyenne Abderrazek ? 18.5
L'élève Abderrazek a obtenu la meilleure moyenne

Exercice 10 : Intersection de deux cercles

🟡 Moyen Forme généralisée

Soient deux cercles du plan C1 et C2 de rayons respectifs r1 et r2 , les centres des deux cercles étant à une distance d donnée.

Ces deux cercles :

  • sont confondus , si d = 0 et r1 = r2
  • sont disjoints intérieurement , si d = 0 et r1 ≠ r2
  • sont disjoints intérieurement , si 0 < d < |r1 - r2|
  • sont tangents intérieurement , si d = |r1 - r2|
  • sont sécants , si |r1 - r2| < d < r1 + r2
  • sont tangents extérieurement , si d = r1 + r2
  • sont disjoints extérieurement , si d > r1 + r2
Intersection de deux cercles
Intersection de deux cercles

On demande d'écrire un programme qui saisit les données mentionnées puis affiche la position relative des deux cercles.

💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Traitement 1
Sinon Si condition2 Alors
  // Traitement 2
...
Fin Si
Python
if condition1:
    # Traitement 1
elif condition2:
    # Traitement 2
...
Indice : Comparer la distance d aux expressions |r1 - r2| et r1 + r2 dans l'ordre pour identifier le cas géométrique.
Rayon de C1 ? 6
Rayon de C2 ? 3
Distance entre les centres ? 9
Les deux cercles sont tangents extérieurement
Rayon de C1 ? 10
Rayon de C2 ? 10
Distance entre les centres ? 10
Les cercles se coupent en deux points

Exercice 11 : Garde d'enfants

🔴 Difficile Forme généralisée
Garde enfant
Garde enfant

Une garde d'enfants applique la tarification horaire suivante :

  • 10 DT / heure entre 18h et 20h
  • 15 DT / heure entre 20h et 23h
  • 20 DT / heure entre 23h et 03h
Prix de la garde enfant
Prix de la garde enfant

Écrire un programme qui saisit l'heure d'arrivée d'un enfant et l'heure de départ de ses parents, puis calcule et affiche le montant total à payer.

💡 Structure recommandée : Forme généralisée
Algorithme
Si condition1 Alors
  // Traitement 1
Sinon Si condition2 Alors
  // Traitement 2
Sinon
  // Traitement 3
Fin Si
Python
if condition1:
    # Traitement 1
elif condition2:
    # Traitement 2
else:
    # Traitement 3
Indice : Calculer séparément le nombre d'heures passées dans chaque tranche tarifaire (18h-20h, 20h-23h, 23h-03h) avant de multiplier par les tarifs respectifs.
Heure d'arrivée ? 18
Heure de départ ? 23
Le montant à payer 65 DT
Heure d'arrivée ? 21
Heure de départ ? 0
Le montant à payer 50 DT

Exercice 12 : Date du lendemain

🔴 Difficile Forme alternative & Généralisée

Écrire un programme qui saisit une date sous la forme jj/mm/aaaa , puis calcule et affiche la date du lendemain.

Date du lendemain
Date du lendemain

Rappel du nombre de jours par mois :

Jan Fév Mar Avr Mai Juin Juil Août Sep Oct Nov Déc
31 28 31 30 31 30 31 31 30 31 30 31
💡 Structure recommandée : Forme alternative & Généralisée
Algorithme
Si condition Alors
  // Traitement 1 (Même mois)
Sinon
  // Traitement 2 (Changement de mois/année)
Fin Si
Python
if condition:
    # Même mois
else:
    # Changement mois/année
Indice : Tester si le jour actuel est le dernier jour du mois en cours. Si oui, réinitialiser le jour à 1 et incrémenter le mois (en gérant le passage au 1er janvier de l'année suivante si mois = 12).
Entrer une date (jj/mm/aaaa) ? 31/12/2021
Lendemain = 1 / 1 / 2022
Entrer une date (jj/mm/aaaa) ? 28/02/2021
Lendemain = 1 / 3 / 2021