Vous êtes sur la page 1sur 13

Université Abdelmalek Essaadi

Faculté des Sciences et Techniques de


Tanger

Algorithmique et Programmation 1
Pr. Abdelhamid ZOUHAIR Pr. Aziz MAHBOUB

Intitulé du module Algorithmique et Programmation 1

Etablissement dont relève le module Faculté des Sciences et Techniques de Tanger

Filière Tronc commun: MIP , MIPC

Semestre d’appartenance du module S1

A. U: 2020/2021

Algorithmique et Programmation 1

Chapitre 3 : La sélection en Algorithmique et en


Langage C

1. Sélection avec deux alternatives


2. Sélection avec une seule alternative
3. Imbrication de la Sélection
4. Le choix multiple

1
Algorithme : Les structures

Les structures algorithmiques :


Les opérations élémentaires relatives à la résolution
d’un problème peuvent, en fonction de leur
enchaînement être organisées suivant plusieurs familles
de structures algorithmiques.
Structures linéaires;
Structures alternatives;
Structures de choix;
Structures itératives (ou répétitives ou encore
boucles) (Chapitre 4).
Les structures algorithmiques (structures de contrôle)
permettent d’effectuer des choix.
3

Algorithme : Les structures

Structure linéaire :
La structure linéaire se caractérise par
une suite d’actions à exécuter
successivement dans l’ordre énoncé.
Notation : faire action ;

2
Algorithme : Les structures
Structure alternative :
La structure alternative n’offre que deux issues
possibles à la poursuite de l’algorithme et s’excluant
mutuellement.
Il y a deux types de structures alternatives :
1.une structure alternative réduite: La
structure alternative réduite se distingue par
le fait que seule la situation correspondant à
la validation de la condition entraîne
l’exécution du traitement, l’autre situation
conduisant systématiquement à la sortie de
la structure.
Notation:
Si condition Alors
Action (instruction ou suite d'instructions) ;
Fin Si; 5

Algorithme : Les structures


Structure alternative (suite) :
2. une structure alternative complète: Dans cette structure
l’exécution d’un des deux traitements distincts ne dépend
que du résultat d’un test effectué sur la condition qui peut
être une variable ou un événement ;
Notation :

Si condition Alors
Action V
Sinon
Action F
Fin Si

• Si la condition est vérifiée seul le premier traitement est exécuté ;


• Si la condition n’est pas vérifiée seul le second traitement est exécuté.
6

3
Algorithme : Les structures
Structure alternative : Exemples
Exemple 1: structure alternative réduite

Si âge < 28 Alors


Afficher "Réduction de 50%";
Fin Si

Exemple 2: structure alternative complète

Si âge < 28 Alors


tarif ← 200 Dh;
Sinon
tarif ← 400 Dh;
Fin Si
7

Algorithme : Les structures


Exemple 3:
Algorithme exemple3
{Cet algorithme saisit une valeur entière et affiche son double
si cette donnée est inférieure à un seuil donné.}
constante (SEUIL : entier) ←100;
Variable val : entier;
début
Ecrire("Donnez-moi un entier : ") ;
Lire (val);
si val < SEUIL
alors val ←val ×2;
Fin Si
Ecrire ("Voici la valeur finale : ", val);
Fin
8

4
Algorithme : Les structures
Exemple 4 :
Algorithme exemple4
constante (SEUIL : entier) ←200;
Variable val : entier;
début
Ecrire ("Donnez-moi un entier : ") ;
Lire(val);
si val < SEUIL /*comparaison avec le seuil*/
alors Ecrire ("Voici son double :" , val ×2);
sinon
Ecrire ("Voici la valeur inchangée :" , val);
Fin Si
Fin

Algorithme : Les structures


Tests imbriqués :
Les tests peuvent avoir un degré quelconque d'imbrications
Si condition1 alors
Si condition2 alors
Instructions A
Sinon
Instructions B
Fin si
Sinon
Si condition3 alors
Instructions C
Fin si
Fin Si

10

5
Algorithme : Les structures
Tests imbriqués : Exemple (version 1)
Variable 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") ;
Fin si
Fin Si
Fin
11

Algorithme : Les structures


Tests imbriqués : Exemple (version 2)
Variable n : entier;
Début
Ecrire("entrez un nombre: ");
Lire(n) ;
Si (n < 0) alors Ecrire("Ce nombre est négatif");
Fin si
Si (n = 0) alors Ecrire("Ce nombre est nul");
Fin si
Si (n > 0) alors Ecrire ("Ce nombre est positif");
Fin si
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. 12

6
Algorithme : Les structures
Structure de choix multiple :
La structure de choix permet, en fonction de plusieurs
conditions, d’effectuer des actions différentes suivant
les valeurs que peut prendre une même variable.
Notation :
suivant valeur faire
valeur 1 : action 1 ;
valeur 2 : action 2 ;
:
:
valeur N : action N ;
sinon action N+1 ;
F suivant

13

Algorithme : Les structures


Structure de choix : Exemple
selon abréviation faire
"M":Ecrire( "Monsieur ");
"Mme":Ecrire( "Madame ");
"Mlle": Ecrire( "Mademoiselle ");
autres: Ecrire( "Monsieur, Madame ");

14

7
Instructions de contrôle en Langage C

On appelle instruction de contrôle toute instruction qui


permet de contrôler le fonctionnement d’un programme.
Parmi les instructions de contrôle, on distingue les
instructions conditionnelles et les boucles.

Les instructions conditionnelles dites également Les


structures de contrôles ou de sélection (ou encore de
branchement) permet de choisir l'instruction qui sera
exécutée. Ce choix entre deux ou plusieurs instructions est
conditionné par une expression.

Les instructions conditionnelles permettent de réaliser


des tests, et suivant le résultat de ces tests de déterminer
quelles instructions seront exécutées et dans quel ordre.

15

Langage C : Instructions conditionnelle


Instructions conditionnelle if :
L’opérateur de test s’utilise comme suit :
if (condition) { /* la condition est remplie */
instruction;
autre instruction;
} /* fin des instructions conditionnelles */

Exemple :
int a = 10;
if (a <= 20){
printf("la valeur de a est inférieure à 20 \n");
scanf("%d",&a);
}
Ceci va afficher la ligne « la valeur de a est inférieure à 20" à l’écran
car la condition est remplie. 16

8
Langage C : Instructions conditionnelle

Instructions conditionnelle if (suite if…else):

if (condition) {
instruction 1 ;
} else {
instruction 2 ;
}
/* Si condition est vraie alors l’instruction 1 est exécutée */
/* Sinon, c’est l’instruction 2 qui est exécutée */

Instruction 1 et instruction 2 : instructions quelconques, c’est-à-dire :


• simple (terminée par un point-virgule),
• bloc,
• instruction structurée.
17

Langage C : Instructions conditionnelle

Instructions conditionnelle if (suite if…else):


Exemple :
int a = 10;
if (a > 10)
printf("la valeur de a est strictement supérieure à 10\n");
else
printf("la valeur de a est inférieure ou égale à 10\n");

/* pas d’accolades car il n’y a qu’une instruction */

18

9
Langage C : Instructions conditionnelle

Instructions conditionnelle : Imbrication des instructions if :


if (expression 1) {
instruction 1 ;
} else if (expression 2) {
instruction 2 ;
} else if (expression 3) {
instruction 3 ;
} else {
instruction 4 ; }

/* Souvent, on imbrique les tests les uns dans les autres */

19

Langage C : Instructions conditionnelle

Instructions conditionnelle if :
L’instruction conditionnelle if nous permet d’utiliser les
testes logiques suivants.
If(a==b) /*si a égal b*/
If(a!=b) /*si a différent de b*/
If(a<=b)
If(a>b)
If(a>=b)
If((a>b)&&(c<d))
/*si la 1 ère comparaison ET la 2ème comparaison sont vraies*/
If((a>b)||(c<d))
/*si la 1 ère comparaison OU la 2ème comparaison sont vraies*/
If(!(a>b)) /*si la comparaison est fausse*/
20

10
Langage C : Instructions conditionnelle

Instructions conditionnelle switch :


Syntaxe de l’instruction switch

switch (expression)
{ case constante_1 : [ suite_d’instructions_1 ]
case constante_2 : [ suite_d’instructions_2 ]
..............
case constante_n : [ suite_d’instructions_n ]
[ default : suite_d’instructions ]
}
expression : expression entière quelconque,
constante : expression constante d’un type entier quelconque (char est
accepté car il sera converti en int),
suite_d’instructions : séquence d’instructions quelconques.
Les crochets ( [ et ] ) signifient que ce qu’ils renferment est facultatif.
21

Langage C : Instructions conditionnelle

Instructions conditionnelle switch :


Cette instruction s’utilise quand un entier ou un caractère
prend un nombre fini de valeurs et que chaque valeur
implique une instruction différente.
switch(i) {
case 1 : instruction 1 ; /* si i=1 on exécute l’instruction 1 */
break ; /* et on sort du switch */
case 2 : instruction 2 ; /* si i=2 ... */
break ;
case 10 : instruction 3 ; /* si i=10 ... */
break ;
default : instruction 4 ; /* pour les autres valeurs de i */
break ;
}
22

11
Langage C : Instructions de contrôle

Instructions conditionnelle switch:


Le bloc default n’est pas obligatoire.
L’instruction switch correspond à une cascade d’instruction if…else.
Remarque : on peut ne pas mettre les break ; dans les blocs
d’instructions. Mais alors on ne sort pas du switch, et on exécute
toutes les instructions des case suivants, jusqu’à rencontrer un
break ;.
Si on reprend l’exemple précédent en enlevant tous les break,
alors:
si i=1 on exécute les instructions 1, 2, 3 et 4;
si i=2 on exécute les instructions 2, 3 et 4;
si i=10 on exécute les instructions 3 et 4;
pour toutes les autres valeurs de i, on n’exécute que l’instruction 4.

23

Langage C : Instructions de contrôle

Instructions conditionnelle switch: Exemple


#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=1;
switch(i) {
case 1 : printf("Premier\n"); break;
case 2 : printf("Deuxième\n"); break;
case 3 : printf("Troisième\n"); break;
default : printf("erroné\n"); break;
}}
24

12
Références Bibliographique

1. MAHBOUB Aziz, «Algorithmique et Programmation 1 », Tronc commun : MIP, MIPC,


FST de Tanger, Année Universitaire : 2019/2020.
2. A. El Mhouti, «Algorithmique et Programmation 1 », Tronc commun : MIP, FST
AL’Hocima.
3. Cours Algorithmes de base, julien brajard et maria potop-butucaru,
Polytech’Sorbonne, 2018-2019.
4. Stéphane Derrode, Programmation Structurée en Langage C, École Centrale
Marseille, Révision 2.5, 2006.
5. Claude Delannoy, Programmer en langage C, 5e édition, ÉDITIONS EYROLLES,
2009.
6. Sup Info, international university, Langage C Essentiel, 2008.
7. …

25

13

Vous aimerez peut-être aussi