Vous êtes sur la page 1sur 65

Yezaba©

Année Académique: 2023-2024

Cours:
ALGORITHMIQUE ET PROGRAMMATION

ALGORITHMIQUE

Chargé du cours : YEO Zana


Courriel: zana.yeo@univ-man.edu.ci
Yezaba©

2
PRÉREQUIS :

q Raisonnement logique ;

q Connaitre la logique mathématique serait


un avantage considérable.
Yezaba©

OBJECTIFS GÉNÉRAUX 3
DU COURS :

q Ecrire un algorithme et son programme équivalent


dans un langage de programmation donné ;

q Comprendre un algorithme ou un programme déjà


écrit.
Yezaba©

OBJECTIFS SPÉCIFIQUES 4
DU COURS :
q Expliquer les principes de base de l'Algorithmique et de la Programmation ;

q Savoir formaliser un problème du point de vu de l'Algorithmique et le traduire en


programme ;

q Décrire la notion de Structure de Données en Algorithmique et en Programmation ;

q Connaitre les instructions standards et pouvoir les retrouver dans un algorithme


comme dans un programme ;

q Connaître les Structures Conditionnelles (Alternatives) et pouvoir les retrouver dans


un algorithme comme dans un programme ;

q Connaître les Structures Répétitives (Boucles) et pouvoir les retrouver dans un


algorithme comme dans un programme.
Yezaba©

5
MOTS-CLÉS :

algorithme ; algorithmique; programme ;


programmation ; variable ; instruction ;
alternative ; boucle.
Yezaba©

Chapitre 1: 6
Introduction Et Concepts De Base

1- Introduction

2- Algorithme et Algorithmique

3- Programme et Programmation

4- Langage de Programmation
Yezaba©
Introduction Et Concepts De Base
1- Introduction
7
Yezaba©
Introduction Et Concepts De Base
1- Introduction
8
L’Homme sait résoudre un certain nombre de problèmes complexes en suivant des
procédés logiques. Cependant l’arrivée des ordinateurs et de l’informatique a
révolutionné la façon de travailler de l’Homme.

En effet les ordinateurs, une fois guidés dans la résolution d’un problème, aussi
complexe soit-il, arrivent à le résoudre désormais en des temps records, là où
l’Homme prendrait plus de temps.

Il devient donc indispensable de s’approprier un tel outils, de savoir lui


communiquer nos taches. La communication avec l’ordinateur suppose la
connaissance d’un code, aussi bien compris par l’Homme que par l’ordinateur.

Il faut savoir également résoudre un problème réel en le rendant logique du point


de vu de l’ordinateur.
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
9
Un Algorithme est une suite finie d’instructions élémentaires, constituant un
schéma de calcul ou de résolution d’un problème. Il s’exprime dans un pseudo
langage appelé Langage de Description Algorithmique (LDA), à la fois proche du
langage courant, et des langages de programmation.

Par conséquent l'Algorithmique est le domaine d'étude des algorithmes, qui prend
en compte leur conception, leur compréhension et leur optimisation.
Un algorithme peut se comparer à une recette de cuisine.

§ Le résultat est comme le plat à cuisiner.

§ Les données sont l’analogue des ingrédients de la recette.

§ Les règles (instructions) de transformations se comparent aux directives ou


instructions de la recette
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
10

Exemples pratiques d'algorithmes:


§ Procédure pour une recette de cuisine
§ Procédure de résolution d'un rubik's cube
§ Procédure pour donner une valeur approximative de la racine
carré d’un nombre
§ Etc.
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
11
Un exemple détaillé: recette de cuisine
Un algorithme peut se comparer à une recette de
cuisine.
Le résultat c’est comme le plat à cuisiner.
Les données sont l’analogues des ingrédients de la recette.
Les règles (les instructions) de transformations se comparent
aux directives ou
instructions de la recette

Comment faire une omelette ?


ÞPréciser la liste des ingrédients et le processus
détaillé de la cuisson
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
12
Un exemple détaillé: résolution d'un rubik's cube
Etape 1: Construction de la croix sur la face du haut
Etape 2: Construction de la première couronne (face du haut)
Etape 3 : Construction de la deuxième couronne
Etape 4: La croix sur la dernière face
Etape 5: Placer les arêtes
Etape 6 : Placer les coins
Etape 7: Orienter les coins

https://www.rubiks-cube.fr/
https://lerubikscube.com/resolution-facile-3x3x3/
Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
13
Un exemple détaillé: valeur approximative de la racine carrée de X
Pour trouver une valeur approximative de √x
o Prendre une approximation initiale arbitraire G
o Améliorer cette approximation en calculant la moyenne arithmétique entre G et x/G
o Continuer jusqu'à atteindre la précision souhaitée.
Pour x=2
G = 1, X/G = 2, G = ½ (1+ 2) = 3/2 = 1.5
X/G = 4/3 G = ½ (3/2 + 4/3) = 17/12 = 1.416666
X/G = 24/17 G = ½ (17/12 + 24/17) = 577/408 = 1.4142156

Yezaba©
Introduction Et Concepts De Base
2- Algorithme et Algorithmique
14
L’objectif principal de l’algorithmique est de:

q Permettre au programmeur de s’affranchir des particularités et des contraintes


propres à un langage de programmation donné

q Ceci va permettre dans un premier temps, de se concentrer d’abord sur la


résolution du problème, avant de penser au spécificités des langages de
programmation.

q Puis dans un second temps, d’avoir par la suite des programmes bien écrits. Un
programme bien écrit, est un programme facile à lire, à comprendre, à modifier
et à corriger, surtout pour une personne étrangère à sa conception.
Yezaba©
Introduction Et Concepts De Base
3- Programme et Programmation
15
Un Programme correspond à la description d’une méthode de résolution pour un
problème donné.
Cette description est effectuée par une suite d’instructions d’un langage de
programmation, à la différence d'un algorithme qui est écrit dans un pseudo-
langage(LDA), compris uniquement par l'homme.
Ces instructions permettent de traiter et de transformer les données (entrées) du
problème à résoudre pour aboutir à des résultats (sorties).

Un programme n’est pas une solution en soi mais une méthode à suivre pour trouver les
solutions.

La Programmation est par conséquent, l’ensemble des activités orientées vers la


conception, la réalisation, le test et la maintenance de programmes.
Yezaba©
Introduction Et Concepts De Base
4- Langage de Programmation
16
Un Langage de Programmation ou Langage Informatique est un code de
communication, permettant à un être humain de dialoguer avec une machine (un
ordinateur) en lui soumettant des instructions et en analysant les données matérielles
fournies par le système.

Le langage informatique est l’intermédiaire entre le programmeur et la machine. Il


permet d’écrire des programmes (suite consécutive d’instructions) destinés à effectuer
une tache donnée.

Il existe essentiellement 2 types de langages informatiques:


q Langages procéduraux : Fortran, Cobol, Pascal, C, C++, Python…
q Langages orientés objets : C++, Java, C#, Python…
Yezaba©
Introduction Et Concepts De Base
17
Remarques :

q Un programme est un algorithme, mais un algorithme n'est pas un programme. En


effet un programme est un algorithme écrit dans un langage de programmation
spécifique.

q Un langage de programmation est un langage compris par l'ordinateur.

q La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier.

q L'algorithme est indépendant du langage de programmation. Par exemple, on


utilisera le même algorithme pour une implantation en Java, en C++ ou en Visual
Basic
Yezaba©
Introduction Et Concepts De Base
18

Un programme informatique permet à l’ordinateur de résoudre un problème.


Cependant, bien avant de communiquer à l’ordinateur comment résoudre ce
problème, Il faut en premier lieu pouvoir le résoudre nous-même.
Yezaba©

Chapitre 2 : 19
Les Étapes vers la Programmation

1- Introduction

2- L'Analyse

2- Ecriture de l'algorithme

3- Ecriture du programme
Yezaba©
Les Étapes vers la Programmation
1- Introduction
20

L’étape préalable qui permettra d’aboutir à l’écriture d’un programme est


l’écriture d’un algorithme, qui lui-même est précédé d’une analyse.

Problème Analyse Algorithme Programme Solution


Yezaba©
Les Étapes vers la Programmation
2- L’Analyse
21
L’analyse est la phase de réflexion, qui permet d’identifier les caractéristiques du
problème à traiter puis de découper ce problème en successions de taches simples et
distinctes. Elle consiste à :

q Identifier les données sur lesquelles portent le problème

q Classer ses données en données d’entrée et en de sortie ou résultat

q Recherche d’une méthode de résolution du problème:


Il s’agit de faire ressortir les opérations et les enchainements d’actions élémentaires
pour permettre d’aboutir aux résultats attendus, à partir des données dont on dispose.
Les étapes de résolution découvertes ne sont pas forcément dans l’ordre ; elles le
seront pendant la phase d’écriture de l’algorithme.
Yezaba©
Les Étapes vers la Programmation
2- L’Analyse
22

Donées d'Entrée(DE) • Moyens de départ

Démarche • Procédé ou méthode de resolution

Données de
• Objectif final
Sortie(DS)
Yezaba©
Les Étapes vers la Programmation
2- L’Analyse
23
Exemple : 𝑎𝑥 ! + 𝑏𝑥 + 𝑐 = 0 Remarque :

DE : a, b, c la recherche d’une méthode de résolution


DS : 𝑥" et 𝑥! (les solutions) consiste généralement à :
Données intermédiaires (découvertes pendants l’analyse) : Δ
q Dégager l’idée générale (idée de base)
Démarche: qui sert de fondement à la démarche ;
1er cas : a=0 ⇒ équation de degré 1 qui est 𝑏𝑥 + 𝑐 = 0 elle peut être trouvée en appliquant le
b=0, alors problème à un petit exemple.
c=0 ⇒ solution=R
c≠0 ⇒ Impossible (Pas de solution) Dans l’exemple précèdent l’idée de base
b≠0 ⇒ une solution égale à −𝒄⁄𝒃 est de faire une étude de cas suivant les
2e cas : a≠0 ⇒ équation de degré 2 valeurs de a, b et c.
Calcul de Delta(Δ) : ∆= 𝑏 ! − 4𝑎𝑐
Δ=0 ⇒ on a une solution double : −𝑏⁄2𝑎 q Exploiter l’idée de base pour résoudre le
Δ<0 ⇒ Pas de solution dans R problème.
#$# ∆ #$' ∆
Δ>0 ⇒ 2 solutions distinctes : !&
𝑒𝑡 !&
Yezaba©
Les Étapes vers la Programmation
2- L’Analyse
24
Exemple 1 : Multiplication par addition
On veut faire la multiplication de 2
nombres x*y, mais on ne dispose que de REMARQUE :
l’addition (+). Faire l’analyse de
l’algorithme qui permet de faire ce Il n’existe pas de méthode miracle pour
produit. découvrir un algorithme concernant un
problème non encore résolu.
Exemple 2 : Suite de FIBONACCI.
𝑢! = 𝑢!"# + 𝑢!"$, 𝑎𝑣𝑒𝑐 𝑢%, 𝑢#, 𝑞 𝑐𝑜𝑛𝑛𝑢𝑠. La découverte d’un algorithme est donc
Faire l’analyse de l’algorithme qui un acte créatif, faisant appel à l’intuition,
permet de trouver la valeur du terme 𝑢( . la réflexion et surtout à l’expérience.
Yezaba©
Les Étapes vers la Programmation
3- Ecriture de l'algorithme
25
Si l’analyse est bien faite, cette étape consiste simplement à ordonner les actions
dégagées précédemment en respectant la syntaxe et le vocabulaire du LDA.

L’algorithme pourrait donc se présenter sous la forme suivante:


ALGORITHME Exemple
/* la partie des déclarations */
CONSTANTE // Les constantes nécessitent une valeur des leur
// déclaration
CSTE1=20:ENTIER;
CSTE2=“Bonjour”:CHAINE;
VARIABLE
var1, var2:REEL;
var3:CHAINE;
DEBUT // Corps de l’algorithme
/* les instructions ici */
FIN
Yezaba©
Les Étapes vers la Programmation
3- Ecriture de l'algorithme
26
Remarques :

q Les doubles slash (//) précèdent les commentaires sur une seule ligne, tandis que
les textes encadrés par /* et */ sont pour les commentaires sur plusieurs lignes.

q Un commentaire est un texte ajouté a un algorithme/programme servant à le


décrire, facilitant ainsi sa compréhension par les humains. Il est donc séparé
reconnaissable grâce à une syntaxe particulière, ce qui fait qu'en général, le
commentaire est ignoré par l’ordinateur lors de l’exécution du programme.
Yezaba©
Les Étapes vers la Programmation
4- Ecriture du programme
27
Il s’agira d’une réécriture de l’algorithme défini dans le LDA, dans un langage cible de
programmation (C, JAVA, PHP, etc.).

C’est la phase la plus facile, dans la mesure où il s’agit de remplacer simplement les
mots clés et les structures du LDA, par leurs équivalents, dans le langage cible.
Yezaba©

Chapitre 3 : 28
Notion de Structure de Données et Variables

1- Introduction

2- Identification d'un objet

3- Type d'un objet

4- Déclaration d'une variable


Yezaba©
Notion de Structure de Données et Variables
1- Introduction
29

L’objectif de ce chapitre est de comprendre le rôle joué par les structures


de données, particulièrement les variables dans un algorithme.

Pour effectuer son travail, un algorithme a besoin de mémoriser des


informations, par exemple les valeurs de a, b et c pour la résolution
d’une équation du type ax2+bx+c=0.

Pour cela, il utilise des variables ou dans d’autres cas des structures de
données.
Yezaba©
Notion de Structure de Données et Variables
1- Introduction
30
Une structure de données est un moyen de stocker et d’organiser des
données pour faciliter leur utilisation et leur modification.

Une structure de données est matérialisée dans l’ordinateur par la réservation


d’un espace mémoire.

Dans un algorithme, elle est représentée par un objet qui est parfaitement
défini par la connaissance de trois caractéristiques essentielles :

q Son nom (identificateur)

q Son type

q Sa valeur
Yezaba©
Notion de Structure de Données et Variables
2- Identification d'un objet
31

Il est représenté par une suite quelconque de caractères alphanumériques, sans


interruption, commençant obligatoirement par une lettre, y compris Under score
(_).

Il est recommandé de choisir un identificateur expressif, significatif, c.à.d. en


rapport avec la nature de l’objet.

Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les
données manipulées exemples : noteEtudiant, prixTTC, prixHT
Yezaba©
Notion de Structure de Données et Variables
3- Type d'un objet
32
Le type d’un objet est l’ensemble des valeurs possibles qu’il peut prendre : c’est
l’ensemble de définition. Un objet peut être une constante (sa valeur est fixe) ou une
variable.
ENTIER

Scalaire CARACTERE
(simple) BOOLEEN

REEL
Remarque:
Types Dans ce cours, nous nous
TABLEAU limitons aux types simples.
ENREGISTREMENT
Structurés
FICHIER

LISTE CHAINEE
Yezaba©
Notion de Structure de Données et Variables
4- Déclaration d'une variable / constante
33
<VARIABLE> liste identificateurs: <TYPE>;
//identificateurs separés par des virgules, lorsqu’il y en a plusieurs

Exemple:

VARIABLE i, j, k: ENTIER;
x, y: REEL;
ok: BOOLEEN;
ch1, ch2: CHAINE;

Remarque :
Une variable est l'association d'un nom avec un type, permettant de mémoriser
une valeur de ce type.
Yezaba©
Notion de Structure de Données et Variables
4- Déclaration d'une variable / constante
34
Une constante est une variable dont la valeur ne change pas au cours de l'exécution du
programme, elle peut être un nombre, un caractère, ou une chaine de caractères. En
pseudocode, on notera comme suit :
<CONSTANTE> IDENTIFICATEUR = valeur: <TYPE>;
q Par convention, les noms de constantes sont en majuscules.
q Une constante doit toujours recevoir une valeur dès sa déclaration.

Exemple : pour calculer la surface d’un cercle, la valeur de pi est une constante mais le
rayon est une variable.

CONSTANTE PI=3.14: REEL;


MAXI=32: ENTIER;
SALUT=“Bonjour”: CHAINE;
Yezaba©

Chapitre 4 : 35
Instructions de Base d’un algorithme

1- Instruction/Bloc d’instructions

2- La séquence

3- L’affectation de variables

4- Expressions et Opérateurs

5- La lecture et l’écriture
Yezaba©
Instructions de Base d’un algorithme
1- Instruction / Bloc d’instructions
36
Une instruction est un ensemble de caractères permettant au programmeur de
déterminer une action à mener par son algorithme.

Cette action peut être l’affectation d’une valeur à une variable, l’exécution d’une
fonction(sous programme/algorithme), l’écriture d’une condition, l’entrée dans une
itération ou encore bien autre chose.

Un bloc d’actions est une suite d’instructions élémentaires formant un tout cohérant et
traité comme une instruction unique. Dans le LDA, un bloc est délimité par DEBUT et
FIN (voir l’encadré suivant).
DEBUT
instruction 1;

instruction n;
FIN
Yezaba©
Instructions de Base d’un algorithme
2- La séquence
37

Elle a pour rôle de séparer deux actions. Dans le LDA, on l’exprime par le « ; »

Remarque :

En utilisant le séparateur d’instruction (action), plusieurs actions peuvent être


écrites sur la même ligne, mais pour une question de lisibilité, il est préférable
d’avoir une action par ligne.
Yezaba©
Instructions de Base d’un algorithme
3- L’affectation de variables
38
L’affectation/assignation consiste à attribuer une valeur à une variable (c’est-à-dire
remplir ou modifier le contenu d'une zone mémoire). En LDA, l'affectation est notée par
le signe ←
var ← e;// attribue la valeur e à la variable var
q e peut être une valeur, une Exemple VARIABLE i, j, k: ENTIER;
autre variable ou une x, y: REEL;
ok: BOOLEEN;
expression
ch1, ch2: CHAINE;
q var et e doivent être de DEBUT
même type ou de types i←1; j←i;
compatibles k←i+j; ok←FAUX; i←10.3;
x←10.3; x←j; ok←’IC1’;
q L’affectation ne modifie que j←x;
ch1←’IC1’; ch2←ch1;
ce qui est à gauche de la
FIN
flèche
Yezaba©
Instructions de Base d’un algorithme
3- L’affectation de variables
39
Remarques

q Les langages de programmation C, C++, Java, … utilisent le signe égal (=) pour
l’affectation ←
q Lors d’une affectation, l’expression de droite est évaluée et la valeur trouvée est
affectée à la variable de gauche. Ainsi, A←B est différente de B←A
q L’affectation est différente d'une équation mathématique :
v Les opérations x ← x+1 et x ← x-1 ont un sens en programmation et se nomment
respectivement incrémentation et décrémentation, ce sont des affectation particulières.
vA+1 ← 3 n'est pas possible en langages de programmation et n'est pas équivalente à
A←2
q Certains langages donnent des valeurs par défaut aux variables déclarées. Pour éviter
tout problème il est préférable d'initialiser les variables déclarées.
Yezaba©
Instructions de Base d’un algorithme
4- Expressions et Opérateurs
40
Une expression peut être une valeur, une variable ou une opération constituée de
variables reliées par des opérateurs.

Exemples : 1; b; a*2; a+ 3*b-c;

L'évaluation de l'expression fournit une valeur unique qui est le résultat de l'opération.
Les opérateurs dépendent du type de l'opération, ils peuvent être :
q Des opérateurs arithmétiques : +, -, *, /, % (modulo), ^(puissance)
q Des opérateurs logiques : NON(!), OU (| |), ET (&&)
q Des opérateurs relationnels : =, <=, >=
q Des opérateurs sur les chaînes : & (concaténation).

Une expression est évaluée de gauche à droite mais en tenant compte des priorités des
opérateurs.
Yezaba©
Instructions de Base d’un algorithme
4- Expressions et Opérateurs
41
Remarques : Opérateurs Booléens :
q On ne peut pas additionner un entier et un
caractère. Toutefois dans certains langages on Associativité des opérateurs ET et OU
peut utiliser un opérateur avec deux a ET (b ET c) = (a ET b) ET c,
a OU (b OU c) = (a OU b) OU c
opérandes de types différents, c’est par
Commutativité des opérateurs ET et OU
exemple le cas avec les types arithmétiques (4 a ET b = b ET a,
+ 5.5) a OU b = b OU a
q La signification d’un opérateur peut changer Distributivité des opérateurs ET et OU
en fonction du type des opérandes. a OU (b ET c) = (a OU b) ET (a OU c),
a ET (b OU c) = (a ET b) OU (a ET c)
L’opérateur + avec des entiers effectue
Involution (homographie réciproque) :
l’addition, 3+6 vaut 9, avec des chaînes de NON NON a = a
caractères il effectue la concaténation Loi de Morgan :
"bonjour" + " tout le monde" vaut "bonjour NON (a OU b) = (NON a) ET (NON b),
tout le monde"* NON (a ET b) = (NON a) OU (NON b)
Yezaba©
Instructions de Base d’un algorithme
5- La lecture et l’écriture
42
Les instructions de lecture et d'écriture permettent à la machine de communiquer avec
l'utilisateur.
Lecture

La lecture permet d'entrer des donnés à partir du clavier. En LDA, on note :


LIRE(var); la machine met la valeur entrée au clavier dans la zone mémoire nommée
(variable) var.

Remarque : Le programme s'arrête lorsqu'il rencontre une instruction LIRE et ne se


poursuit qu'après la saisie de l’entrée attendue par le clavier et de la touche Entrée (cette
touche signale la fin de l’entrée).

Conseil : Avant de lire une variable, il est fortement conseillé d’écrire des messages à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit saisir.
Yezaba©
Instructions de Base d’un algorithme
5- La lecture et l’écriture
43
Ecriture
L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier). En
LDA, on note : ECRIRE (liste d’expressions); la machine affiche les valeurs
des expressions décrite dans la liste. Ces instructions peuvent être des variables ayant des
valeurs, des nombres ou des commentaires sous forme de chaines de caractères.
Exemple : ECRIRE (a, b+2, "Message");

Écrire un algorithme qui demande un nombre entier à


l'utilisateur, puis qui calcule et affiche le carré de ce nombre

Écrire un algorithme qui permet d’effectuer la saisie d’un nom,


d’un prénom et affiche ensuite le nom complet
Yezaba©

Chapitre 5 : 44
La Structure Conditionnelle (Alternative)

1- Le principe

2- La structure conditionnelle minimale

3- La structure conditionnelle à plus de 2 options

4- Les tests imbriqués


Yezaba©
La Structure Conditionnelle (Alternative)
1- Le principe
45
La structure alternative utilise toujours une
condition.

Une condition est une expression écrite


entre parenthèse à valeur booléenne.

Les instructions conditionnelles servent à


n'exécuter une instruction ou un bloc
d'instructions que si une condition est
vérifiée.

Si le test de la condition donne vraie, alors


la suite d’instructions 1 s’exécute, dans le
cas contraire c’est la suite d’instructions 2
qui s’exécute.
Yezaba©
La Structure Conditionnelle (Alternative)
1- Le principe
46
Les 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 et NON

Exemples :

q x compris entre 2 et 6 : (x >= 2) ET (x < =6)

q n divisible par 3 ou par 2 : (n%3=0) OU (n%2=0)


Yezaba©
La Structure Conditionnelle (Alternative)
2- La structure conditionnelle minimale
47

La syntaxe en LDA est la suivante :


SI(condition)ALORS
instruction;// ou bloc d’instructions
SI(condition)ALORS
instruction 1;// ou bloc d’instructions
SINON
instruction 2;// ou bloc d’instructions

DEBUT
Un bloc d’instructions en LDA est un ensemble instruction 1;
d’instructions délimitées par DEBUT et FIN, …
comme présenté sur l’encadré ci-contre. instruction n;
FIN
Yezaba©
La Structure Conditionnelle (Alternative)
2- La structure conditionnelle minimale
48
Remarques :

q La condition ne peut être que vraie ou fausse


q Si la condition est vraie alors seules les instructions1 sont exécutées, si la condition
est fausse seules les instructions2 sont exécutées
q La condition peut être une expression booléenne simple ou une suite composée
d’expressions booléennes

Écrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui teste et
affiche s'il est divisible par 7 ou non

Écrire un algorithme qui demande un nombre réel puis affiche sa valeur absolue.
1- Utilisez SI… ALORS… SINON,
2- puis SI… ALORS
Yezaba©
La Structure Conditionnelle (Alternative)
3- La structure conditionnelle à plus de 2 options
49
La syntaxe en LDA est la suivante :
SI(condition1)ALORS
instruction1; //ou suite d’instructions
SINON SI(condition2)ALORS
instruction2; //ou suite d’instructions
...
SINON
instruction3; //ou suite d’instructions

Remarque: Dans certains langages de programmation, une variante de la structure


alternative est le choix multiple ou SELONQUE. Il permet une représentation plus
claire et plus concise d’un ensembles d’alternatives portant sur différentes valeurs
d’une même variable ou expression. Elle utilise donc une variable/expression de
référence dont la valeur est comparée à une liste de valeurs.
Sa syntaxe en LDA est :
Yezaba©
La Structure Conditionnelle (Alternative)
3- La structure conditionnelle à plus de 2 options
50

SELONQUE var VAUT


DEBUT
valeur1:Action 1;
valeur2:Action 2;
…………
valeurN:Action N;
defaut:Action d;//action par défaut
FIN
Yezaba©
La Structure Conditionnelle (Alternative)
3- La structure conditionnelle à plus de 2 options
51
Écrire un algorithme qui demande un nombre réel puis affiche s’il est négatif, positif ou
nul.

Le prix de disques compacts (CD) dans un espace de vente varie selon le nombre à
acheter :
300 FCFA l’unité si le nombre de CD à acheter est inférieur à 10,
250 FCFA l’unité si le nombre de CD à acheter est compris entre 10 et 20,
200 FCFA l’unité si le nombre de CD à acheter est au-delà de 20.
Écrivez un algorithme qui demande à l’utilisateur le nombre de CD à acheter, puis qui
calcule et affiche le prix à payer.

Remarques :
q Un SINON se rapporte toujours au dernier SI qui n’a pas encore de SINON associé
q Il est recommandé de structurer le bloc associé à SI et celui associé à SINON
Yezaba©
La Structure Conditionnelle (Alternative)
4- Les tests imbriqués
52
Les tests peuvent avoir un degré quelconque d'imbrications.
La syntaxe en LDA est la suivante :
SI(condition1)ALORS
SI(condition2)ALORS
instruction1; //ou suite d’instructions
SINON
instruction2; //ou suite d’instructions
SINON
SI(condition3)ALORS
Instruction3; //ou suite d’instructions
Yezaba©

Chapitre 6 : 53
Les Structures Répétitives (Boucles)

1- Introduction

2- La boucle POUR

3- La boucle TANTQUE

4- La boucle REPETER ... JUSQUA

5- Choix d'une boucle


Yezaba©
Les Structures Répétitives (Boucles)
1- Introduction
54

Les boucles servent à répéter l'exécution d'un groupe d'instructions un certain nombre
de fois. On distingue trois sortes de boucles :

q La boucle POUR ou avec compteur : on y répète des instructions en faisant évoluer


un compteur (variable particulière) entre une valeur initiale et une valeur finale.

q La boucle TANTQUE : on y répète des instructions tant qu'une certaine condition


est réalisée

q La boucle JUSQUA : on y répète des instructions jusqu'à ce qu'une certaine


condition soit réalisée
Yezaba©
Les Structures Répétitives (Boucles)
2- La boucle POUR
55
Sa syntaxe en LDA est la suivante :
POUR compteur ← valInit A valFin, PAS DE valPas
instruction 1;// ou suite d’instructions
Remarques:
q Le nombre d'itérations dans une boucle Pour est connu avant le début de la boucle

q Le compteur est une variable de type entier (ou caractère). Elle doit être déclarée.

q Le pas est un entier qui peut être positif ou négatif. Le pas peut ne pas être mentionné,
car par défaut sa valeur est égal à 1. Dans ce cas, le nombre d'itérations est égal à (
valFin – valInit + 1)

q valInit et valFin peuvent être des valeurs, des variables définies avant le début de la
boucle ou des expressions de même type que compteur
Yezaba©
Les Structures Répétitives (Boucles)
2- La boucle POUR
56

Déroulement d’une boucle POUR :

1) valInit est affectée à la variable compteur


2) On compare la valeur du compteur et valFin :
a) Si la valeur du compteur est > à valFin dans le cas d'un pas positif (ou si compteur
est < à valFin pour un pas négatif), on sort de la boucle et on continue avec l'instruction
qui suit la boucle POUR
b) Si compteur est <= à valFin dans le cas d'un pas positif (ou si compteur est >= à
valFin pour un pas négatif), les instructions seront exécutées
i. Ensuite, la valeur du compteur est incrémentée de la valeur du pas si pas est
positif (ou décrémenté si pas est négatif)
ii. On recommence l'étape 2 : La comparaison entre compteur et valFin est de
nouveau effectuée, et ainsi de suite …
Yezaba©
Les Structures Répétitives (Boucles)
2- La boucle POUR
57

Remarques:

q Il faut éviter de modifier la valeur du compteur (et de valFin ) à l'intérieur de la


boucle. En effet, une telle action perturbe le nombre d'itérations prévu par la boucle
POUR, rend difficile la lecture de l'algorithme et présente le risque d'aboutir à une
boucle infinie.

q Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas, on
aboutit à des boucles imbriquées.

Ecrire un algorithme qui fait le calcul de x à la puissance n où x est un réel


non nul et n un entier positif ou nul.
Yezaba©
Les Structures Répétitives (Boucles)
3- La boucle TANTQUE
58
Sa syntaxe en LDA est : TANTQUE(condition)FAIRE
instruction 1;// ou suite d’instructions
La condition (condition de contrôle de la
boucle) est évaluée avant chaque itération. Si
la condition est vraie, on exécute les
instructions (corps de la boucle), puis, on
retourne tester la condition.

Si elle est encore vraie, on répète l'exécution, … Si la condition est fausse, on sort de la
boucle et on exécute l'instruction qui est après le TANTQUE.

Il est possible que les instructions à répéter ne soient jamais exécutées.


Yezaba©
Les Structures Répétitives (Boucles)
3- La boucle TANTQUE
59
Remarques :
q Le nombre d'itérations dans une boucle TANTQUE n'est pas connu au moment
d'entrée dans la boucle. Il dépend de l'évolution de la valeur de la condition
q Une des instructions du corps de la boucle doit absolument changer la valeur de la
condition de vrai à faux (après un certain nombre d'itérations), sinon le programme
va tourner indéfiniment (boucle infinie).

Exemple de boucle infinie : i←1;


TANTQUE(i>0)FAIRE
i←i+1;// incrémenter i

En investissant chaque année 10 000 F CFA à intérêts composés de 7%, après


combien d’années serons-nous millionnaire ?
Yezaba©
Les Structures Répétitives (Boucles)
3- La boucle TANTQUE
60

Ecrire un algorithme qui permet d’afficher un menu à l’utilisateur, ayant la


forme suivante :
Saisir :
1 : pour un ajout
2 : pour une modification
3 : pour une suppression
NB : l’utilisateur doit forcément saisir un nombre dans l’ensemble {1, 2, 3}

Ecrire un algorithme qui détermine le premier nombre entier N tel que la


somme de 1 à N dépasse strictement 100.
Yezaba©
Les Structures Répétitives (Boucles)
4- La boucle REPETER ... JUSQUA
61
Sa syntaxe en LDA est :
REPETER
instruction 1;// ou suite d’instructions
JUSQUA(condition)

La condition est évaluée après chaque itération.

Les instructions entre Répéter et jusqu’à sont exécutées au moins une fois et leur
exécution est répétée jusqu’à ce que la condition soit vraie (tant qu'elle est fausse).
Yezaba©
Les Structures Répétitives (Boucles)
4- La boucle REPETER ... JUSQUA
62

Ecrire un algorithme qui détermine le premier nombre entier N tel que la


somme de 1 à N dépasse strictement 100 (avec la boucle REPETER…
JUSQUA).

Ecrire un algorithme qui compte le nombre de bits nécessaires pour coder en


binaire un entier n. On suppose que tous les nombres sont codés sur au plus
32 bits.
Yezaba©
Les Structures Répétitives (Boucles)
5- Choix d'une boucle
63

« TANTQUE » ou « REPETER… JUSQUA »

q La séquence (le bloc) d'instructions est exécutée au moins une fois dans la boucle
REPETER… JUSQUA, alors qu'elle peut ne pas être exécutée dans le cas du
TANTQUE.

q La séquence d'instructions est exécutée si la condition est vraie pour TANTQUE et


si la condition est fausse pour REPETER… JUSQUA.

q Dans les deux cas, la séquence d'instructions doit nécessairement faire évoluer la
condition, faute de quoi on obtient une boucle infinie.
Yezaba©
Les Structures Répétitives (Boucles)
5- Choix d'une boucle
64

q Si on peut déterminer le nombre d'itérations avant l'exécution de la boucle, il est plus


naturel d'utiliser la boucle POUR.

q S'il n'est pas possible de connaître le nombre d'itérations avant l'exécution de la


boucle, on fera appel à l'une des boucles TANTQUE ou REPETER… JUSQUA. Pour le
choix entre TANTQUE et REPETER… JUSQUA :

§ Si on doit tester la condition de contrôle avant de commencer les instructions de la


boucle, on utilisera TANTQUE

§ Si la valeur de la condition de contrôle dépend d'une première exécution des


instructions de la boucle, on utilisera REPETER… JUSQUA.
Yezaba©
Les Structures Répétitives (Boucles)
5- Choix d'une boucle
65
Quelle boucle Voulez vous?

Nom bre itération connu? oui POUR

Non

Valeur condition depend


d’une prem iere oui REPETER
execution de la boucle?

Non

TANTQUE

Vous aimerez peut-être aussi