0% ont trouvé ce document utile (0 vote)
7 vues14 pages

Notions et éléments d'algorithmique

Transféré par

nestorkata466
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)
7 vues14 pages

Notions et éléments d'algorithmique

Transféré par

nestorkata466
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

Chapitre 8- Algorithmique

ALGORITHMIQUE

rg
A
CHAPITRE 8: ALGORITHMIQUE L
G

.o
 Leçon 1: Notions d’algorithmique
O
of R
I
 Leçon 2: Les éléments de bases et les instructions
simples
T
pr
H
 Leçon 3: Les structures de contrôles M
I
d

 Exercices et corrigés
Q
an

U
E
gr

[Link] 1
Chapitre 8- Algorithmique

Notions d’algorithmique
Compétences visées
 Définir algorithme et donner les propriétés d'un bon algorithme
 Identifier les étapes de résolution d'un problème
 Identifier les données, les traitements et les résultats d'un problème d onné

rg
A Introduction
Le mot « algorithme » vient du nom de l’auteur persan Al-Khawarizmi (né
L vers 780 - mort vers 850) qui a écrit en langue arabe le plus ancien traité d’algèbre «
G abrégé de calcul par la complétion et la simplification » dans lequel il décrivait des

.o
O procédés de calcul à suivre étape par étape pour résoudre des pro blèmes ramenés à
R des équations. On trouve des algorithmes dans des situations de la vie courante
of
(cuisiner, se vêtir) ou professionnelle (la conduite d’un train, la consultation d’un
I catalogue de bibliothèque, etc.).
T
pr
H I Définitions et propriétés
M Un algorithme est une suite finie et ordonnée d’instructions permettant de
I résoudre un problème donné. Le résultat doit donc s’obtenir en un temps fini.
d

L’algorithmique est la science qui étudie les algorithmes


Q Algorigramme : c’est une représentation graphique d’un algorithme. Pour le
an

U construire, on utilise des symboles normalisés.


E Un algorithme doit donc être :
 Compréhensible: car on n'écrit pas un algorithme pour soit même, mais pour
l'expliquer aux autres.
gr

 Lisible: L’algorithme doit respecter une structure bien définie


 De haut niveau: Il ne doit pas faire appel à des notions techniques relatives à un
langage programme particulier ou bien à un système d'exploitation donné.
 Précis: Chaque élément de l'algorithme ne doit pas porter à confusion, il est donc
important de lever toute ambiguïté
 Structuré: Un algorithme doit être composé de différentes parties facilement
identifiables
2 [Link]
Chapitre 8- Algorithmique
 Résoudre le problème posé.
 Toujours se terminer.

II Les étapes de résolution d’un algorithme


 Les entrées (ou la déclaration et la saisie des données)
 Le traitement
 Les sorties (ou l’affichage / l’impression des données transformées)

rg
A
II.1 Les entrées L
Il s’agit de repérer les données nécessaires à la résolution du problème. Dans G

.o
cette phase peut aussi figurer ce qu’on appelle l’entrée des données, qui peut se
manifester par la saisie de caractères ou de nombres sur le clavier.
O
Son symbole est of R
I
II.2 Le traitement T
pr
Il s’agit de déterminer toutes les étapes des traitements à faire et donc des H
"instructions" à donner pour une exécution automatique. Si ces instructions
s’exécutent en séquence, on parle d’algorithme séquentiel. Si les opérations
M
I
d

s’exécutent sur plusieurs processeurs en parallèle, on parle d’algorithme parallèle. Si


les taches s’exécutent sur un réseau de processeurs on parle d’algorithme réparti ou Q
an

distribué. Nous ne traiterons ici que des algorithmes séquentiels. U


Son symbole est
E
II.3 Les sorties
gr

Les résultats obtenus peuvent être affichés sur l’écran, ou imprimés sur papier,
ou bien encore conservés dans un fichier.
Son symbole est le même que pour l’entrée

III Langage et règles d’écriture d’un algorithme


Un algorithme peut être écrit en utilisant un langage de description
d’algorithme (LDA). Ce langage utilise un ensemble de mots clés et de structures
[Link] 3
Chapitre 8- Algorithmique
permettant de décrire de manière complète et claire l’ensemble des opérations à
exécuter sur des données pour obtenir des résultats. Un tel langage présente un réel
avantage, celui de pouvoir être transcrit dans un langage de programmation structuré
et lisible. Il ne faut donc pas confondre algorithme et programme.

IV Structure générale d’un algorithme


L’entête Algorithme Nom de l’algorithme

rg
A Les déclaration des constantes et variables {𝑪𝒐𝒏𝒔𝒕𝒂𝒏𝒕𝒆𝒔 ∶ 𝐿𝑖𝑠𝑡𝑒 𝑑𝑒𝑠 𝑐𝑜𝑛𝑠𝑡𝑎𝑛𝑡𝑒𝑠
𝑽𝒂𝒓𝒊𝒂𝒃𝒍𝒆𝒔: 𝐿𝑖𝑠𝑡𝑒 𝑑𝑒𝑠 𝑣𝑎𝑟𝑖𝑎𝑏𝑙𝑒𝑠
L
𝑫𝒆𝒃𝒖𝒕
G

.o
𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 1
𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 2
O Le corps de l’algorithme

𝑖𝑛𝑠𝑡𝑟𝑢𝑐𝑡𝑖𝑜𝑛 𝑛
R of { 𝑭𝒊𝒏
I  L‘en-tête permet tout simplement d‘identifier un algorithme par un nom. Ce
T nom n’influence en rien le bon déroulement de l’algorithme. En général il faut donner
pr
H des noms parlants à nos algorithmes, ceci pour permettre au lecteur d’avoir une idée
M de ce que fera l’algorithme;
 Les déclarations de constantes, variables, structures sont une liste exhaustive
I
d

des objets ou des données utilisés et manipulés dans le corps de l‘algorithme.


Q  Le corps de l‘algorithme contient les tâches (instructions, opérations) à
an

U exécuter. Ces tâches peuvent être des appels de fonction ou des instructions simples
E Le symbole de début et fin est
Dans un LDA, certains mots sont réservés pour un usage bien défini. On
gr

les nomme les mots clés. Ce sont les mots que le langage utilise pour son
fonctionnement. Dans notre langage de définition les mots clés commenceront
toujours par une majuscule et seront soulignés.

4 [Link]
Chapitre 8- Algorithmique

Les éléments de base et les instructions simples

Compétences visées
 Définir type, opérateur, constante, variable
 Identifier les types de base et les opérateurs de base
 Donner la différence entre une constante et une variable
 Donner les conventions de nommage des constantes et des variables

rg
 Définir : instruction, affectation, écriture, lecture A
 Donner le rôle de chaque instruction dans un algorithme L
 Exécuter un algorithme à la main G

.o
O
of R
A. Les éléments de base I
I Types de base T
pr
Un type de base est un type primitif, c'est-à-dire non décomposable H
pour le problème considéré. Les types de bases à utiliser dépendent du problème à
M
résoudre. Le type définit plusieurs choses :
I
d

On distingue cinq principaux types qui sont :


 Le type entier : Le type entier ne peuvent accepter que les entiers relatifs, c'est -à- Q
an

dire 45; 50; -567 U


 Le type réel : Ce type utilise les nombres réels. Ce type accepte les entiers d’autant E
plus qu’un entier est aussi un réel. On peut donc avoir : -3.67 ; 4.23578
 Le type booléen : type booléen ne peut prendre que deux valeurs : Vrai ou Faux
gr

 Le type caractère : ce type n’accepte qu’un seul caractère alphabétique. Les


caractères avec accent, les caractères spéciaux ne sont pas permis et leur utilisation
dans ce cas de figure sera considéré comme erreur. Nous pouvons donc avoir entre
autre ‘a’ ; ‘A’; NB: les caractères seront notés entre une côte.
 Le type chaîne de caractères : ce type accepte plusieurs caractères.
NB: les chaînes de caractères seront notées entre double côtes.
Exemple : "électronique"

[Link] 5
Chapitre 8- Algorithmique

II Opérandes et operateurs
1 Définitions
Un operateur est un outil qui permet d’agir sur une variable ou d’effectuer des
calculs.
Un opérande est une donnée utilisée par un opérateur.
Exemple : Dans «7-x», «-» désigne l’opérateur ; «7» et «x» sont les opérandes
2 Types d’operateurs

rg
A Il existe plusieurs types d’opérateurs :
L  Les opérateurs arithmétiques qui permettent d’effectuer des opérations
arithmétiques entre opérandes numériques :
G

.o
 Opérateurs élémentaires : «+», «-», «X», «/», «DIV» (division entière)
O  Changement de signe : «-»
R  Élévation à la puissance : «^»
of
I  Reste d’une division entière : «modulo» (ou «%»)
T  Les opérateurs de comparaison («=», «#», «>», «<», «≤» et «≥») qui
pr
H permettent de comparer deux opérandes et produisent une valeur booléenne, en
s’appuyant sur des relations d’ordre :
M
 Ordre naturel pour les entiers et les réels
I
d

 Ordre lexicographique ASCII pour les chaînes de caractère


Q  Les opérateurs logiques qui combinent des opérandes booléens pour former des
an

U expressions logiques plus complexes :


E  Opérateur unaire : «non» (négation)
 Opérateurs binaires : «et» (conjonction), «ou» (disjonction),
gr

 L’opérateur d’affectation, représenté par le symbole ←, qui confère une valeur à


une variable ou à une constante.

III Constantes et variables


Les constantes et les variables sont des éléments fondamentaux,
indispensables au bon déroulement d’un algorithme, caractérisés par un
identificateur, une valeur et un type.

6 [Link]
Chapitre 8- Algorithmique

1 Définitions
Une variable est une donnée (emplacement) stockée dans la mémoire de
l’ordinateur. Elle est repérée par un identificateur (nom de la variable constitué
de lettres et/ou de chiffres, sans espace) et contient une valeur dont le type
(nature de la variable) peut être un entier, un réel, un booléen, un caractère, une
chaîne de caractères… Il ne faut pas confondre constante et variable.
Une constante, comme une variable, peut représenter un chiffre, un
nombre, un caractère, une chaîne de caractères, un booléen. Toutefois,

rg
contrairement à une variable dont la valeur peut être modifiée au cours de A
l’exécution de l’algorithme, la valeur d’une constante ne varie pas. L
Remarque : G

.o
 Le type d’une variable détermine l’ensemble des valeurs qu’elle peut prendre
et les opérations réalisables qu’elle peut subir.
O
 L’utilisation d’une variable doit être précédée de sa déclaration.
of R
 Si la valeur de la variable peut changer au cours du déroulement de I
l’algorithme, en revanche son type est figé lors de déclaration. T
pr
La syntaxe pour déclarer une variable est la suivante : H
variable ou var Nom de la variable : type de la variable
M
Exemple : variable moyenne : reel var a : entier
I
d

La syntaxe pour déclarer une constante est la suivante :


constante ou const Nom de la constante = valeur Q
an

Exemple : constante pi=3,14 const sexe=’M’ U


E
2 Conventions de nommage
Le nom d’un algorithme, d’une variable ou d’une constante doit respecter les
gr

règles suivantes:
 commencer par une lettre ;
 ne comporter ni caractère spécial (comme l’espace) ni ponctuation
 ne pas être un mot du langage algorithmique (comme « algorithme »,
« début », « fin », « variable », « non », « ou », « et », « si », « sinon », «
pour »…)

[Link] 7
Chapitre 8- Algorithmique

2. Les instructions simples


Une instruction est un ordre qui permet de spécifier à la machine l’action à
effectuer.
On distingue plusieurs types d’instructions : les instructions simples et les
structures de contrôle.
Parmi les instructions simples on a :
- L’instruction d’affectation
- L’instruction de lecture

rg
A - L’instruction d’écriture
L a Affectation
G L’instruction d’affectation permet d’attribuer une valeur à une variable.

.o
Cette instruction signifie : « identificateur prend valeur » noté « identificateur
O valeur »
R La syntaxe générale est la suivante : NomVariable ←Expression ;
of
I « Expression » peut être :
T une constante. ..........................................................................Ex : surface ← 40
pr
H une autre variable. .........................................…........Ex : Variable1 ←Variable2
le résultat d’une fonction. ............................Ex : resultat ← racine (nombre)
M
un calcul portant sur différents éléments. .……... Ex : S← (PI *D*D/ 4)
I
d

Après l’affectation, le contenu de « variable » est modifié. Il contient


Q désormais, la valeur de l’expression de droite. Son mode de fonctionnement est le
an

U suivant : On évalue d’abord l’expression de droite avant de l’affecter à « variable ».


E Exemple N←5 c’est-à-dire N prend la valeur de 5.N contient désormais la valeur 5
Exemple 1 Corrigé
gr

Donner les valeurs finales de A, B, et C Après la valeur des variables est :


Variables
A, B, C : Entier A = ? B = ? C = ?
Début
A ←5 ;
A = 5 B = ? C = ?
B ←3 ;
A = 5 B = 3 C = ?
C ←A + B ;
A = 5 B = 3 C = 8
2.1 Enregistrement
A ←2 ;graphique A = 2 B = 3 C = 8
C ←B – A ; A =2 B =3 C =1
Fin

8 [Link]
Chapitre 8- Algorithmique
b I nstruction d’écriture
Cette instruction permet d’effectuer l’affichage un message à l’écran.
 Mot clé: ecrire ou afficher
 Syntaxe: ecrire(‘expression’). Expression sera affiché tel quel à l’écran.
Exemple: ecrire (‘entrer votre nom’) ; afficher (‘Bonjour à tous’)
Exemple 2 Corrigé
Quel résultat produit le programme On verra apparaître à l’écran 4,

rg
suivant ? puis 16 (qui vaut 4^2) A
Variables
val, carre :reel L
Début
G

.o
val ← 4 ;
carre ← Val^2 ; O
Ecrire (Val) ; 4
Ecrire (carre) ; of 16
R
Fin
*
I
Le symbole de l’écriture ou affichage est : T
pr
Exemple : Algorigramme de ecrire (‘[Link]’) H
M
c I nstruction de lecture I
d

Cette instruction permet d’entrer une donnée à partir du clavier. La machine attend
que l’utilisateur tape une valeur au clavier. Q
an

 Mot clé: lire ou saisir U


 Syntaxe: lire(nom_variable) (nom_variable étant une variable d’un type E
déclaré à l’avance).
gr

Remarque
Avant de Lire une variable, il est très fortement conseillé d’écrire des libellés à
l’écran, afin de prévenir l’utilisateur de ce qu’il doit frappe
Exemple 3
Écrire un algorithme qui demande un nombre entier à l’utilisateur, puis qui calcule
et affiche le double de ce nombre.

[Link] 9
Chapitre 8- Algorithmique

Corrigé
Variables
nb, carre : Entier
Début
Ecrire("Entrez un nombre :" ) ;
Lire(nb ) ;
double ←2*nb;
Ecrire("Son double est : ", double) ;
Fin

rg
A Le symbole de lecture ou saisir est :
L Exemple : Algorigramme de lire (a) est
G

.o
O
R of
I
T
pr
H
M
I
d

Q
an

U
E
gr

10 [Link]
Chapitre 8- Algorithmique

Les structures de contrôles

Compétences visées
 Donner les différents types de structures de contrôle.
 Donner la syntaxe de chacune de ces structures
 Choisir la structure de contrôle appropriée pour la résolution d’un problème.

rg
A priori, dans un algorithme les instructions sont exécutées séquentiellement, A
c’est-à-dire dans l’ordre dans laquelle elles apparaissent. Or la puissance et le
«comportement intelligent » d’un algorithme proviennent essentiellement : L
G

.o
 De la possibilité d’effectuer des choix, c’est-à-dire de se comporter
différemment suivant des circonstances, par exemple en fonction d’une réponse O
d’utilisateur, d’un résultat de calcul...
of R
 De la possibilité d’effectuer des boucles ou itérations, autrement dit de
I
répéter plusieurs fois un ensemble donné d’instructions.
T
pr
En résumé, les opérations élémentaires relatives à la résolution d’un problème, H
peuvent en fonction de leur enchainement, être organisées suivant une famille M
de structures algorithmiques fondamentales : I
d

 Les structures séquentielles ;


 Les structures alternatives ;
Q
an

 Les structures de choix ; U


 Les structures itératives ou répétitives. E

I. Les structures séquentielles


gr

Les structures séquentielles se caractérisent par une suite d’actions à exécuter


successivement dans l’ordre énoncé. Une structure séquentielle peut donc présenter
de la manière suivante :
Début :
instruction 1
instruction 2
instruction n
Fin

[Link] 11
Chapitre 8- Algorithmique

II. Les structures alternatives


La résolution de certains problèmes nécessite parfois la mise en place d’un test
pour effectuer une tâche :
 si le test est positif, on effectue un certain traitement ;
 sinon, c’est-à-dire si le test est négatif, on effectue un autre traitement.
En algorithmique, on traduit cette structure alternative à l’aide d’instructions
conditionnelles.
Une structure alternative est une situation dans laquelle on ne peut choisir

rg
A
qu’entre deux solutions possibles.
L
G a Structure alternative complète (structure si ... Alors ...sinon ...)

.o
O Si condition Alors
R traitement 1 ; (instructions à effectuer si la condition est vérifiée)
of
Sinon
I traitement 2 ; (instructions à effectuer si la condition n’est pas vérifiée)
T FinSi
pr
H
M Lorsque la condition prend la valeur Vrai, alors Traitement1 est exécutée
I et Traitement2 est ignorée. Lorsque la condition prend la valeur Faux, alors
d

Traitement2 est exécutée et Traitement1est ignorée.


Q Remarque : Il existe des conditions simples et des conditions complexes :
an

U  une condition simple peut correspondre à un test d’égalité (A=B ) ou


E d’inégalité (A >B) ;
 une condition complexe est une combinaison logique de conditions
gr

simples (A=B et B<C)


L’algorigramme de la structure alternative complète est :

Application : Écrire un algorithme qui lit un nombre puis


affiche si ce nombre est négatif ou positif.

12 [Link]
Chapitre 8- Algorithmique
Algorithme Signe
Variables :
x: réel
Début
Ecrire(‘Saisir un nombre‘)
Lire (x)
Si(x < 0)Alors
Ecrire(‘le nombre entré est négatif’)
Sinon
Ecrire (‘le nombre entré est positif’)

rg
FinSi A
Fin
L
G

.o
b Structure alternative réduite (structure si ... Alors ...)
La structure proposée ci-dessus est qualifiée de « complète » mais, selon le O
cas, il se peut que, si la condition n’est pas vérifiée, il n’y ait pas à effectuer de
of R
traitement 2. On écrira ainsi la structure alternative « réduite ». I
Si condition Alors
T
traitement (instructions à effectuer si la condition est vérifiée)
pr
FinSi H
M
c Structures alternatives imbriquées I
d

Plusieurs structures alternatives peuvent être imbriquées, si bien que dans un Q


an

traitement peut (peuvent) figurer une ou plusieurs structure(s) alternative(s).


Pour une meilleure lisibilité de l’algorithme, on utilise l’INDENTATION,
U
qui consiste à écrire les instructions sur des lignes différentes en procédant à des E
décalages.
gr

III. Les structures répétitives


Toutes les structures itératives répètent l’exécution de traitement(s).
Deux cas sont cependant à envisager, selon que :
 le nombre de répétitions est connu à l’avance : c’est le cas des boucles itératives
 le nombre de répétitions n’est pas connu ou est variable : c’est le cas des boucles
conditionnelles.
Nous nous limiterons à la boucle itérative
[Link] 13
Chapitre 8- Algorithmique

La structure pour … allant de … a …, faire


Cette structure est une boucle itérative ; elle consiste à répéter un certain
traitement un nombre de fois fixé à l’avance. Sa syntaxe est la suivante :
Pour i allant de v1 à v2 pas n faire
Action
Finpour

Remarque

rg
A  La variable i est un compteur, dont la valeur augmente automatiquement
L de 1 à chaque tour. Cette variable permet en définitive de contrôler le nombre
G entier de tours. Cette variable est en d’autres termes la variable de contrôle

.o
d’itération, caractérisée par sa valeur initiale, sa valeur finale et son pas de
O variation.
R  La sortie de la boucle s’effectue lorsque le nombre souhaité d’itérations est
of
I atteint, c’est-à-dire lorsque prend la valeur v2.
T  Le pas peut ne pas être précisé, dans ce cas il est considéré comme valant 1.
pr
H
Son algorigramme est :
M
I
d

Q Exemple :Écrire un algorithme qui calcul le


an

U carré des nombres compris entre 1 et 10.


E Variables
I, c: Entier
gr

Debut
Pour i allant de 1 à 10 faire
c←i*i
ecrire("le carre est." ,c)
Finpour
Fin

14 [Link]

Vous aimerez peut-être aussi