0% ont trouvé ce document utile (0 vote)
34 vues5 pages

Structures conditionnelles en algorithmique

Le document décrit les structures conditionnelles en algorithmique, notamment les tests et instructions conditionnelles qui permettent d'exécuter des séquences d'instructions différentes selon qu'une condition est vraie ou fausse.

Transféré par

Oussema Gassoumi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues5 pages

Structures conditionnelles en algorithmique

Le document décrit les structures conditionnelles en algorithmique, notamment les tests et instructions conditionnelles qui permettent d'exécuter des séquences d'instructions différentes selon qu'une condition est vraie ou fausse.

Transféré par

Oussema Gassoumi
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Besoin a des concepts de

ruptures de séquence
Algorithmique Algorithme
 Rare les algorithme qui peuvent se
Calcul_Aire décrire uniquement par un
Constantes enchaînement séquentiel d’opération
élémentaire
Pi = 3,14159
Variables
 On a besoin a des concept de rupture de
Rayon, Surface : réels
Chapitre 2 - Les structures
séquence comme les test et les boucles
Début Ex :
Conditionnelles écrire (" donner rayon")
lire (Rayon)
 un algorithme qui affiche un nombre s’il
est positif ou négatif
 un algorithme qui résout une équation
Surface  Pi * (Rayon)^2
de deuxième degré
écrire (Surface)
Fin

39 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 40

Tests: instructions conditionnelles (1) Tests: instructions conditionnelles (2)


 Les instructions conditionnelles servent à n'exécuter une instruction
ou une séquence d'instructions que si une condition est vérifiée
Si
 On utilisera la forme suivante: Si condition alors
instruction ou suite d'instructions1
vrai faux
Sinon Condition?
instruction ou suite d'instructions2
Séquence Séquence
Finsi d’instructions 1 d’instructions 2
• la condition ne peut être que vraie ou fausse
• si la condition est vraie, se sont les instructions1 qui seront exécutées
Suite de l’algorithme
• si la condition est fausse, se sont les instructions2 qui seront exécutées
• la condition peut être une condition simple ou une condition composée de
plusieurs conditions Schéma d’exécution d’une instruction conditionnelle alternative

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 41 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 42
Tests: instructions conditionnelles (3) Tests: instructions conditionnelles (4)
 La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que
la condition est fausse, aucun traitement n'est réalisé Si

• On utilisera dans ce cas la forme simplifiée suivante:


vrai faux
Si condition alors Condition?
instruction ou suite d'instructions1
Séquence
Finsi d’instructions 1

Suite de l’algorithme

Schéma d’exécution d’une instruction conditionnelle simple

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 43 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 44

Exemple (Si…Alors…Sinon) Exercice (tests)


Ecrire un algorithme qui demande un nombre entier à l'utilisateur,
Algorithme AffichagePositif_Negatif
puis qui teste et affiche s'il est divisible par 3
Variable x : réel
Algorithme Divsible_par3
Début
Ecrire (" Entrez un réel : “) Variable n : entier
Lire (x) Début
Ecrire (" Entrez un entier : “)
Si x < 0 alors
Ecrire ("la valeur est négative") Lire (n)
Sinon Si (n mod 3=0) alors
Ecrire ("la valeur est positive") Ecrire (n," est divisible par 3")
Finsi Sinon
Fin Ecrire (n," n'est pas divisible par 3")
Finsi
Fin
2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 45 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 46
Conditions composées Tables de vérité
 Une condition composée est une condition formée de plusieurs C1 C2 C1 ET C2 C1 C2 C1 OU C2
conditions simples reliées par des opérateurs logiques:
VRAI VRAI VRAI VRAI VRAI VRAI
ET, OU, OU exclusif (XOR) et NON
VRAI FAUX FAUX VRAI FAUX VRAI
 Exemples : FAUX VRAI FAUX FAUX VRAI VRAI
• x compris entre 2 et 6 : (x > 2) ET (x < 6) FAUX FAUX FAUX FAUX FAUX FAUX

• n divisible par 3 ou par 2 : (n mod 3=0) OU (n mod 2=0)


C1 C2 C1 XOR C2 C1 NON C1
• deux valeurs et deux seulement sont identiques parmi a, b et c :
VRAI VRAI FAUX VRAI FAUX
(a=b) XOR (a=c) XOR (b=c)
VRAI FAUX VRAI FAUX VRAI
FAUX VRAI VRAI
 L'évaluation d'une condition composée se fait selon des règles
présentées généralement dans ce qu'on appelle tables de vérité FAUX FAUX FAUX

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 47 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 48

Tests imbriqués:
Tests imbriqués exemple Nombre nul, Négatif ou Positif (version 1)
 Les tests peuvent avoir un degré quelconque d'imbrications Variable n : entier
Si condition1 alors Début
Ecrire ("entrez un nombre : ")
Si condition2 alors
Lire (n)
instructionsA Si n < 0 alors
Sinon Ecrire ("Ce nombre est négatif")
instructionsB Sinon
Finsi Si n = 0 alors
Sinon Ecrire ("Ce nombre est nul")
Si condition3 alors Sinon
instructionsC Ecrire ("Ce nombre est positif")
Finsi Finsi
Finsi
Finsi
Fin
2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 49 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 50
Tests imbriqués:
exemple Nombre nul, Négatif ou Positif (version 2) Tests imbriqués: exercice
Variable n : entier
Début Le prix de photocopies dans une reprographie varie selon le
Ecrire ("entrez un nombre : ") nombre demandé: 50 mm la copie pour un nombre de copies
Lire (n) inférieur à 10, 40 mm pour un nombre compris entre 10 et 20 et
Si n < 0 alors Ecrire ("Ce nombre est négatif") 30 mm au-delà.
Finsi
Si n = 0 alors Ecrire ("Ce nombre est nul") Ecrivez un algorithme qui demande à l’utilisateur le nombre de
Finsi photocopies effectuées, qui calcule et affiche le prix à payer
Si n > 0 alors Ecrire ("Ce nombre est positif")
Finsi
Fin
Remarque : dans la version 2 on fait trois tests systématiquement alors que
dans la version 1, si le nombre est négatif on ne fait qu'un seul test
Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer
d'abord les conditions les plus probables (minimiser la complexité)

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 51 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 52

Tests imbriqués: corrigé de l'exercice Tests imbriqués: Exercice 2


Variables copies : entier
prix : réel
Début Écrire l’algorithme du traitement qui calcule le discriminant
Ecrire ("Nombre de photocopies : ") DELTA du second degré AX2 + BX + C et qui, en fonction de
Lire (copies) son signe, calcule et affiche la ou les racines réelles s’ils
Si copies < 10 Alors existent.
prix ← copies*50
Sinon Si copies < 20 Les trois coefficients A, B et C seront saisis au clavier avant
prix ← copies*40 traitement.
Sinon
prix ← copies*30
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix)
Fin

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 53 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 54
Tests imbriqués: corrigé de l'exercice 2 Tests: structure de sélection multiple (1)
Algorithme Equation_second_degre
Variables A, B, C, Delta, X1, X2 : réels  Syntaxe générale
Début
Ecrire ("donner les trois coeficients A, B, C")
Lire (A, B, C) Selon <sélecteur> Faire
Delta ← B^2 – 4*A*C Liste de valeurs 1: <séquence d’instructions 1>
Si (Delta < 0) Alors
Liste de valeurs 2: <séquence d’instructions 2>
Ecrire ("pas de racine réelle") ……
Sinon Liste de valeurs n: <séquence d’instructions n>
Si (Delta > 0) Alors
X1 ← (-B + (delta)^(1/2)) / (2*A) Sinon
X2 ← (-B - (delta)^(1/2)) / (2*A) <Autre séquence d’instructions n>
Ecrire (" les deux racines réelles : ", X1, X2)
Sinon finSelon
X1 ← (-B ) / (2*A)
Ecrire (" une racine réelle : ", X1)  Le sélecteur est une variable ou une expression de type scalaire (le résultat
Finsi
Finsi est un entier ou un caractère).
 La séquence d’instructions numéro i sera exécutée si la valeur du sélecteur
Fin appartient à la ième liste de valeurs

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 55 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 56

Exercice: structure de sélection multiple Exercices


Exercice 1
Ecrire un algorithme qui calcule la somme de quatre nombres du type entier entrés
Écrire un algorithme qui permet de lire un numéro compris au clavier,
entre 1 et 12 et d’afficher le nom du mois correspondant. Si le - En se servant de 5 variables (mémorisation des valeurs entrées)
numéro est en dehors de cet intervalle, un message d’erreur - En se servant de 2 variables (perte des valeurs entrées)
Exercice 2
doit être affiché.
Ecrire un algorithme qui permet d’ajouter une seconde à une heure donnée, l’heure
se composera de trois variables : H pour les heures, M pour les minutes et S pour
les secondes.
Exercice 3
Ecrire un algorithme qui permet de calculer et afficher la valeur d’une expression
formée de deux entiers séparés par un opérateur élémentaire (+, −, *, / ou %) lus a
partir du clavier dans cet ordre (entier 1 puis opérateur puis entier 2).

2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 57 2020/2021 Algorithmique et structure de données ISIMA-1LBC. Enseignant : Soufien GDAIM 58

Vous aimerez peut-être aussi