Cours 3(Algorithmique)
Youssef RACHIDI
[email protected]
2023/2024, Semestre 1
DUT-Inf 1
Les structures
Conditionnelles
2
Structures Séquentielle !!!!!
Besoin a des concepts de ruptures de
séquence
Algorithme division
Variables
Rare les algorithme qui peuvent
A,B : réels se décrire uniquement par un
Début enchaînement séquentiel
d’opération élémentaire
Ecrire (‘’donner le nombre A’’);
Lire (A); On a besoin a des concept de rupture
de séquence comme les test et les
boucles
Ecrire (‘’donner le nombre B’’); Ex :
un algorithme qui résout une
Lire (B); équation de deuxième degré
un algorithme qui calcule une
série numérique
Ecrire (‘’le resultat est : ’’,A/B); Algorithme de division
3
Fin
DUT-Inf 2021/2022
Les structures conditionnelles et les
boucles
Les tests simples : permet de réaliser un choix parmi deux
possibilités (Ex :Booléenne : vrais ou faux)
Les instructions conditionnelles : c’est un concept de
tests multiples, permet de comparer un objet à une série de valeurs, et
exécuter si la condition est vérifier (Ex : recherche des nombres premier
dans une ensemble)
Les itérations : consiste a exécuté un bloc d’instructions un
certain nombre de fois (Ex : calcul d’une suite numérique)
Les boucles conditionnelles : consiste a exécuté un bloc
d’instructions un certain nombre de fois si la condition est vérifier ( Ex :
On veut afficher le 100 premiers nombres :. Tant que i est plus petit que 100,
afficher la valeur de i).
4
DUT-Inf
Tests: instructions conditionnelles (1)
Les instructions conditionnelles servent à n'exécuter une
instruction ou une séquence d'instructions que si une
condition est vérifiée
On utilisera la forme suivante:
Si condition alors
instruction ou suite d'instructions1
Sinon
instruction ou suite d'instructions2
Finsi
◦ La condition ne peut être que vraie ou fausse
◦ Si la condition est vraie, se sont les instructions1 qui seront
exécutées
◦ Si la condition est fausse, se sont les instructions2 qui seront
exécutées
5 ◦ La condition peut être une condition simple ou une condition
composée de plusieurs conditions
DUT-Inf
Structure Conditionnelle simple
La partie Sinon n'est pas obligatoire, quand elle
n'existe pas et que la condition est fausse, aucun
traitement n'est réalisé
◦ On utilisera dans ce cas la forme simplifiée
suivante:
Si condition alors
instruction ou suite
d'instructions1
Fin si
6
DUT-Inf
Algorithme division
Variables
A,B : réels
Début
Ecrire (‘’donner le nombre A’’);
Lire (A);
Ecrire (‘’donner le nombre B’’);
Lire (B);
Si B<> 0 Alors
Ecrire (‘’le resultat est : ’’,A/B);
Fin si
Fin
DUT-Inf 7
Exercice avec condition
simple
Écrire un algorithme qui permet de
calculer le maximum de deux
nombres réels saisies par
l’utilisateur .
NB : utiliser la condition simple
8 12
SI …… ALORS ……
FINSI
2020/2021
Max= 12 8
Algorithme Maximum
Variables
A, B, Max : réels
Début
Ecrire (‘’donner le nombre A’’);
Lire (A);
Ecrire (‘’donner le nombre B’’);
Lire (B);
Max A
Si Max < B Alors
Max B
Fin si
Ecrire (‘’le maximum est : ’’,Max);
Fin
DUT-Inf 9
Exemple (Si…Alors…
Sinon)
Écrire un algorithme qui consiste a
afficher la valeur absolue d’un
nombre réel?
10
DUT-Inf
Exemple (Si…Alors…
Sinon)
Algorithme AffichageValeurAbsolue (version1)
Variable x : réel
Début
Ecrire (" Entrez un réel : ”);
Lire (x);
Si ( x < 0) alors
Ecrire ("la valeur absolue de ", x, "est:",-x);
Sinon
Ecrire ("la valeur absolue de ", x, "est:",x);
Finsi
Fin
11
DUT-Inf
Exemple (Si…Alors)
Écrire un algorithme qui consiste a
afficher la valeur absolue d’un
nombre réel?
Cette fois vous ne devrez pas utilisez
l’instruction(Sinon).
12
DUT-Inf
Exemple (Si…Alors)
Algorithme AffichageValeurAbsolue (version2)
Variable x,y : réel
Début
Ecrire (" Entrez un réel : ”);
Lire (x);
y← x;
Si x < 0 alors
y ← -x;
Finsi
Ecrire ("la valeur absolue de ", x, "est:",y);
Fin
13
DUT-Inf
Exercice (tests)
Ecrire un algorithme qui demande un nombre
entier à l'utilisateur, puis qui teste et affiche s'il est
divisible par 3?
On utilise la forme suivante:
Si condition alors
Instruction 1
Sinon
Instruction 2
Finsi
14
DUT-Inf
Exercice (tests)
Ecrire un algorithme qui demande un nombre entier à
l'utilisateur, puis qui teste et affiche s'il est divisible par
3
Algorithme Divsible_par3
Variable N : entier
Début
Ecrire (" Entrez un entier : ”);
Lire (N);
Si ( N MOD 3 = 0 ) Alors
Ecrire (N," est divisible par 3");
Sinon
Ecrire (N," n'est pas divisible par 3");
Fin si
Fin
15
DUT-Inf
Conditions composées
Une condition composée est une condition formée de
plusieurs conditions simples reliées par des opérateurs
logiques:
ET, OU, OU exclusif (XOR) et NON
Exemples :
◦ x compris entre 2 et 6 : (x > 2) ET (x < 6)
◦ n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)
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é
16
DUT-Inf
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI VRAI
VRAI FAUX VRAI FAUX
FAUX VRAI FAUX VRAI
FAUX FAUX FAUX FAUX
C1 C2 C1 XOR C2
C1 NON C1
VRAI VRAI
VRAI
VRAI FAUX
FAUX
FAUX VRAI
FAUX FAUX
17
DUT-Inf
Tables de vérité
C1 C2 C1 ET C2 C1 C2 C1 OU C2
VRAI VRAI VRAI
VRAI VRAI VRAI
VRAI FAUX FAUX
VRAI FAUX VRAI
FAU VRAI FAUX
X FAUX VRAI VRAI
FAU FAUX FAUX FAUX FAUX FAUX
X
C1 C2 C1 XOR C1 NON C1
C2 VRAI FAUX
VRAI VRAI FAUX FAUX VRAI
VRAI FAUX VRAI
FAUX VRAI VRAI A XOR B = (A ET non B) OU (non A ET B)
18 FAUX FAUX FAUX
DUT-Inf
Tests imbriqués
Les tests peuvent avoir un degré quelconque
d'imbrications
Si condition1 alors
Si condition2 alors
instructionsA
Sinon
instructionsB
Finsi
Sinon
Si condition3 alors
instructionsC
Finsi
19
Finsi
DUT-Inf
Tests imbriqués: exemple (version 1)
Algorithme NegPos
Variables n : entier
Début
Ecrire ("entrez un nombre : ");
Lire (n);
Si (n < 0) alors
Ecrire ("Ce nombre est négatif");
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul");
Sinon
Ecrire ("Ce nombre est positif");
Finsi
Finsi
Fin
20
DUT-Inf
Tests imbriqués: exemple (version 2)
Algorithme NegPos2
Variables n : entier
Début
Ecrire ("entrez un nombre : ");
Lire (n);
Si (n < 0) alors
Ecrire ("Ce nombre est négatif");
Finsi
Si (n = 0) alors
Ecrire ("Ce nombre est nul");
Finsi
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 .
21
Tests imbriqués: exercice
Le prix de photocopies dans une reprographie varie
selon le nombre demandé: 0,5 DH la copie pour un
nombre de copies inférieur à 10 et 0,4 DH pour un
nombre compris entre 10 et 20 et 0,3 DH au-delà.
Ecrivez un algorithme qui demande à
l’utilisateur le nombre de photocopies
effectuées, qui calcule et affiche le
prix à payer ?
22
DUT-Inf
Tests imbriqués: corrigé de l'exercice
Algorithme cop
Variables copies : entier
prix : réel
Début
Ecrire ("Nombre de photocopies : ");
Lire (copies);
Si (copies < 10) alors
prix ← copies*0.5;
Sinon
Si (copies < 20) alors
prix ← copies*0.4;
Sinon
prix ← copies*0.3;
Finsi
Finsi
Ecrire (“Le prix à payer est : ”, prix);
Fin
23
DUT-Inf
Tests imbriqués: Exercice 2
Écrire l’algorithme du traitement qui calcule le
discriminant DELTA d’trinome du second degré AX2 +
BX + C et qui, en fonction de son signe, calcule la ou
les racines réelles du trinome ou afiche, si besoin est
qu’il n’ya pas de racine réelle.
Les trois coefficients A, B et C seront saisis au clavier
avant traitement.
24
DUT-Inf
Tests imbriqués: corrigé de l'exercice 2
Algorithme Equation
Variables A, B, C, Delta, sol1, sol2 : réels
Début
Ecrire (‘’ donner les nombres A, B et C’’);
Lire (A, B, C);
Delta ← B*B – 4*A*C;
Si (Delta < 0) alors
Ecrire ( ’’le trinome n’a pas de racine réelle ’’);
Sinon
Si (Delta > 0) alors
sol1 ← (-B + racine(Delta)) / 2*A;
sol2 ← (-B – racine(Delta)) / 2*A;
Ecrire (‘’le trinome possède deux racines réelles : ‘’, sol1, sol2);
Sinon
sol1 ← -B /(2*A);
Ecrire (‘’ le trinome possède une racine réelle : ‘’, sol1);
Finsi
Finsi
Fin
25
DUT-Inf
Choix multiple
Syntaxe :
Selon …….Que
2020/2021 DUT-Inf 26
2020/2021 DUT-Inf 27