0% ont trouvé ce document utile (0 vote)
3 vues82 pages

Introduction à l'Algorithmique

L'algorithmique est une discipline clé en informatique qui consiste à concevoir et optimiser des algorithmes pour résoudre des problèmes. Les algorithmes sont essentiels pour la programmation, permettant une résolution efficace et structurée des problèmes, tout en étant indépendants des langages de programmation. Le document présente également les étapes de résolution d'un problème informatique, les concepts de variables et d'affectation, ainsi que les règles de déclaration et de types de variables.

Transféré par

yahyaberrad2
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
3 vues82 pages

Introduction à l'Algorithmique

L'algorithmique est une discipline clé en informatique qui consiste à concevoir et optimiser des algorithmes pour résoudre des problèmes. Les algorithmes sont essentiels pour la programmation, permettant une résolution efficace et structurée des problèmes, tout en étant indépendants des langages de programmation. Le document présente également les étapes de résolution d'un problème informatique, les concepts de variables et d'affectation, ainsi que les règles de déclaration et de types de variables.

Transféré par

yahyaberrad2
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 PPTX, PDF, TXT ou lisez en ligne sur Scribd

Université Hassan II

École nationale de commerce et de gestion


de Casablanca

Module : Algorithmes et
Programmation python
Chapitre 1 : Partie 1
Introduction à l’algorithmique

Pr: [Link]
Introduction à l'Algorithmique

Algorithmique:
L'algorithmique est une discipline fondamentale en informatique qui consiste à concevoir,
analyser et optimiser des algorithmes. Un algorithme est une suite finie et ordonnée
d'instructions permettant de résoudre un problème ou d'accomplir une tâche spécifique. En
d'autres termes, c'est une méthode systématique pour transformer des données d'entrée en
résultats souhaités.

Un algorithme est une suite finie d’instruction à suivre pour aboutir à un résultat;

Un algorithme définit les instructions (étapes) à effectuer pour résoudre un problème donné.

Un algorithme prend en entrée un ensemble de valeurs et délivre en sortie un ensemble de


valeurs.

Algorithmique Algorithmes et Programmation python 2


L’importance d’un algorithme :

Pourquoi l'algorithmique est-elle importante ?


1. Résolution de problèmes : Les algorithmes sont au cœur de la programmation. Ils
permettent de résoudre des problèmes de manière efficace et structurée.

2. Optimisation : Un bon algorithme permet d'économiser des ressources (temps,


mémoire, énergie) lors de l'exécution d'un programme.

3. Base de l'informatique : L'algorithmique est essentielle pour comprendre des domaines


comme l'intelligence artificielle, la science des données, la cryptographie, etc.

4. Transférable : Les concepts algorithmiques sont indépendants des langages de


programmation, ce qui les rend applicables dans divers contextes.

Algorithmique Algorithmes et Programmation python 3


Concept Général

Concepts clés en Algorithmique :


1. Décomposition en étapes : Un algorithme doit être décomposé en étapes simples et
claires.

2. Structures de contrôle : Les algorithmes utilisent des structures comme les boucles
(répétition), les conditions (décisions) et les séquences (enchaînement d'instructions).

3. Complexité : On évalue l'efficacité d'un algorithme en termes de temps d'exécution


(complexité temporelle) et d'espace mémoire utilisé (complexité spatiale).

4. Réutilisabilité : Un bon algorithme est souvent réutilisable pour résoudre des


problèmes similaires.
5. Correct : Un algorithme doit produire le résultat attendu pour toutes les entrées valides.

Algorithmique Algorithmes et Programmation python 4


Exemple simple d’Algorithme

Prenons l'exemple d'un algorithme pour trouver le maximum entre deux nombres :

Entrée : Deux nombres, A et B.

Instructions :

Si A > B, alors afficher A.

Sinon, afficher B.

Sortie : Le plus grand des deux nombres.

Algorithmique Algorithmes et Programmation python 5


Représentation Graphique

Organigramme:
Représentation graphique d’un algorithme avec des symboles (carrés, losanges,
rectangle etc.)

Simple Exemple:
Ecrire un algorithme qui permet d’afficher le message : « Bonjour tout le monde »

Algorithmique Algorithmes et Programmation python 6


Organigramme

Autre Exemple:

Algorithmique Algorithmes et Programmation python 7


Pseudo-code

Pseudo-code: représentation textuelle avec une série de conventions, il est plus


pratique pour écrire un algorithme.

Algorithmique Algorithmes et Programmation python 8


Etapes de résolution informatique d’un problème

Algorithmique Algorithmes et Programmation python 9


Etapes de résolution informatique d’un problème

Avant la réalisation d’un programme avec n’importe quel langage de


programmation, le programmeur doit passer par les étapes suivantes constituant une
analyse descendante d’un problème.

1. Définition du problème

Il s’agit de bien définir le problème et souligner toutes ses spécifications et les


conditions nécessaires à sa réalisation.
Pour une définition précise du problème, on essaie de réponde aux questions
suivantes :
 Quelles sont les données du problème?
 Quelles sont les erreurs susceptibles de se produire ?
 Quels sont les résultats à fournir? et comment les présenter?
 Quels sont les traitements (et les techniques) à effectuer?
Algorithmique Algorithmes et Programmation python 10
Etapes de résolution informatique d’un problème

2. Structure générale

Dans cette étape, on procède à une décomposition du problème en une suite de


sous-problèmes plus simples à résoudre.

3. Développement

Il s’agit d’élaborer l’algorithme correspondant à chaque sous-problème de


l’étape précédente et l’algorithme global du problème.

4. Validation de l’algorithme

Dans cette étape, on vérifie si l’algorithme répond bien à toutes les


spécifications du problème définies à l’étape 1.

Algorithmique Algorithmes et Programmation python 11


Etapes de résolution informatique d’un problème

5. Le codage

On traduit l’algorithme, validé, en un programme dans un langage de


programmation adéquat, disponible et maîtrisé, pour le rendre exécutable par la
machine.

6. Mise au point

Corriger les erreurs commises à l’étape précédente. Les étapes 5 et 6 font aussi
partie de la compilation d’un programme. Le compilateur n’est rien d’autre qu’un
gros programme qui, ayant reçu un autre programme écrit dans un langage évolué,
l’analyse(détermine les erreurs de syntaxe, mais pas de conception et de logique) et
le traduit en un langage machine; il traduit donc le code source en un exécutable.
Chaque langage de programmation possède donc un compilateur.

Algorithmique Algorithmes et Programmation python 12


Concept Général: Résumé

C’est quoi un algorithme?


 Un algorithme est un ensemble d’instructions à suivre pour résoudre un problème.
Quelle est l’intérêt d’un algorithme?
 Il permet la résolution du problème d’une façon générale indépendamment du langage de
programmation choisi.
Quelle est la différence entre un programme et un algorithme
 Un programme est la traduction d’un algorithme dans un langage de
programmation. Par exemple, on utilisera le même algorithme pour une
programmation en Java, ou bien en C ou en C++…etc.
 La rédaction d’un algorithme précède la programmation.

Algorithmique Algorithmes et Programmation python 13


Concept Général: Résumé

Quelle est la structure d’un algorithme ?

Algorithmique Algorithmes et Programmation python 14


Variable : Définition

Définition :

 Une variable est une entité (emplacement mémoire) qui contient une information , qui sert
à stocker la valeur d’une donnée dans un langage de programmation.
 Elle est caractérisée par :
 Un nom, on parle d’identifiant : (identification ou désignation de l’emplacement
mémoire de la variable) qui la différencie des autres et permet l’accès à sa valeur.
 Une valeur (c’est le contenu actuel de l’emplacement mémoire de la variable).
 Un type : qui spécifie le domaine de valeurs que peut prendre la variable. (entier, réel,
booléen, caractère, chaîne de caractères, …).

Algorithmique Algorithmes et Programmation python 15


Variable : Règles d’identificateurs

Règles d’identificateurs

Le nom d’une variable est soumis à quelques règles qui varient selon le langage, mais en
général:
 Un nom doit commencer par une lettre alphabétique;
exemple valide: A1
exemple invalide: 1A
 Doit être constitué uniquement de lettres, de chiffres et du soulignement (« _ ») (Éviter les
caractères de ponctuation et les espaces)
valides: Info2011, Info_2011
invalides: Info 2011,Info-2011,Info;2011
 Doit être différent des mots réservés du langage (par exemple en C: int, float, double, switch,
case, for, main, return, …) ;
 La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé.
 Pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées .
Algorithmique Algorithmes et Programmation python 16
Variable : Règles d’identificateurs

Règles d’identificateurs

Exemples: TotalVentes2004, Prix_TTC, Prix_HT

Remarque : Dans les langages de programmation, une variable sert à stocker la valeur
d’une donnée, elle désigne en fait un emplacement mémoire dont le contenu peut changer
au cours d’un programme (d’où le nom variable)

Signalez l’erreur dans ces noms des variables:


• 1GM
• GM1
• GM;2015 ou GM 2015
• GM_2015 GM2015

Algorithmique Algorithmes et Programmation python 17


Variable: Types de base
Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre, les types
offerts par la plus part des langages sont:
 Type numérique (entier ou réel)

• Byte (codé sur 1 octet): de 0 à 255


• Entier court (codé sur 2 octets) : -32 768 à 32 767
• Entier long (codé sur 4 ou 8 octets)
• Réel simple précision (codé sur 4 octets)
• Réel double précision (codé sur 8 octets)
 Type logique ou booléen: deux valeurs VRAI ou FAUX
 Type caractère: lettres majuscules, minuscules, chiffres, symboles, …

exemples: ’A’, ’a’, ’1’, ’?’, …


 Type chaîne de caractère: toute suite de caractères,

Algorithmique exemples: " Nom, Prénom",


Algorithmes et"code postale:
Programmation python1000", … 18
Variable : Déclaration

Déclaration de variable
 Toute variable utilisée dans un programme doit avoir fait l’objet d’une déclaration
préalable

 En pseudo-code, la déclaration de variables est effectuée par la forme suivante

Syntaxe: Var liste d'identificateurs : type

Exemple:
Var i, j, k : entier
x, y : réel
VRAI: booléen
Ch1, ch2 : chaîne de caractères

Algorithmique Algorithmes et Programmation python 19


Constante : Définition

Définition

 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.

Syntaxe:
Constante ID =valeur : type

 Par convention, les noms de constantes sont en MAJUSCULES.


 Une constante doit toujours recevoir une valeur dès sa déclaration.
Exemple :
Constante PI=3.14 : réel,
MAXI=32 : entier

Algorithmique Algorithmes et Programmation python 20


Affectation : Définition

C’est l’attribution d’une valeur à une variable.


Notation : « ».
On affecte une variable par une expression du même type.
L’ expression du style : x  expression signifie que : la variable x prend la valeur de
l’expression à droite.
Exemples :
X -2.56 , signifie que la variable X reçoit la valeur -2.56 (sa valeur actuelle). Son type
est réel.
Y1  VRAI. Son type est booléen {vrai, faux}.
Z  ‘Bonjour’. Son type est chaîne de caractères.
Il existe trois formes d’affectation :
Variable  constante. (voir les 3 exemples précités).
Variable  variable (ex. T  Z et donc la valeur de la variable T est ‘Bonjour’).
Algorithmique Algorithmes et Programmation python 21
Variable  expression composée, arithmétique ou logique (ex. M  (x2 +1)/2).
Affectation : Exemples

 L'affectation d'une variable consiste à donner une valeur à une variable.


 En algorithmique, on utilise le signe '←' pour affecter une valeur à une variable.

i ← 0
J ← i+15
x ← 1.5
c ← 'A'
ch ← "Bonjour"

Remarque: La variable et la valeur dans une affectation doivent être de même type.

Question: Cette affectation est elle juste?


Var i : Entier

i ← "GM" /* Erreur */

Algorithmes et Programmation python 22


Affectation : Remarques

Faire attention à la concordance des types de variables pendant l’affectation.


Supposons que x est de type réel et que n est de type entier. L’affectation x=n est valide
alors que n = x ne l’est pas.
Remarque :
Beaucoup de langages de programmation (C/C++, Java, …) utilisent le signe égal = pour
l’affectation ←. Attention aux confusions:
 l'affectation n'est pas commutative : AB est différente de BA
 l'affectation est différente d'une équation mathématique :
 AA+1 a un sens en langages de programmation
 A+12 n'est pas possible en langages de programmation et n'est pas
équivalente à A1
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
Algorithmique Algorithmes et Programmation python 23
Affectation : Exercice

Exercice corrigé:

Donnez les valeurs des variables A et B après exécution des instructions suivantes :

Algorithme Affectation

Var A,B: Entier

Debut
A 1
B 2
A B
B A

Fin

Question : Les deux dernières instructions permettent-elles d’échanger les valeurs


de A et B ?
Réponse: NON! Pour échanger les deux valeurs. Il nous faut une autre variable C
Algorithmique Algorithmes et Programmation python 24
Affectation : Exercices

Exercice 1:

Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?

Algorithme Ex1
Variables A, B, C: Entier
Début
A ← 3
B ← 7
A ← B
B ← A+5
C ← A + B
C ← B – A
Fin

Algorithmique Algorithmes et Programmation python 25


Affectation : Exercices

Exercice 2:

1. Donnez les valeurs des variables A et B après exécution des instructions suivantes ?

Algorithme Ex2
Variables A, B : Entier
Début
A ← 1
B ← 2
A ← B
B ← A
Fin

2. Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B

Algorithmique Algorithmes et Programmation python 26


Affectation : Exercices

Exercice 3:

1. Ecrire un algorithme permettant d’effectuer une permutation circulaire de trois


nombres entiers a,b et c.
Exemple : a=10 b=20 c=30
Après permutation a=30 b=10 c=20

Algorithmique Algorithmes et Programmation python 27


Opérateur :

Définition
 Un opérateur est un symbole qui représente une opération.
 En pseudo-langage, les opérateurs sont :
 Opérateurs arithmétiques : + addition
- soustraction
* multiplication
/ division
% modulo
^ puissance

 Opérateurs de comparaison : = ≠ < ≤ > ≥

 Opérateurs logiques : NON ET OU

Algorithmique Algorithmes et Programmation python 28


Expression : Définition

Définition

 Une expression est la combinaison d’un certain nombre de constantes, valeurs,


variables et opérateurs.
 Selon le type de l’expression on peut distinguer trois classes d’expressions : expression
arithmétique, expression logique et expression de chaîne de caractère.
Expressions arithmétiques
 Ce sont les expressions dont le résultat est un nombre entier ou réel.
 Les opérateurs : + , -, * et /
Exemple : n + 10 * cste /q
 Les opérateurs arithmétiques n’ont pas tous le même degré de priorité. Lors de
l’évaluation d’une expression on commence par la multiplication, ensuite, la division,
après l’addition et enfin la soustraction
Algorithmique Algorithmes et Programmation python 29
Expression : Définition

Expressions logiques
 Ce sont les expressions dont le résultat est vrai ou faux
 Les opérateurs : et, ou, non, <, ≤, >, ≥, =, ≠
Exemple : Formulation de la condition de réussite des étudiants en fonction de la moyenne
générale (m) et de la note de l’option de l’étudiant (Nop).
(m ≥ 10 et Nop > 12) ou (m >12 et Nop > 7)
Expressions de chaînes de caractères
 Ce sont les expressions qui opèrent sur les chaînes de caractère. Parmi les opérations
appliquées sur les chaînes de caractère on peut citer :
 Concaténation(ch1, ch2) : concaténation des deux chaînes ch1 et ch2.
 Inverse(ch1) : inverser la chaîne ch1
Algorithmique Algorithmes et Programmation python 30
Expression : Exercice

Exercice 4
A, B, C, D, E, X et Y sont des variables de type Entier
N, M et L sont des variables de type Booléen
Soient les instructions d’affectation suivantes :
A  20 B  5 C  -10 D  2 X  12 Y  15 N  VRAI
M  FAUX

a) Evaluer les expressions suivantes et indiquer leurs types


(1) (5*X)+2*((3*B)+4)
(2) (5*(X+2)*3)*(B+4)
(3) A=(B+ 12)
(4) A<>(C*(-D))
(5) (X+ 1)*(A+C)
(6) NON(B<>5) OU (M=VRAI)
(7) (N=VRAI) ET ((M=FAUX)OU(B=5))
(8) NON(M=FAUX)
Algorithmique Algorithmes et Programmation python 31
Expression : Exercice

b) Commenter les instructions suivantes en indiquant les nouvelles valeurs des variables
modifiées dans chaque cas
(1) AA+(X+5)
(2) AA*C+(X-D)
(3) AA Mod D+1
(4) EA Div 6+B
(5) BA*A-A
(6) LNON(N)
(7) MNON(N)ET (NOM(M))

Algorithmique Algorithmes et Programmation python 32


Instructions de base :

 Un programme informatique est formé de quatre types d’instructions:

 l’affectation de variable ;
 la lecture et/ou l’écriture ;
 les tests ;
 les boucles.

Algorithmique Algorithmes et Programmation python 33


Entrée / Sortie : Lecture

 L'instruction « Lire » permet de lire une donnée

Lire(var) /* permet de lire une valeur et de l'associer à la variable var */

C’est une opération qui consiste à attribuer une valeur de l’extérieur, par une unité d’entrée
(ex. clavier, capteur de grandeurs physique, etc.), à une variable.
Notation : LIRE(x) ou LIRE(x,y,...).
Exemple :
x, t : réel
p : entier
lire(x)
lire(t,p)
Pour un programme exécutable, la saisie de la valeur se fait généralement à partir du
clavier. Et cette instruction arrête le programme jusqu'à ce que la valeur saisie soit
validée
Algorithmique avec la touche ENTREE.
Algorithmes et Programmation python 34
Entrée / Sortie : Ecrire

 L'instruction « Ecrire » permet d'envoyer un message vers la sortie (qui généralement


l'écran)
Ecrire(var1, var2,...) /* permet d'envoyer vers la sortie les valeurs var1, var2*/

Son rôle est de faire sortir l’information à l’extérieur par un périphérique de sortie. Cette
information peut être numérique, chaîne de caractères,...
Notation : Ecrire(information1,information2,...).
Ecrire(x) : écrit la valeur de la variable x.
Ecrire(‘’Salut’’) : affiche ou écrit le message : Salut (le texte doit être toujours entre deux
apostrophes).
Pour afficher un caractère il faut le délimiter par ‘ et ’. par exemple Ecrire(‘c’)
Pour afficher une chaîne de caractère il faut la délimiter par ” et ”. Par exemple
Ecrire(”Bonjour”)
Algorithmique Algorithmes et Programmation python 35
Entrée / Sortie : Ecrire

Exercice 5

Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule
et affiche le double de ce nombre

Exercice 6

Ecrire un algorithme qui vous demande de saisir votre nom puis votre prénom et
qui affiche ensuite votre nom complet

Algorithmique Algorithmes et Programmation python 36


Instructions de contrôle : Séquence

On dit aussi instruction composée : c’est une suite d’instructions (arithmétiques ou


autres), délimitée par les mots-clés, DEBUT et FIN, qui s’exécutent séquentiellement
(c’est à dire l’une après l’autre).

Organigramme de la séquence (instruction


composée)
Algorithmique Algorithmes et Programmation python 37
Instructions de contrôle : Séquence

L’algorithme suivant lit les variables x et y, en fait la somme z et affiche le résultat :

Algorithmique Algorithmes et Programmation python 38


Instructions de contrôle : Sélection

Elle comporte les instructions conditionnelles : c’est à dire qu’une instruction


(simple ou composée) ne sera exécutée qu’après remplissage (satisfaction) de certaines
conditions. Dans ce qui suit <condition> a comme type les booléens {vrai, faux}; c’est
une expression construite à partir des variables booléennes et des connecteurs
(opéarteurs) logiques « et », « ou », « non ».

Algorithmique Algorithmes et Programmation python 39


Structures : Introduction

 Deux types de structures:


 les structures conditionnelles permettent d’exécuter certaines instructions sous
certaines conditions
 les structures répétitives (boucles) permettent de répéter des instructions soit un
certain nombre de fois ou bien sous certaines conditions.

Algorithmique Algorithmes et Programmation python 40


Structure Conditionnelle : Si

Définition

 Les instructions conditionnelles servent à exécuter une instruction ou une séquence


d'instructions que Si une condition est vérifiée.

Forme 1 Organigramme

oui
SI <condition> ALORS condition instruction
instructions
FSI non

Fin
Si la condition <condition> est vraie, alors exécuter les instructions; sinon on ne fait
rien. On passe à l’exécution de l’instruction suivante (qui est juste après FSI)

Algorithmique Algorithmes et Programmation python 41


Structure Conditionnelle : Si

Forme 2 Organigramme:

SI <condition> ALORS
oui
Instructions 1 condition instruction1
SINON non
Instructions 2
FSI instruction2

Si la condition <condition> est vraie, alors exécuter les instructions 1; sinon exécuter
les instructions 2.

Algorithmique Algorithmes et Programmation python 42


Structure Conditionnelle : Si

Syntaxe:
Si condition Alors
Tâche 1
Tâche 2
...
Sinon
Tâche A
Tâche B
...
FinSi

Exemple 1:
Ecrire un algorithme qui permet d'afficher la valeur absolue d'un réel donnée

Algorithmique Algorithmes et Programmation python 43


Structure Conditionnelle : Si

Correction :
Algorithme : valeur_absolue_1

Var n: Réel
Debut

Ecrire("entrer un nombre entier : ")


Lire(n)

Si ( n > 0 ) Alors
Ecrire("la valeur absolue de ", n, " est ", n)
Sinon
Ecrire("la valeur absolue de ", n, " est ", -n)
FinSi

Fin

Remarque: La forme la plus simple d'une instruction Si est:


Si <condition> Alors
<séquence>
FinSi

Si la condition est VRAI, la suite d'instruction séquence est exécutée, sinon rien ne se passe
Algorithmique Algorithmes et Programmation python 44
Structure Conditionnelle : Si

Exemple 2:
l’algorithme suivant compare les variables x et y. La variable z contient la
différence x-y si x est supérieure ou égale à y, sinon z contient y-x. Ensuite
affiche la valeur absolue de x - y
Correction :
Algorithme : AbsDdiff_xy
Var x,y,z : entier
Debut

lire(x,y)

Si (x > y) Alors
z = x – y
Sinon
z = y – x
FinSi

écrire(‘la valeur absolue de x-y est : ‘,z)


Algorithmique Algorithmes et Programmation python 45
Fin
Structure Conditionnelle : Si- Composé

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é
C1 C2 C1 et c2 C1 ou c2 C1 xor c2 C1 Non(c1)
Vrai Vrai Vrai Vrai Faux Vrai Faux
Vrai Faux Faux Vrai Vrai Faux Vrai
Faux Vrai Faux Vrai Vrai
Faux Faux Faux Faux Faux
Algorithmique Algorithmes et Programmation python 46
Structure Conditionnelle : Si- Composé

Remarque

L’instruction après ALORS ou SINON est quelconque et peut être une instruction
SI. Dans ce cas, on dit qu’on a des SI imbriqués.

Exemple 1:

Si (a = 0) Alors
Si (b = 0) Alors
x = x/2 ;
FinSi
Sinon
x = 2*x ;
FinSi

On remarque que l’instruction ci-dessus affecte à la variable réelle x sa moitié si a et


b sont nulles. si a = 0, x est doublée.
Algorithmique Algorithmes et Programmation python 47
Structure Conditionnelle : Si- Composé

Exemple 2 – version 1:
Algorithme SigneNbre
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")
Finsi
FinSi
Fin
Algorithmique Algorithmes et Programmation python 48
Structure Conditionnelle : Si- Composé

Exemple 2 – version 2:

Algorithme SigneNbre
Variable
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

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.
Algorithmique Algorithmes et Programmation python 49
Structure Conditionnelle : Si Imbriquée

Les instructions définis dans le bloc « Si » peuvent contenir d'autres « instructions Si ».


Dans ce cas on parle d'instructions Si imbriquées

Si <condition1> alors
Si <condition 11> alors

<instructions A>

Sinon

<instructionsB>

FinSi
Sinon

Si condition2 alors

<instructionsC>

FinSi
FinSi

Algorithmique Algorithmes et Programmation python 50


Structure Conditionnelle : Exercices

Exercice 7:

Écrire un algorithme qui lit deux variables entières (A et B) au clavier et


affiche le signe du produit de A et B sans faire la multiplication.

Exercice 8:

Écrire un algorithme permettant de résoudre une équation du second degré


Ax2 +b X+c=0

Algorithmique Algorithmes et Programmation python 51


Structure Conditionnelle : Selon (Choix multiple)

« L'instruction Selon» permet de choisir un traitement entre plusieurs alternatives (plus de


deux). Elle permet d'exécuter une séquence d'instructions selon la valeur d'expression.
Cette structure permet de remplacer une succession de structures Si…Alors.
Organigramme: Début

valeur == oui instruction1


v1

non break

valeur == oui
instruction2
v2
non break

valeur == instruction3
autrement
Fin 52
Algorithmique Algorithmes et Programmation python
Structure Conditionnelle : Selon

Syntaxe:
Selon <variable> faire
cas v1 : Instructions 1
cas v2 : Instructions 2
cas v3 : Instructions 3
Cas v4 : Instructions 4
.
.
Autrement : traitement par défaut
FinSelon

Exemple :
Couleur code
Etablissement de correspondance entre une couleur et un Rouge 1
code. L’algorithme doit saisir un code entre 1 et 6 et affiche la Vert 2
Bleu 3
couleur correspondante. Le tableau suivant montre les couleurs Jaune 4
possibles et les codes correspondants. Blanc 5
Noir 6

Algorithmique Algorithmes et Programmation python 53


Structure Conditionnelle : Selon
Algorithme couleur
variables :
code :entier
début
Ecrire(‘’Donner le code’’)
lire(code)
Selon (code) faire
Cas 1 : écrire(″rouge″)
Cas 2 : écrire(″vert″)
Cas 3 : écrire(″bleu″)
Cas 4 : écrire(″jaune″)
Cas 5 : écrire(″blanc″)
Cas 6 : écrire(″noir″)
autrement : écrire(″couleur inconnue″)
finselon
fin
Exercice:
Ecrivez un algorithme qui permet d’effectuer la somme ou le produit ou la moyenne de
quatre entiers selon l’opération choisie.
Algorithmique Algorithmes et Programmation python 54
Structure Conditionnelle : Exercice
Algorithme Menu1
Solution:
Var choix, Nb1, Nb2, Nb3, Nb 4 : ENTIER
Debut
Ecrire ("Saisir quatre nombres")
Lire(Nb1, Nb2, Nb3, Nb4) (*Lecture des nombres*)
Ecrire("Tapez 1 pour la Somme") (*Afficher le menu*)
Ecrire ("Tapez 2 pour faire le Produit")
Ecrire ("Tapez 3 pour faire la Moyenne")
Ecrire ("Tapez la valeur de votre choix")

Lire (choix) (*lecture du choix*)

(*Comparaison et exécution de l’action correspondante*)


Selon choix faire
cas 1 : Ecrire ("la somme est: ", Nb1 + Nb2 +Nb3 + Nb4)
cas 2 : Ecrire ("le produit est: ", Nb1 * Nb2 * Nb3 * Nb4)
cas 3 : Ecrire ("la moyenne est : ", (Nb1 +Nb2 + Nb3 + Nb4)
/4)
cas Sinon Ecrire ("votre choix est incorrect")
FinSelon
Algorithmique Algorithmes et Programmation python 55
Fin
Structures Répétitives

Introduction

Les structures répétitives aussi appelées boucles, permettent de répéter un traitement autant
de fois qu'il est nécessaire: soit un nombre déterminé de fois, soit tant qu'une condition est
vraie.
Il existe trois grands types principaux de structures répétitives:
 la structure Pour qui permet de répéter une instruction un certain nombre de fois ;
 la structure Tant que…Faire, qui permet d'effectuer une instruction tant qu'une condition
est satisfaite ;
 la structure Répéter…Jusqu'à, qui comme son nom l'indique, permet de répéter une
instruction jusqu'à ce qu'une condition soit satisfaite.

Algorithmique Algorithmes et Programmation python 56


Structures Répétitives : Pour

La boucle « Pour » permet de répéter une instruction un certain nombre de fois ;

Organigramme:
Début

initialisation

oui
condition != 0 instruction

non modification

Algorithmique Fin
Algorithmes et Programmation python 57
Structures Répétitives : Pour

Debut
Debut
Ecrire("Bonjour tout le monde ") Pour i 1 à 300 faire
Ecrire("Bonjour tout le monde ")
. 300 fois Ecrire("Bonjour tout le monde ")
.
Ecrire("Bonjour tout le monde ") FinPour
.
Fin
Fin

Pour Comp  val_init à val_final faire


instruction1
.
Syntaxe: . Bloc d’instructions
.
instruction n
FinPour

Algorithmique Algorithmes et Programmation python 58


Structures Répétitives : Pour

Exemple 1

Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul

Version 1
Var
x, puiss : réel
n, i : entier
Début
Ecrire (" Entrez la valeur de x ")
Lire (x)
Ecrire (" Entrez la valeur de n ")
Lire (n)
puiss ← 1
Pour i allant de 1 à n
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Algorithmique Fin Algorithmes et Programmation python 59
Structures Répétitives : Pour

Exemple 1

Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul

Version 2 (avec un pas négatif)


Var
x, puiss : réel
n, i : entier
Début
Ecrire (" Entrez respectivement les valeurs de x et n ")
Lire (x, n)
puiss ← 1
Pour i allant de n à 1 par pas -1
puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin
Algorithmique Algorithmes et Programmation python 60
Structures Répétitives : Pour

Exemple 2

Afficher tous les multiples de 4 qui sont inférieur à 100


Algorithme multiple_4
variables :
i :entier
début
Pour i allant de 0 à 100 faire incrément 4
écrire(i)
finPour
fin

Algorithmique Algorithmes et Programmation python 61


Structures Répétitives : Pour

Exemple 3
La somme des entiers de 1 à n

Var
i, n, s : entier ;
DEBUT
s = 0;
lire(n);
POUR i = 1 à n FAIRE
s = s + i;
FinPOUR
écrire(s);
FIN

Algorithmique Algorithmes et Programmation python 62


Structures Répétitives : Pour

Exercice 9
Calculer la somme des entiers de 1 à 1000

Exercice 10
Afficher tous les multiples de 4 qui sont inférieur à 100

Exercice 11
Ecrire un algorithme permettant de calculer la somme de tous les nombres
impairs entre deux valeurs N et M.

Exercice 12
Ecrire un programme qui calcule la somme suivante :
i n
S 
i 1
( 1) i (i 2  i )

Algorithmique Algorithmes et Programmation python 63


Structures Répétitives : Tant que

La boucle « Tant que … Faire » permet de répéter un traitement tant qu'une expression
conditionnelle est vraie. Si la condition n'est pas vraie, le traitement ne sera pas exécuté.
Le nombre d’itération n’est pas connu à priori. La boucle tantque fonctionne de la
manière suivante :
• Evaluer une expression logique
• Vraie : elle fait le bloc et recommence
• Fausse : elle sort

Tant que <condition> faire


instruction1
.
. Bloc d’instructions
.
instruction n
FinTantQue

Algorithmique Algorithmes et Programmation python 64


Structures Répétitives : Tant que

On note qu’on évalue d’abord la condition < condition> ; si elle est vraie on exécute les
instructions « instructions » et on retourne pour réévaluer la condition. Dès que la
condition est fausse on exécute l’instruction qui suit la boucle TANT QUE ... FAIRE…
Organigramme:

Début

oui
condition != 0 instruction

non

Algorithmique Algorithmes et Programmation python 65


Fin
Structures Répétitives : Tant que

Exemple 1 :
Contrôle de saisie d'une lettre majuscule jusqu’à ce que le caractère entré soit valable
Algorithme ControleChar
Var
C : caractère
Debut
Ecrire (" Entrez une lettre majuscule ")
Lire (C)
TantQue (C < 'A' ou C > 'Z')
Ecrire ("Saisie erronée. Recommencez")
Lire (C)
FinTantQue
Ecrire ("Saisie valable")
Fin

Algorithmique Algorithmes et Programmation python 66


Structures Répétitives : Tant que

Exemple 2 :
Un algorithme qui détermine le premier nombre entier N tel que la somme de 1 à N
dépasse strictement 100
version 1
Var som, i : entier
Debut
i←0
som← 0
TantQue (som <=100)
i ← i+1
som ← som+i
FinTantQue
Ecrire (" La valeur cherchée est N= ", i)
Fin

Algorithmique Algorithmes et Programmation python 67


Structures Répétitives : Tant que

Version 2
Attention à l'ordre des instructions et aux valeurs initiales
Var som, i : entier
Debut
som ← 0
i←1
TantQue (som <=100)
som ← som + i
i ← i+1
FinTantQue
Ecrire (" La valeur cherchée est N= ", i-1)
Fin

On observe qu’il faut initialiser les variables i et s à 0 (au début du programme les
variables contiennent des valeurs quelconques).
Remarque : La condition peut ne pas être remplie dès le départ. Dans ce cas aucune
instruction, à l’intérieur de la boucle, ne sera exécutée.
Algorithmique Algorithmes et Programmation python 68
Structures Répétitives : Tant que

Exemple
Dans l’algorithme suivant la boucle n’a pas d’effet sur la variable entière y vu que
la condition de la boucle est toujours fausse. Donc y contient à la fin la valeur 0.

Var
x : booléen
y : entier
DEBUT
x = FAUX
y=0
TANT QUE ( x = VRAI ) FAIRE
y=y+1
FinTantQue
écrire(y);
FIN

Algorithmique Algorithmes et Programmation python 69


Structures Répétitives : Tant que

 Une des instructions du corps de la boucle doit absolument changer la valeur de


condition de vrai à faux (après un certain nombre d'itérations), sinon le programme
tourne indéfiniment (Attention aux boucles infinies).

Exemple 1 C’est un programme qui boucle


Considérons l’algorithme suivant
Var indéfiniment. La condition de la boucle
x : booléen ; est toujours vraie et l’instruction,
y : entier ;
DEBUT écrire(y), ne sera jamais atteinte.
x = FAUX;
Exemple 2
y=0;
TANT QUE non (x) FAIRE i←2
y=y+1 ; TantQue (i > 0)
FinTantQue i ← i+1
écrire(y); FinTantQue
FIN

Algorithmique Algorithmes et Programmation python 70


Structures Répétitives : Tant que

Exercice 13:

Écrire un algorithme qui calcule la factorielle d’un entier n à saisir en utilisant la


boucle Tant que.

Exercice 14:

Écrire un algorithme qui permet de saisir une phrase caractère par caractère en
utilisant la boucle Tant que. . La fin de la phrase est identifiée par le caractère ‘.’

Exercice 14:
n

Écrire un algorithme qui calcule la somme des n premiers entiers :i


i 1

en utilisant la Tant que

Algorithmique Algorithmes et Programmation python 71


Structures Répétitives : Jusqu’à

Cette boucle sert à répéter une instruction jusqu'à ce qu'une condition (expression booléenne)
soit vraie.
Le traitement est exécuté, puis la condition est vérifiée.
 Si elle n'est pas vraie, on retourne au début de la boucle et le traitement est répété.
 Si la condition est vraie, on sort de la boucle et le programme continue séquentiellement.
Organigramme: Début

instruction

condition != 0 oui

non

Fin
Algorithmique Algorithmes et Programmation python 72
Structures Répétitives : Jusqu’à

Syntaxe:

Répéter
instruction1
.
. Bloc d’instructions
.
instruction n
Jusqu’à <condition d’arrêt>

Cette boucle ressemble à la boucle tantque, sauf qu’avec la boucle répéter …


jusqu’à, on commence par faire le bloc et ce n’est qu’après qu’on évalue l’expression
logique pour décider de reprendre le bloc ou de quitter la boucle.

Algorithmique Algorithmes et Programmation python 73


Structures Répétitives : Jusqu’à

Exemple : un algorithme qui détermine le premier nombre entier N tel que la somme
de 1 à N dépasse strictement 100 (version avec répéter jusqu'à)
Var
som, i : entier
Debut
som ← 0
i←0
Répéter
i ← i+1
som ← som+i
Jusqu'à ( som > 100)
Ecrire (" La valeur cherchée est N= ", i)
Fin

Algorithmique Algorithmes et Programmation python 74


Structures Répétitives : Jusqu’à

Exercice 15:
n

Écrire un algorithme qui calcule la somme des n premiers entiers : i


i 1

en utilisant la Tant que

Algorithmique Algorithmes et Programmation python 75


Structures : Résumé

Affectation Variable  Expression

Instruction d’entrée Lire(Variable)

Instruction de sortie Ecrire (expression)

Algorithmique Algorithmes et Programmation python 76


Structures : Résumé

Structures conditionnelles:

Si condition Alors
Tâche 1
Sinon
Tâche 2
FinSi

Selon <variable> faire

Cas valeur 1 : Instructions 1


.
.
Autrement : traitement par défaut

FinSelon

Algorithmique Algorithmes et Programmation python 77


Structures : Résumé

Boucles:
Tant que <condition> faire Pour Comp  val_init à val_final
faire

Bloc d’instructions
Bloc d’instructions
I suivant
FinTantQue
FinPour

Répéter

Bloc d’instructions

Jusqu’à <condition d’arrêt>

Algorithmique Algorithmes et Programmation python 78


Structures : Exercice

Ecrivez un algorithme qui demande un nombre au départ, et qui ensuite affiche la


table de multiplication de ce nombre
Résoudre cet exercice en utilisant:
9x1=9
1- la boucle pour 9x2=18
9x3=27
2- la boucle tant que 9x4=36
9x5=45
9x6=54
9x7=63
9x8=72
9x9=81
9x10=90

cas ou l’utilisateur entre le nombre 9

Algorithmique Algorithmes et Programmation python 79


Structures : Exercice

Solution avec la boucle pour:

Algorithme : table_de_multiplication

Var N,i: Entier


Debut

Ecrire("entrer un nombre: ")


Lire(n)
Ecrire("la table de multiplication de ce nombre est : ")

Pour i 1 a 10
Ecrire(N, "x" ,i, "=",N*i)
i Suivant
FinPour

Fin

Algorithmique Algorithmes et Programmation python 80


Structures : Exercice

Solution avec la boucle tant que:

Algorithme : table_de_multiplication

Var N,i: Entier


Debut

Ecrire("entrer un nombre: ")


Lire(n)
Ecrire("la table de multiplication de ce nombre est : ")

Tant que (i<10) faire


Ecrire(N, "x" ,i, "=",N*i)
ii+1
FinTantQue

Fin

Algorithmique Algorithmes et Programmation python 81


Structures : Exercice

Ecrivez un algorithme qui demande deux nombres a l’utilisateur et l’informe ensuite si le


produit est négatif ou positif (on inclut cette fois le traitement du cas ou le produit peut etre
nul). Attention, on ne doit pas calculer le produit!
Algorithme : table_de_multiplication

Var m,n: Entier

Debut

Ecrire("entrer deux nombres: ")


Lire(m,n)

Si (m=0 ou n=0) alors


Ecrire("entrer deux nombre ")

SinonSi (m<0 et n<0)ou(m>0 et n>0) alors


Ecrire("le produit est positif")

Sinon
Ecrire("le produit est negatif")
Fin
Algorithmique Algorithmes et Programmation python 82

Vous aimerez peut-être aussi