Aller au contenu principal
BacInfo

Ch. 03 · Leçon 1

Les structures de contrôle conditionnelles

60 minanalyse · pascal

Ce que vous saurez faire

  • Distinguer les trois formes d'instructions conditionnelles (simple, généralisée, à choix)
  • Écrire la syntaxe d'une structure Si...Alors...Sinon en analyse et en Pascal
  • Utiliser la forme généralisée avec des Sinon Si imbriqués
  • Mettre en œuvre la structure Selon...Faire (Case...Of) avec un sélecteur scalaire
  • Traduire un algorithme conditionnel en programme Pascal complet

id: 33-208-structures-controle-conditionnelles slug: 33-208-structures-controle-conditionnelles titre: Les structures de contrôle conditionnelles chapitre: 3 chapitre_titre: Les structures de contrôle conditionnelles lecon: 1 niveau: 4eme-sci ordre: 1 prerequis: [] duree_estimee_min: 60 mots_cles:

  • conditionnelle
  • si
  • alors
  • sinon
  • selon
  • case
  • if
  • then
  • else
  • pascal langages:
  • analyse
  • pascal objectifs:
  • Distinguer les trois formes d'instructions conditionnelles (simple, généralisée, à choix)
  • Écrire la syntaxe d'une structure Si...Alors...Sinon en analyse et en Pascal
  • Utiliser la forme généralisée avec des Sinon Si imbriqués
  • Mettre en œuvre la structure Selon...Faire (Case...Of) avec un sélecteur scalaire
  • Traduire un algorithme conditionnel en programme Pascal complet status: published source_pdf: 33_208.pdf source_pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12 kind: cours

Les structures de contrôle conditionnelles

I. Définition générale

Il existe trois formes d'instructions conditionnelles :

  • Forme simple (réduite ou alternative)
  • Forme généralisée
  • Forme à choix

Leçon 1 — La structure conditionnelle simple

A. La forme réduite

Vocabulaire et syntaxe

[Init]
Si condition Alors
    Instruction 1
    Instruction 2
    ...
    Instruction N
FinSi

Activité 1 — Racine carrée d'un réel

Écrire un algorithme qui permet de calculer la racine carrée d'un réel x (uniquement si x est positif).

0) Début racine
1) Ecrire("Donner un réel "), lire(x)
2) Si x ≥ 0 alors
       écrire("La racine carrée est = ", racine_carrée(x))
   FinSi
3) Fin racine

Activité 2 — Parité d'un entier (forme réduite)

Écrire un programme qui permet de vérifier la parité d'un entier donné en utilisant la forme simple réduite.

0) Début parité
1) Ecrire("Donner un entier "), lire(n)
2) message ← "Pair"
3) Si n mod 2 ≠ 0 alors
       message ← "impair"
   FinSi
4) Ecrire(n, " est ", message)
5) Fin parité

T.D.O

ObjetType/NatureRôle
nEntierEntier à vérifier (parité)
messagechaîneContient le message à afficher

B. La forme alternative

Vocabulaire et syntaxe

[Init]
Si condition Alors
    Instruction 1 de TR1
    Instruction 2 de TR1
    ...
    Instruction m de TR1
Sinon
    Instruction 1 de TR2
    Instruction 2 de TR2
    ...
    Instruction n de TR2
FinSi

Activité — Parité d'un entier (forme alternative)

0) Début parité2
1) Ecrire("Donner un entier "), lire(n)
2) Si n mod 2 = 0 alors
       écrire("Pair")
   sinon
       écrire("impair")
   FinSi
3) Fin parité

T.D.O

ObjetType/NatureRôle
nEntierEntier à vérifier (parité)

Leçon 2 — La structure conditionnelle généralisée

I. Définition

Vocabulaire et syntaxe

[Init]
Si condition 1 Alors
    Traitement 1
Sinon Si condition 2 Alors
    Traitement 2
Sinon Si condition 3 Alors
    Traitement 3
    ....
Sinon Si condition N-1 Alors
    Traitement N-1
Sinon
    Traitement N
FinSi

Activité — Résolution d'une équation du 1er degré

Écrire un programme qui résout l'équation du premier degré : ax + b = 0.

0) Début Equation
1) Ecrire("Donner a : "), lire(a)
2) Ecrire("Donner b : "), lire(b)
3) Si a ≠ 0 alors
       S ← -b/a
       Ecrire("La solution est ", S)
   sinon
       Si b = 0 alors
           Ecrire("La solution est IR")
       Sinon
           Ecrire("La solution est vide")
       FinSi
   FinSi
4) Fin Equation

T.D.O

ObjetType/natureRôle
a, bRéelParamètres à saisir
SRéelUne solution de l'équation à calculer

Exercice — Décision selon moyenne

Exercice 1
Décision selon la moyenne

Écrire un programme qui permet de saisir une moyenne (moy) puis affiche la décision correspondante :

  • ADMIS si moy >= 10
  • CONTROLE si 9 <= moy < 10
  • REDOUBLE si moy < 9
Voir le corrigé

Pré-analyse

  • But : afficher la décision.
  • Données : moy.
  • Formules : structure Si généralisée sur moy.

Analyse

Nom : Décision
Résultat = Ecrire(message)
message = [] Si moy >= 10 alors message ← "ADMIS"
            Sinon
                Si moy >= 9 alors message ← "CONTROLE"
                Sinon message ← "REDOUBLE"
                FinSi
            FinSi
moy = Donnée("Donner une moyenne ")
Fin Décision

T.D.O

ObjetType/nature
MoyRéel
MessageChaîne de caractère
0) Début décision
1) Écrire("Donner une moyenne"), lire(Moy)
2) Si moy >= 10 alors
       message ← "ADMIS"
   Sinon
       Si moy >= 9 alors
           message ← "CONTROLE"
       Sinon
           message ← "REDOUBLE"
       FinSi
   FinSi
3) Ecrire(message)
4) Fin décision

Exercice — Plusieurs mots dans une chaîne

Exercice 2
Ex5 page 83 — Plusieurs mots ?

Saisir une chaîne de caractères et vérifier si elle est composée de plusieurs mots.

Voir le corrigé
0) Début mots
1) Ecrire("Saisir une chaine de caractère :"), lire(ch)
2) Si pos(" ", ch) = 0 alors
       écrire("un seul mot")
   sinon
       écrire("Plusieurs mots")
   FinSi
3) Fin Mots

T.D.O

ObjetType/NatureRôle
ChchaîneChaîne à saisir

Exercice — Ajouter 5 minutes à une heure

Exercice 3
Ajouter 5 minutes à un temps

Écrire un programme qui permet de saisir un temps (heure et minute), lui ajoute 5 minutes puis l'affiche.

Exemples :

HeureMinuteAprès 5 minutes
102010 : 25
105711 : 02
235500 : 00
Voir le corrigé
0) Début plus5min
1) Ecrire("Heure: "), lire(hh)
2) Ecrire("Minute: "), lire(mm)
3) Si mm < 55 alors
       mm ← mm + 5
   sinon
       Si hh < 23 alors
           hh ← hh + 1
           mm ← mm - 55
       sinon
           hh ← 0
           mm ← mm - 55
       FinSi
   FinSi
4) Ecrire("Après 5 min : ", hh, " :", mm)
5) Fin Plus5min

Leçon 3 — La structure conditionnelle à choix

I. Définition

Vocabulaire et syntaxe

[Init]
Selon sélecteur Faire
    Valeur 1 : Action 1
    Valeur 2 : Action 2-1
               Action 2-2
               Action 2-n
    Valeur 3 : Action 3
    Val4, valeur 6, valeur 8 : Action 4
    Val5, valeur 7, valeur 9 : Action 5
    Valeur 10 .. Valeur 19  : Action 6
    .....
    Valeur N : Action N
Sinon
    Action R
FinSelon

Activité — Saison d'un mois

Écrire un programme qui permet de saisir le n° d'un mois puis affiche la saison correspondante.

MoisSaison
12, 1, 2saison hiver
3, 4, 5saison printemps
6, 7, 8saison été
9, 10, 11saison automne

Exemple : n°mois = 7 → affiche saison été.

0) Début Saison
1) Ecrire("Donner le n° de mois"), lire(mois)
2) Selon mois faire
       12, 1, 2 : M ← "saison hiver"
       3 .. 5   : M ← "saison printemps"
       6 .. 8   : M ← "saison été"
       9 .. 11  : M ← "saison automne"
   sinon
       M ← "Erreur"
   FinSelon
3) Écrire(M)
4) Fin saison

T.D.O

ObjetType/NatureRôle
MoisEntierSaisir le mois
MChaîne de caractèreContient le message à afficher

Exercice — Nature d'une touche

Exercice 4
Exercice 1 page 102 — TOUCHE

Écrire un programme intitulé TOUCHE, qui affiche selon le cas la nature du caractère (consonne, voyelle, chiffre ou symbole) correspondant à une touche saisie.

On considère que le clavier est verrouillé en minuscule.

Voir le corrigé
Program touche;
uses wincrt;
var
    nature : string;
    c : char;
begin
    writeln('Taper une touche');
    readln(c);
    case c of
        'a'..'z', 'A'..'Z' :
            if upcase(c) in ['A', 'E', 'I', 'O', 'U', 'Y'] then
                nature := 'voyelle'
            else
                nature := 'consonne';
        '0'..'9' : nature := 'Chiffre';
    else
        nature := 'symbole';
    end;
    writeln(nature);
end.

Exercice — Nombre de jours d'un mois

Exercice 5
Exercice 7 page 103 — Nombre de jours d'un mois

Écrire un programme qui permet d'afficher le nombre de jours d'un mois donné (en tenant compte des années bissextiles pour février).

Voir le corrigé
0) Début mois
1) Ecrire("Donner le n° de mois"), lire(n)
2) Selon n faire
       1, 3, 5, 7, 8, 10, 12 : nb ← 31
       4, 6, 9, 11           : nb ← 30
       2 : Ecrire("Donner l'année "), lire(a)
           Si (a mod 400 = 0) ou
              ((a mod 4 = 0) et (a mod 100 <> 0))
           alors
               nb ← 29
           sinon
               nb ← 28
           FinSi
   FinSelon
3) Ecrire("Le nombre de jour est ", nb)
4) Fin mois

Application complémentaire — Régulateur de température

Traduction en Pascal d'un algorithme REGULATEUR qui déclenche une alarme si la température sort de l'intervalle [18, 24].

PROGRAM REGULATEUR;
USES WINCRT;
VAR
    Temp : INTEGER;
    Message : STRING;
    Bip : CHAR;
BEGIN
    WRITE('Entrer la valeur de la température : ');
    READLN(Temp);
    Bip := '';
    Message := 'Régulateur non déclenché';
    IF (Temp < 18) OR (Temp > 24) THEN
        BEGIN
            Message := 'Régulateur déclenché';
            Bip := Chr(7);
        END;
    WRITE(Bip, Message);
END.
Vérification des acquis

Quiz : structures conditionnelles

Vérifiez votre maîtrise des structures `Si` et `Selon`.

Quiz (5 questions)

1

Quelle est la différence entre la forme **simple** (`Si … Alors`) et la forme **alternative** (`Si … Alors … Sinon`) ?

2

Dans une instruction `Selon … Faire` (Case en Pascal), l'expression à évaluer doit obligatoirement être :

3

Soit l'algorithme : ``` Si (n mod 2 = 0) et (n > 0) Alors Ecrire("OK") FinSi ``` Pour quelles valeurs de `n` affiche-t-on "OK" ?

4

Quelle structure est la **plus appropriée** pour afficher le nom du jour à partir d'un numéro (1 à 7) ?

5

L'instruction `Si C1 Alors Si C2 Alors A FinSi FinSi` est équivalente à :

Bravo d'être arrivé jusqu'ici. Marquez la leçon terminée pour ancrer le progrès.