Vous êtes sur la page 1sur 7

Matière : Algorithmes et Structures de Données I

Classes : L _BD_1, L_GLSI_1 ET L_IMM_1


Enseignant responsable : Mr ben Rkaya Moez

CHAPITRE N02

LES STRUCTURES ALTERNATIVES


Contrairement au traitement séquentiel, La structure alternative ou conditionnelle permet
d’exécuter ou non une série d’instructions selon la valeur d’une condition.

La structure Si ... Alors ... FinSi

Cette structure est utilisée si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.

Syntaxe

Si condition Alors

Instruction(s)

FinSi

Exercice : Une grande surface accorde à ses clients, une réduction de 2% pour les
montants d’achat supérieurs à 1500,00dinar.

Ecrire un algorithme permettant de saisir le prix total HT (PTHT) et de calculer le montant


TTC (PTTC) en prenant en compte la remise et la TVA=20%.

Algorithme Calcul_PTTC
Constante TVA = 0.2
Variables
PTHT, PTTC : réel
Début
Ecrire ("Entrez le prix total hors taxe : ")
Lire (PTHT)
Si (PTHT > 1500) Alors
PTHT  PTHT * 0.98
FinSi
PTTC  PTHT + (PTHT * TVA)
Ecrire ("Le prix TTC est ", PTTC)
Fin

La structure Si ... Alors ... Sinon ... FinSi

Page 1 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Une condition est une expression logique ou une variable logique évaluée à Vrai ou Faux.
La condition est évaluée. Si elle est vraie, la série d’instructions1 est exécutée et
l’ensemble d’instructions2 est ignoré, la machine sautera directement à la première
instruction située après le FinSi.

Syntaxe

Si condition Alors

Instruction(s)1

Sinon Instruction(s)2

FinSi

Exercice : Ecrire un algorithme qui affiche si un nombre entier saisi au clavier est pair ou
impair.

Rappel : On dit qu’un nombre entier n est pair si le reste r de la division entière de n par 2
est égale à 0. Sinon il est impair.

Algorithme Parité
// Déclaration des variables
Variables n, r : entiers
Début Ecrire ("Entrez la valeur de n : ")
Lire (n)
// r est le reste de la division entière de n par 2
Si (n Mod 2 # 1) Alors Ecrire (n, " est impair")
Sinon Ecrire (n, " est pair ")
FinSi Fin

Exercice : Ecrire un algorithme qui teste si une note saisie au clavier est comprise entre 0
et 20.

Algorithme TestNote
Variables
Note : réel
Message : Chaîne
Début Ecrire ("Entrer la note : ")
Lire (Note)
Si (Note >= 0 Et Note <= 20) Alors
Message  "La note " , Note , " est correcte"

Page 2 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Sinon
Message  "La note " , Note , " est incorrecte"
Fin Si
Écrire (Message)
Fin

La Structure SI ... Alors ... Sinon SI ... Sinon ... FinSi

L’instruction qui sera exécutée est l’instruction dont la condition est vraie. Si aucune
condition n’a la valeur vraie, c’est l’instruction qui suit le Sinon qui sera exécutée.

Syntaxe

Si condition1 alors

Instructions1

Sinon Si condition2 alors

Instructions2

Sinon Si condition3 alors

Instructions3

…..

Sinon

Instructions

FinSi

Exercice : Ecrire un algorithme qui demande deux nombres m et n à l’utilisateur et


l’informe ensuite si le produit est négatif ou positif. On inclut dans l’algorithme le cas où le
produit peut être nul.

Algorithme Signe_Produit
Variables m, n : entiers
Début
Ecrire (Entrez deux nombres m et n : )"
Lire (m, n)
Si (m = 0 Ou n = 0) Alors
Ecrire ("Le produit est nul")
Sinon Si (m < 0 Et n < 0) Ou (m > 0 Et n > 0) Alors

Page 3 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Ecrire ("Le produit est positif")


Sinon
Ecrire ("Le produit est négatif")
Finsi
Fin

Exercice : Ecrire un algorithme qui permet d’afficher le maximum parmi deux nombres
saisis au clavier.

Algorithme Max
Variables A, B : réel
Début
Ecrire ("Entrez la valeur de A : ")
Lire (A)
Ecrire ("Entrez la valeur de B : ")
Lire (B)
Si (A > B) Alors Ecrire ("Le maximum est ", A)
Sinon SI (A = B) alors
Ecrire ("égalité")
Sinon
Ecrire ("Le maximum est ", B)
FinSi
Fin

Structure à choix multiples

Cette structure conditionnelle permet de choisir le traitement à effectuer en fonction de la


valeur ou de l'intervalle de valeurs d'une variable ou d'une expression.

Syntaxe

Selon sélecteur faire

Valeur1 : action(s)1

Valeur2 : action(s)2

Valeur3 : action(s)3

....

Valeurn : action(s)n

Page 4 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Sinon

action(s)

FinSelon

Lorsque l’ordinateur rencontre cette instruction, il vérifie la valeur de la variable de


sélection (sélecteur) et il la compare aux différentes valeurs. Les valeurs sont évaluées
dans l'ordre, les unes après les autres, et dès qu'une de celle-ci est vérifiée l'action
associée est exécutée. On peut utiliser une instruction Sinon (facultative), dont l'action
sera exécutée si aucune des valeurs évaluées n'a été remplie.

Exercice : Ecrire un algorithme permettant d’afficher le mois en toute lettre selon son
numéro saisi au clavier.

Algorithme Mois
Variables
N : Entier
Début
Ecrire ("Donner le numéro du mois: ")
Lire (N)
Selon N faire
1 : Ecrire ("Janvier")
2 : Ecrire ("Février")
3 : Ecrire ("Mars")
4 : Ecrire ("Avril")
5 : Ecrire ("Mai ")
6 : Ecrire ("Juin")
7 : Ecrire ("Juillet")
8 : Ecrire ("Août")
9 : Ecrire ("Septembre")
10 : Ecrire ("Octobre")
11 : Ecrire ("Novembre")
12 : Ecrire ("Décembre")
Sinon
Ecrire ("Le numéro saisi est incorrecte: ")
FinSelon
Fin

Exercice

Page 5 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Ecrire un algorithme permettant de résoudre dans R une équation du second degré de la


forme ax2+bx+c=0.

Nous supposons que a, b et c sont différents de zéro.

Algorithme equa2d
Var a, b, c, delta : Réel
Début
Ecrire("Entrer la valeur de a(non nulle)=")
Lire(a)
Ecrire("Entrer la valeur de b="),
Lire(b)
Ecrire("Entrer la valeur de c=")
Lire(c)
delta  b^2 – 4*a*c
Si ( delta<0 ) Alors
Ecrire("pas de solution dans R")
Sinon Si ( delta=0 ) Alors
Ecrire("x1 = x2 = ",-b/(2*a))
Sinon
Ecrire("x1 = ",(-b-racine(delta))/(2*a))
Ecrire("x2 = ",(-b+racine(delta))/(2*a))
FinSi Fin.

Exercice

Ecrire un algorithme permettant de simuler une calculatrice à 4 opérations (+, -, *, et /).


Utiliser la structure "selon" pour le choix de l'opération à affecter.

Algorithme calculatrice
Var val1, val2 : Réel
opération: caractère
Début
Ecrire ("Première opérande="),
Lire (val1)
Ecrire ("Opération=")
Lire(opération)
Ecrire("Deuxième opérande=")
Lire (val2)

Page 6 sur 7
Matière : Algorithmes et Structures de Données I
Classes : L _BD_1, L_GLSI_1 ET L_IMM_1
Enseignant responsable : Mr ben Rkaya Moez

Selon opération Faire


"+" : Ecrire ("Résultat =", val1 + val2)
"-" : Ecrire ("Résultat =", val1 - val2)
"*" : Ecrire ("Résultat =", val1 * val2)
"/" : Si (val2 # 0) Alors
Ecrire ("Résultat =", val1 / val2)
Sinon
Ecrire ("Erreur !!! Division par zéro")
FinSi
Sinon
Ecrire ("opérateur erroné…")
FinSi
Fin.

Exercice

Ecrire un algorithme qui lit un caractère au clavier puis affiche s'il s'agit d'une lettre
minuscule, d'une lettre majuscule, d'un chiffre ou d'un caractère spécial.

Algorithme Nature_Caractère
Var c: caractère
Début
Ecrire ("Entrer un caractère="),
Lire(c)
Selon c Faire
"a".."z" : Ecrire ("C'est une lettre minuscule")
"A".."Z" : Ecrire ("C'est une lettre majuscule")
"0".."9" : Ecrire ("C'est un chiffre")
Sinon
Ecrire ("c'est un caractère spécial")
FinSi
Fin.

Page 7 sur 7

Vous aimerez peut-être aussi