0% ont trouvé ce document utile (0 vote)
21 vues85 pages

Cours Algorithmique FAIF

Le document présente un cours d'introduction à l'algorithmique dispensé par Mohamed Kouissi à l'Université Abdelmalek Essaâdi. Il couvre les concepts fondamentaux de l'algorithmique, l'implémentation en Python, et les étapes de réalisation d'un programme, tout en abordant les systèmes d'information, les langages de programmation et les caractéristiques des algorithmes. Les étudiants apprendront à écrire des algorithmes pour résoudre des problèmes et développer une pensée logique.

Transféré par

saadlemrateh6
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)
21 vues85 pages

Cours Algorithmique FAIF

Le document présente un cours d'introduction à l'algorithmique dispensé par Mohamed Kouissi à l'Université Abdelmalek Essaâdi. Il couvre les concepts fondamentaux de l'algorithmique, l'implémentation en Python, et les étapes de réalisation d'un programme, tout en abordant les systèmes d'information, les langages de programmation et les caractéristiques des algorithmes. Les étudiants apprendront à écrire des algorithmes pour résoudre des problèmes et développer une pensée logique.

Transféré par

saadlemrateh6
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

Université Abdelmalek Essaâdi Module : Introduction à l’Algorithmique

Faculté Polydisciplinaire – Larache Master d'excellence: (FAIF)

Introduction à l’Algorithmique

Mohamed KOUISSI
[Link]@[Link]

Année Universitaire : 2024/2025


2
À la fin de ce cours, vous serez capable de :

1 2
COMPRENDRE LES CONCEPTS DE BASE DE
L’ALGORITHMIQUE 4
IMPLÉMENTATION PRATIQUE EN PYTHON

2 SAVOIR ÉCRIRE DES ALGORITHMES POUR


RÉSOUDRE DES PROBLÈMES 5 DÉVELOPPER UNE PENSÉE LOGIQUE

4
3 ANALYSE ET MODÉLISATION DE
PROBLÈMES 6 CRÉATIVITÉ ET PENSÉE CRITIQUE

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
3
Plan Général

Généralités

Introduction et Notions de base

Structures alternatives

Structures répétitives

Les tableaux

Fonctions et procédures

Programmation en Python
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
4
Chapitre 1: Généralités

Systèmes d’information
Definitions :
- Un système d'information (SI) est un ensemble structuré de ressources
(humaines, matérielles, logicielles, données et procédures) qui permet de
collecter, traiter, stocker et diffuser l’information au sein d'une organisation.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
5
Chapitre 1: Généralités

Système Informatique
Applications
Definitions : (Word, Excel, PowerPoint, etc.)
Langages
- Un Système informatique utilise des (Java, C/C++, Python, etc.)
techniques du traitement automatique de Système d’exploitation
(MacOS, Windows, Unix, etc.)
l’information au moyen des ordinateurs.
Matériel
(PC, Mac, IPad, Tablette, SmartPhone…)

Système informatique = Ordinateur + Périphériques

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
6
Chapitre 1: Généralités

Matériel: Principaux éléments

- CPU (Central Processing Unit) : Unité centrale de traitement, est un composant qui
exécute les instructions machine des programmes informatiques.
- RAM (Random Access Memory) : Mémoire vive est la mémoire informatique dans
laquelle sont stockées les informations (données, instructions ..) traitées par
l’ordinateur.
- HDD (Hard Disk Drive) : Un Disque Dur est une mémoire de masse magnétique utilisée
principalement pour stocker de grandes quantités de données.
- Périphériques Entrée (Input) : Servent à fournir des informations au système
informatique tel que le clavier, souris, scanner, micro, webcam ...
- Périphériques Sortie (Output) : servent à faire sortir des informations de système
informatique à l’utilisateur (Écran, imprimante, haut-parleur ..)

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
7
Chapitre 1: Généralités

Qu’est-ce qu’un programme d’ordinateur ?

- Pour faire marcher un ordinateur, il faut lui fournir un programme .


Ordinateur = matériel + programme(s)
- Un programme est une suite d’instructions d’ordinateur.
- Une Instruction est un ordre compris par l’ordinateur et qui lui fait exécuter une
action, c-à-d. Une modification de son environnement.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
8
Chapitre 1: Généralités

Qu’est ce qu’un système d’exploitation ?

- Ensemble de programmes qui gèrent le matériel et contrôlent les applications.


- Gestion de périphériques : Affichage à l'écran, lecture de clavier, pilotage d’une
imprimante ..

- Gestion des utilisateurs et de leurs données : Comptes, Partage des ressources, gestion
des fichiers et répertoires ..

- Interface avec l’utilisateur (textuelle ou Graphique) : Interprétation des commandes, ..

- Contrôle des programmes : gestion/découpage des tâches, Partage du temps


processeur, Control d'accès.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
9
Chapitre 1: Généralités

Langages informatiques ?

❑ Un langage informatique est un outil permettant de donner des ordres (instructions)


à la machine.
• A chaque instruction correspond une action du processeur

❑ Intérêt : écrire des programmes (suite consécutive d’instructions) destinés à


effectuer une tâche donnée.
• Exemple: un programme de gestion de comptes bancaires.

❑ Contrainte: être compréhensible par la machine.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
10
Chapitre 1: Généralités

Langages de programmation ?

Les langages de programmation sont des outils utilisés pour écrire des
instructions que les ordinateurs peuvent exécuter. Ils permettent aux
développeurs de donner des ordres aux machines et de créer des logiciels,
des applications web, des jeux, des systèmes d’exploitation, et bien d’autres
types de programme.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
11
Chapitre 1: Généralités

Etapes de réalisation d’un programme

Énoncé non précis : Problème informel

Spécification
Énoncé précis : Problème formel

Analyse
Algorithme
Programmation
Langage de programmation : C, JAVA,..

Compilation
Exécutable du programme

Exécution
Résultat

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
12
Chapitre 1: Généralités

Pourquoi apprendre l’algorithmique

❑ Un algorithme est une description complète et détaillée des actions à


effectuer et de leur séquencement pour arriver à un résultat donné

▪ Intérêt: séparation analyse/codage (pas de préoccupation de syntaxe) l’algorithmique exprime


les instructions résolvant un problème donné indépendamment des particularités de tel ou tel
langage.
▪ Qualités: exact (fournit le résultat souhaité), efficace (temps d’exécution, mémoire occupée),
clair (compréhensible), général (traite le plus grand nombre de cas possibles).

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
13

Chapitre 2: Introduction et Notions de base

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
14
Chapitre 2: Introduction et Notions de base

Introduction

2*x + 3 = 0 10*x - 1= 0

0*x + 0 = 0 0*x + 3 = 0

?? a*x + b = 0 ??

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
15
Chapitre 2: Introduction et Notions de base

Introduction

Données a, b, c

Calcule de ∆

Algorithme Si ∆>0 Si ∆=0 Si ∆<0

Résultats X1, X2 X1 Ø

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
16
Chapitre 2: Introduction et Notions de base

Introduction

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
17
Chapitre 2: Introduction et Notions de base

Introduction
❑ Traitement de donnés:

Traitement
Données Résultats

▪ Méthode systématique pour résoudre un problème mathématique : résolution


d’une équation….
▪ Recette de cuisine : réalisation d’ un gâteau….

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
18
Chapitre 2: Introduction et Notions de base

Introduction : Algorithme
❑ C’est une liste d’opérations à effectuer permettant de réaliser un travail pour résoudre
un problème.
❑ C’est un pseudo-langage qui est conçu pour résoudre les problèmes et applications
sans aucune contrainte due aux langages de programmation et aux spécificités de la
machine.
❑ Ce pseudo-langage sera ensuite traduit et codé dans le langage de programmation
désiré.
❑ Le terme algorithme/algorithmique vient du nom du mathématicien Al Khawarizmi
(820 après J.C.).
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
19
Chapitre 2: Introduction et Notions de base

Introduction
Exemple : Résolution d’équation du second degré ; ax2+bx+c=0
algorithme equa2degre ;
début
Connaître les valeurs de a, b et c
Calculer le discriminant = b2 - 4ac
Si  < 0 alors pas de solution réelle
Si  = 0 alors une seule solution : x = -b / 2a
Si  > 0 alors deux solutions :
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
20
Chapitre 2: Introduction et Notions de base

Caractéristiques d’un Algorithme


❑ Il n’existe pas de méthode pour écrire un algorithme.

❑ La réalisation d’un algorithme est un acte créatif.

❑ Un même problème peut être résolu au moyen de plusieurs algorithmes.

❑ Un algorithme doit donner les mêmes résultats pour les mêmes données.

❑ Un algorithme est transcrit à l’aide d’un langage de programmation pour réaliser un

programme exécutable sur une machine (Ordinateur, Smartphone, Tablette, etc…).

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
21
Chapitre 2: Introduction et Notions de base

Structure générale d’un algorithme

Entête : Pour identifier l’algorithme


Mot-clé : Algorithme Titre du Problème

✓ Déclaration des Constantes


Déclaration ✓ Déclaration des Variables
✓ Déclaration des Tableaux
✓ Déclaration des Procédures et Fonctions

Début
Corps
Actions (Instruction1, Instruction2, etc…)
FIN

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
22
Chapitre 2: Introduction et Notions de base

Structure générale d’un algorithme

Question à se poser
❑ Quelles sont les données dont on dispose ?

❑ Quelles sont les résultats que l’on doit obtenir ?

❑ Comment obtenir ces résultats ?

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
23
Chapitre 2: Introduction et Notions de base

Structure générale d’un algorithme

Démarche à suivre pour résoudre un problème donné

❑ Identifier les données du départ (entrées) et celle(s) qu’il faut obtenir (sorties).

❑ Structurer les données (variables ou constantes, type...).

❑ Réfléchir pour déterminer les action nécessaires à l’obtention des résultats.

❑ Présenter les résultats.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
24
Chapitre 2: Introduction et Notions de base

Types de base
Entier : Pour caractériser des nombres entiers positifs et négatifs

Réel : Pour caractériser des nombres réels positifs et négatifs

Caractère : ’A’, ’b’, ’#’, ’@’, ’ ?’, ... (lettres, signes de ponctuation, ... etc).

Caractère[N] : Tableau ou Chaîne de caractères constituée de N caractères.


Exemple : Variable x : Caractère[7] ;
x "Bonjour" ;

Booléen : Vrai ou faux (0 ou 1)

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
25
Chapitre 2: Introduction et Notions de base

Types de base

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
26
Chapitre 2: Introduction et Notions de base

Les variables

Définition :
Ce sont des références (adresses mémoires) où vont être stockées des valeurs
variables. Les différentes valeurs d’une référence vont appartenir au type de
données auquel appartient la référence.

Le nom d’une variable  suite de caractères qui permet d’identifier la variable d’une
manière unique dans un algorithme.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
27
Chapitre 2: Introduction et Notions de base

Les variables

Autrement dit :
La quasi-totalité des problèmes nécessitent pour leur résolution un espace mémoire
auxiliaire pour sauvegarder des données et aussi sur lequel sont exécutés des calculs
intermédiaires.

Pour gérer de façon simple et lisible cet espace mémoire, on utilise des variables.

Ainsi, derrière toute variable, se trouve un espace mémoire dont on peut modifier le
contenu, c'est-à-dire dont on peut stocker une valeur.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
28
Chapitre 2: Introduction et Notions de base

Les variables
Syntaxe de la déclaration :

Variable variable1, variable2,… : Type

Exemple :
Variable a,b : Entier

a et b sont, par exemple, les coefficients de l’équation : ax + b = 0

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
29
Chapitre 2: Introduction et Notions de base

Les variables

Type Réel:

Variable variable1, variable2,… : Réel

Exemple :
Variable x, y: Réel

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
30
Chapitre 2: Introduction et Notions de base

Les variables

Chaîne de caractères :

Variable variable1, variable2,… : Caractère

Exemple :
Variable Nom, Prenom : Caractère

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
31
Chapitre 2: Introduction et Notions de base

Les variables

Booléen :

Variable variable1, variable2,… : Booléen

Exemple :
Variable ModuleIsValide: Booléen

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
32
Chapitre 2: Introduction et Notions de base

Les variables

Syntaxe de la déclaration :
On peut initialiser les variables déclarées.

Exemple : variable x : entier = 7 ;

La déclaration de plusieurs variables de même type peut se faire sur une seule ligne.
Exemple : variables a, b, x : réel ;

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
33
Chapitre 2: Introduction et Notions de base

Les constantes

Les Constantes désignent des références à des valeurs invariantes dans le


programme.
Syntaxe de la déclaration :

Constante Nom_Constante = Valeur

Exemple :
Constante TVA = 20%

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
34
Chapitre 2: Introduction et Notions de base

Syntaxe de la déclaration
Le choix des noms de variables est soumis à quelques règles qui varient selon le langage, en
général le nom d’une variable doit :
❑ Commencer par une lettre alphabétique
❑ Etre constitué uniquement de lettres, de chiffres et du soulignement _ .
❑ Etre différent des mots réservés du langage
❑ Avoir une longueur inférieure à la taille maximale spécifiée par le langage utilisé

Déclarations valides : TVA, TotalVentes, Prix_TTC, Prix_HT


Déclarations invalides : 2019MIPC, moy Generale, moy-Generale

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
35
Chapitre 2: Introduction et Notions de base

Les opérateurs
Opérateur Opérateur en algorithmique Signification
+, –, x, / +, –, *, div Addition, Soustraction, Multiplication, Division

[] mod Le reste de la division


xy x^y La puissance
<, > <, > Strictement inférieur, supérieur
≤, ≥ <= , >= Inférieur ou égal, supérieur ou égal
=,≠ =, < > Egal, Différent
P^Q P et Q Le ET logique
PvQ P ou Q Le OU logique
┐P Non P La négation

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
36
Chapitre 2: Introduction et Notions de base

Les opérateurs
Priorité des opérateurs:

❑ La multiplication et la division sont prioritaires par rapport à l’addition et la soustraction.

❑ Pour les opérateurs arithmétiques donnés ci-dessus, l'ordre de priorité est le suivant (du
plus prioritaire au moins prioritaire) :
▪^ : (élévation à la puissance)
▪ * , / (multiplication, division)
▪% (modulo)
▪+ , - (addition, soustraction)
Par exemple: 12 * 3 + 5

❑ En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à
effectuer en priorité.
Par exemple: 12 * (3 + 5)
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
37
Chapitre 2: Introduction et Notions de base

Affectation

L’affectation : consiste à attribuer une valeur à une variable. Ça peut lui donner une
première valeur ou changer sa valeur courante.

➢ En pseudo-code, l'affectation se note avec le signe ←

Variable ← Expression : attribue la valeur de l’expression à la variable

La variable Variable reçoit la valeur de Expression.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
38
Chapitre 2: Introduction et Notions de base

Affectation

Expression peut être :

une constante. x 7;
une autre variable. x y;
un calcul portant sur différents éléments. delta (b*b)–(4*a*c) ;
le résultat d'une fonction. y pow(x,3) ;

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
39
Chapitre 2: Introduction et Notions de base

Lecture / Ecriture

❑ Un algorithme offre la possibilité d’interaction avec le système. Il peut afficher


un résultat ou bien demander à l’utilisateur de saisir une information afin de la
stocker dans une variable.
❑ Pour assurer la communication ente le système et les données venant de
l’extérieur en utilise les instructions de lecture et d’écriture.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
40
Chapitre 2: Introduction et Notions de base

Lecture / Ecriture

❑ Ecriture : C’est une instruction qui consiste à afficher des informations à l’écran
❑ La syntaxe de l’instruction d’écriture est la suivante :
Écrire (Variable ou ‘ Message’ )

➢ Écrire (‘Saisissez la valeur de x ‘)


Exemples :
➢ Écrire (‘ Saisissez la valeur de y ’)
➢ Écrire (‘ Saisissez les valeurs de x et y ’)
➢ Écrire (‘Le résultat trouvé est s:’, s )
➢ Écrire (s)
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
41
Chapitre 2: Introduction et Notions de base

Lecture / Ecriture

❑ Lecture: C’est une instruction qui consiste à prendre des informations depuis les
périphérique d’entrée. La syntaxe de l’instruction de lecture est la suivante :
Lire (Variable)

Écrire (‘Saisissez la valeur de x ‘)


Exemples :
Lire(x)
Cette instruction permet de stocker la valeur entrée au clavier dans la zone
mémoire réservée pour la variable x.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
42
Chapitre 2: Introduction et Notions de base

Lecture / Ecriture

Exemple :
x 2024 ;
Écrire (« Bonjour à vous TOUS…");
Écrire ("La valeur de x est : ",x);
Écrire ("Entrer la valeur de y :");
Lire (y);
Écrire ("y vaut : ",y);

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
43
Chapitre 2: Introduction et Notions de base

Exercice 1
❑ Ecrire un algorithme qui permet de saisir votre nom puis votre prénom et qui affiche ensuite votre
nom complet (Nom et Prénom).

Algorithme AfficherNomPrenom
variables Nom, Prenom, Nom_Complet : chaîne de caractères
Début
écrire("entrez votre nom")
lire(Nom)
écrire("entrez votre prénom")
lire(Prenom)
Nom_Complet ← Nom + Prenom
écrire("Votre nom complet est : ", Nom_Complet)
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
44
Chapitre 2: Introduction et Notions de base

Exercice 2
Le surveillant général d’un établissement scolaire souhaite qu’on lui écrit un programme
qui calcule, pour chaque élève, la moyenne des notes des cinq matières. Ces matières
sont avec leur coefficient :

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
45
Chapitre 2: Introduction et Notions de base

Solution 2 Solution (Exercice 2):


Algorithme AlgoMoyenne
variables Maths, Phy, Ang, Fran , Geog , Moyenne: Réel
Début
Ecrire ("Entrer la note de maths: ")
Lire (Maths)
Ecrire ("Entrer la note de physique: ")
Lire (Phy)
Ecrire ("Entrer la note d’anglais: ")
Lire (Ang)
Ecrire ("Entrer la note de français: ")
Lire (Fran)
Ecrire ("Entrer la note de géographie: ")
Lire (Geog)
Moyenne ← ((Math+Phy)*5+ (Ang+Geog)*2+Fran*4)/18
Ecrire (" La moyenne est : ", Moyenne)
Fin
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
46

Chapitre 3: Structures alternatives

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
47
Chapitre 3: Structures alternatives

Les conditions simples

❑ Une condition simple consiste en une comparaison entre deux


expressions du même type.

❑ Cette comparaison s'effectue avec des opérateurs de comparaison.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
48
Chapitre 3: Structures alternatives

Les conditions simples

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
49
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)

❑ Une condition composée est une condition formée de plusieurs


conditions simples reliées par des opérateurs logiques:

ET, OU, et NON

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
50
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)

❑ Condition composée reliée par ET:


▪ Syntaxe: condition1 ET condition2

❑ Explication: Pour que la condition complexe (condition1 ET condition2)


soit VRAI, il faut impérativement que la condition1 soit VRAI et que la
condition2 soit VRAI
❑ Exemple : Module Validé => Note >= 10 ET Note <= 20

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
51
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)


❑ Condition composée reliée par OU:
Syntaxe: condition1 OU condition2
❑ Explication: Pour que la condition complexe (condition1 OU
condition2) soit VRAI, il suffit que condition1 soit VRAI ou condition2
soit VRAI. Il est à noter que cette condition complexe sera VRAI si
condition1 et condition2 sont VRAI.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
52
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)


❑ Condition composée et l’opérateur NON:
Syntaxe: NON (condition)
❑ Explication: Pour que la condition complexe NON (condition) soit VRAI, il
faut que la condition soit FAUX et elle sera FAUX si condition est VRAI.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
53
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)


❑ Généralement, les opérateurs logiques peuvent porter, non seulement
sur des conditions simples, mais aussi sur des conditions complexes.
❑ L'usage de parenthèses permet dans de tels cas de régler d'éventuels
problèmes de priorité.
❑ Par exemple, la condition :
(a < 0 ET b > 1) OU (a > 0 ET b > 3)
est VRAI si l'une au moins des conditions entre parenthèses est VRAI.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
54
Chapitre 3: Structures alternatives

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
FAUX VRAI FAUX FAUX VRAI VRAI
FAUX FAUX FAUX FAUX FAUX FAUX

C1 NON C1
VRAI FAUX
FAUX VRAI

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
55
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)

❑ Exemples :
• x compris entre 10 ET 20 => (x > 10) ET (x < 20)

• n différent de Zéro OU divisible par 2 => (n <> 0) OU (n%2=0)

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
56
Chapitre 3: Structures alternatives

Les conditions complexes (ou composées)

Expression Résultat
(4 <7) ET (9>0) Vrai

(1 < 0) OU (1<>1) Faux

(0 > -1) OU (1 > 0) Vrai

Non(13.4 < 15) Faux

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
57
Chapitre 3: Structures alternatives

Structures alternatives ou conditionnelles


Les instructions conditionnelles servent à exécuter une instruction ou une séquence
d’instructions que si une condition soit vérifiée
Syntaxe :
Si [condition] Alors
[instructions1 ..]
Sinon
[instructions2 ..]
Finsi

• [condition] ne peut être que VRAI ou FAUX.


• Si la [condition] est VRAI, se sont les [instructions1..] qui seront exécutées.
• Si la [condition] est FAUX, se sont les [instructions2..] qui seront exécutées.
• [condition] peut être une condition simple ou une condition complexe.
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
58
Chapitre 3: Structures alternatives

Structures alternatives ou conditionnelles


Algorithme AfficherNatureValeur
Variable a : réel
Début
Écrire(“ Entrez une valeur : ”)
Lire(a)
Si a < 0 Alors
écrire(“valeur négative”)
Sinon
écrire(“valeur positive”)
Finsi
Fin
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
59
Chapitre 3: Structures alternatives

Structures alternatives ou conditionnelles

❑ La structure alternative peut prendre une autre forme possible ou l’une des
parties des choix est absente. Dans ce cas, la partie “Sinon” n’est pas
obligatoire. On utilisera la forme simplifiée suivante :

Si [condition] alors
[Instructions ..]
Finsi

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
60
Chapitre 3: Structures alternatives

Structures alternatives ou conditionnelles


❑ Une structure alternative peut contenir a son tour une autre structure alternative.
Dans ce cas, on dit qu’on a des structures alternatives imbriquées les une dans les
autres.
Si [condition1] alors
Si [condition2] alors
[instructionA]
Sinon
[instructionB]
Finsi
Sinon
Si [condition3] alors
[instructionC]
Finsi
Finsi
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
61
Exercices

1 - Donner les valeurs des variables A et B après exécution du programme


suivant :

A 10 ;
B 10;
A A+B ;
B A-B ;
A A-B ;

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
62
Exercices

1- Écrire l’algorithme qui permet de déterminer le salaire mensuel d’un commercial


sachant que ce salaire comporte un montant fixe de 3000 DHS et une commission qui
représente 10% du chiffre d’affaire réalisé par mois.

2- Ecrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA en %, et qui fournit le prix total TTC correspondant.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
63
Exercices

Solutions
1.
Algorithme: Salaire
Constante M = 3000
Variable CA : Entier * Donnée d’entrée *
Variable COM : Réel * Donnée intermédiaire *
Variable SAL : Réel * Donnée de sortie *

DEBUT
Écrire (’Entrer le CA mensuel en DHS ' )
Lire(CA)
COM ⎯ CA * 10/100
SAL ⎯ COM + M
Écrire ('Le salaire mensuel est : ', SAL, ' DHS ' )
FIN

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
64
Exercices

Solutions Algorithme : TTC


2. Variable prix_ht, prix_ttc, tva: réel
Variable quantité, i: Entier
DEBUT
Écrire ('Saisir le TVA ')
Lire(tva) ;
Écrire ('Saisir le prix HT de l’article ')
Lire(prix_ht) ;
Écrire ('Saisir la quantité de l’article’)
Lire(quantité) ;
prix_ttc  prix_ht * (1 + tva / 100) * quantité

Écrire (' Le prix ttc est: ', prix_ttc)


FIN

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
65
Chapitre 3: Structures alternatives

L’instruction Suivant Cas


L’instruction Suivant cas constitue une structure alternative à la forme en bloc [Si …
Alors …Sinon…] et permet de formuler de manière plus simple le choix du groupe
d’instructions.

Suivant Cas Variable Faire


Cas 1 :
// Instruction 1
Cas 2 :
// Instruction 1
Cas 3..4 :
// Instruction 2
Cas N :
// Instruction N
Sinon
// Instruction par défaut
Fin Suivant
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
66
Chapitre 3: Structures alternatives

L’instruction Suivant Cas


Exemple :

Écrire un algorithme permettant d'afficher le mois en toute lettres selon son


numéro saisi par l’utilisateur.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
67
Chapitre 3: Structures alternatives

L’instruction Suivant Cas


Algorithme Mois
Solution : Variables N : Entier
Début
Ecrire("Donner le numéro du mois :")
Lire(N)
Suivant Cas N faire
Cas 1 : Ecrire("Janvier")
Cas 2 : Ecrire("Février")
Cas 5 : Ecrire("Mai")
………………….
Cas 12 : Ecrire("Décembre")
Sinon
Ecrire("Le numéro saisi est incorrecte :")
Fin Suivant
Fin
P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
68

Chapitre 4: Structures répétitives

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
69
Chapitre 4: Structures répétitives

Problèmatique
Écrire un algorithme permettant d’afficher 300 fois le message : « Bonjour à vous
TOUS ».
Solution Classique :
DEBUT
Écrire (' Bonjour tout le monde ‘) instruction 1
Écrire (' Bonjour tout le monde ') instruction 2
.
.
.
Écrire (' Bonjour tout le monde ') instruction 300
FIN

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
70
Chapitre 4: Structures répétitives

Les boucles
❑ Une structure répétitive sert à répéter un ensemble d’instructions.
Il existe trois formes de structures répétitives : POUR, TANT QUE, REPETER.
On distingue 2 types de boucles:

o Les boucles à compteur ou définie


• On sait à l’avance combien de fois la boucle devra tourner et une variable (le compteur )
compte les répétitions
Ex : la boucle Pour

o Les boucles à événement ou indéfinie


• On ne sait pas à l’avance le nombre de fois que la boucle sera exécutée.
Ça peut dépendre du nombre de données à traiter.
Ça peut dépendre de condition de traitement.
Ex : la boucle Tanque et la boucle Répéter … jusqu’a

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
71
Chapitre 4: Structures répétitives

La boucle Pour
❑ Cette structure permet de répéter des instructions un nombre connu de fois.
❑ Syntaxe :

Pour [variable] allant de [valeur Initiale] à [finale] par pas [valeur de pas] faire
[Instructions ..]
Fin Pour

Pas est un entier qui peut être positif ou négatif. Pas peut ne pas être
mentionné, car par défaut sa valeur est égal à 1

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
72
Chapitre 4: Structures répétitives

La boucle Pour

Principe: i ←initiale
➢ On initialise i par une valeur de début
(initiale).
➢ On test si on a pas dépassé la valeur de
fin (finale). Vrai
i n'a pas atteint finale instructions i ← i + pas
➢ On exécute les instructions.
➢ On incrémente i: i = i + pas
➢ On test si on a pas dépassé la valeur de Faux
fin
➢ Etc.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
73
Chapitre 4: Structures répétitives

La boucle Pour
❑ On veut écrire un algorithme qui affiche le message : «Bonjour à vous TOUS».
15 fois.

Algorithme BonjourTous

Variables i : entier

Début
Pour i allant de 1 à 15 faire
Ecrire(“Bonjour à vous TOUS”)
Fin Pour
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
74
Chapitre 4: Structures répétitives

La boucle Pour
❑ On veut écrire un algorithme qui affiche le message : «Bonjour à vous TOUS».
N fois.
Algorithme BonjourTous

Variables i, N : entier
Début
Ecrire(“Entrer le nombre N : ”)
lire(N)
Pour i allant de 1 à N faire
Ecrire(“Bonjour à vous TOUS”)
Fin Pour
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
75
Chapitre 4: Structures répétitives

La boucle Pour

Exercice :

Écrire l’algorithme permettant de calculer la moyenne des notes de N étudiants.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
76
Chapitre 4: Structures répétitives

La boucle Pour
Solution : Algorithme : Moyenne
Variable N, i : Entier // N c’est le nombre des étudiants, i est le compteur des étudiants
note, S, Moy : Réel // S une variable pour calculer la somme des notes
DEBUT
Écrire (' Saisir le nombre des étudiants: ')
Lire (N)
S ⎯⎯ 0 * initialisation *
Pour i  1 à N faire
Écrire (' Saisir la note de l’Etudiant ' , i , ' : ')
Lire (note)
S ⎯⎯ S + note
Fin Pour
Moy ⎯⎯ S/N
Écrire (' La moyenne est : ', Moy)
FIN

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
77
Chapitre 4: Structures répétitives

La boucle Tant que


❑ Cette structure permet de répéter les instructions tant qu’une condition est
satisfaite

❑ Syntaxe :

Tant Que ( condition) faire


instructions
Fin Tant Que

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
78
Chapitre 4: Structures répétitives

La boucle Tant que


Principe:

❖ Le programme arrive sur la ligne du Tant que.


❖ Il examine alors la valeur de la condition.
❖ Si cette valeur est vrai, le programme exécute les condition
Vrai
instructions
instructions qui suivent, jusqu’à ce qu’il rencontre la
ligne FinTantQue.
Faux
❖ Il retourne ensuite sur la ligne du TantQue, procède
au même examen, et ainsi de suite.
❖ On ne s’arrete que lorsque la condition prend la
valeur faux.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
79
Chapitre 4: Structures répétitives

La boucle Tant que


❑ Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N
dépasse strictement 100.
Algorithme DetermineN
Variables somme,i : entier
Début
i ⎯⎯ 0
somme ⎯⎯ 0
TantQue (somme < 100) faire
I ⎯⎯ i + 1
Somme ⎯⎯ somme + i
Fin TantQue
Ecrire(“La valeur de N est :”, i)
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
80
Chapitre 4: Structures répétitives

La boucle Répéter.. jusqu’à


❑ Cette structure sert à répéter des instructions jusqu’à ce qu’une condition soit réalisée :
❑ Syntaxe :
Répéter
[Instructions ..]
jusqu’à ([condition])

➢ La boucle s'exécute tant que la condition est fausse


➢ La boucle cesse lorsque la condition est vraie.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
81
Chapitre 4: Structures répétitives

La boucle Répéter.. jusqu’à


❑ Cette structure sert à répéter des instructions jusqu’à ce qu’une condition soit réalisée :
❑ Syntaxe :
Répéter
[Instructions ..] instructions
jusqu’à ([condition])

Faux
➢ La boucle s'exécute tant que la condition est fausse condition

➢ La boucle cesse lorsque la condition est vraie. Vrai


➢ Toutes les instructions écrites entre Répéter et jusqu’à
sont exécutées au moins une fois

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
82
Chapitre 4: Structures répétitives

La boucle Répéter.. jusqu’à


Exemple:
Algorithme AlgoCarre
Variables a , carre : Entiers
Début
Répéter
Ecrire ("entrer la valeur de a")
Lire (a)
carre ← a * a
Ecrire ("Le carré de ", a, " est: " ,carre)
Jusqu’à (a = 0)
Ecrire ("Fin du programme")
Fin

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
83
Exercices

1- Ecrire un algorithme qui lit le prix HT d’un article, le nombre d’articles et le taux de
TVA en %, et qui fournit le prix total TTC correspondant.

2- Réécrire l’algorithme précédent, cette fois-ci on ne connaît pas le nombre d’articles


à acheter. La saisie s’arrête lorsque l’utilisateur entre un prix négatif.

3- Ecrire un algorithme qui permet de calculer la moyenne des prix d'une action sur 𝑛
jours pour analyser sa performance.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
84
Exercices

4- Les habitants d’un pays paient l’impôt selon les règles suivantes :
• Les hommes de plus de 20 ans paient l’impôt
• Les femmes paient l’impôt si elles ont entre 18 et 35 ans
• Les autres ne paient pas d’impôt

L’ algorithme demandera donc l’âge et le sexe d’un habitant, et se prononcera donc


ensuite sur le fait que l’habitant est imposable.

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e
85
Exercices

5- Donner les résultats d’affichage des instructions suivantes :

A0
B7
TantQue A < B Faire
Ecrire(‘Valeur de A est :’,A)
Ecrire(‘Valeur de B est :’,B)
AA+1
BB-1
FinTantQue

P r. M o h a m e d K O U I S S I / F a c u l t é P o l y d i s c i p l i n a i r e – L a r a c h e

Vous aimerez peut-être aussi