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

Cours Algorithme

Ce document présente les concepts fondamentaux de l'algorithmique et de la programmation, en détaillant la définition d'un algorithme, ses propriétés, et son élaboration. Il aborde également les notions de variables, constantes, affectations, et les instructions d'entrées-sorties, tout en fournissant des exemples pratiques. Enfin, il souligne l'importance de l'algorithmique dans la résolution de problèmes informatiques et la rédaction de programmes.

Transféré par

othmane1993
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)
3 vues17 pages

Cours Algorithme

Ce document présente les concepts fondamentaux de l'algorithmique et de la programmation, en détaillant la définition d'un algorithme, ses propriétés, et son élaboration. Il aborde également les notions de variables, constantes, affectations, et les instructions d'entrées-sorties, tout en fournissant des exemples pratiques. Enfin, il souligne l'importance de l'algorithmique dans la résolution de problèmes informatiques et la rédaction de programmes.

Transféré par

othmane1993
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

Algorithme et programmation

Partie algorithme
Objectif :
➢ Apprendre les concepts de base de l'algorithmique et de la programmation
➢ Être capable de mettre en œuvre ces concepts pour analyser des problèmes simples et écrire les
algorithmes correspondants

Plan du cours
➢ Introduction à l’algorithmique
➢ Notion de variable, affectation, lecture et écriture
➢ Expressions et opérateurs
➢ Instructions conditionnelles et instructions itératives
➢ Les tableaux

Algorithmique
➢ Le terme algorithme vient du nom du mathématicien arabe Al-Khawarizmi (820 après J.C.)
➢ Définition (1) : 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é.
➢ Définition (2) : Un algorithme est une suite d’actions précises et finies qui doivent être exécutées sur un
ensemble de données dans un ordre bien déterminé en vue de la résolution d’un problème.
o Intérêt : séparation analyse/codage (pas de préoccupation de syntaxe)
o 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), …
➢ Algorithme = méthode de résolution
➢ L’algorithmique désigne aussi la discipline qui étudie les algorithmes et leurs applications en
Informatique
➢ Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et efficaces
➢ La résolution d’un problème est caractérisée par 4 étapes :
o Comprendre la nature du problème posé
o Préciser les données fournies (Entrées)
o Préciser les résultats que l’on désire obtenir (Sorties)
o Déterminer le processus de transformation des données en résultats.

Exemple (1)
➢ 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 de transformations se comparent aux directives ou instructions de la recette

Exemple (2)
➢ Robot domestique avec un algorithme de préparation d’une tasse de café soluble
[Link] bouillir l’eau
[Link] le café
[Link] l’eau dans la tasse
PROFESSEUR CHARIF OTHMANE 1
Exemple (3)
➢ "Faites prendre la moitié du nombre pair pensé, puis ajouter 1 et multiplier le résultat par 6; demandez le
quotient par 3 du résultat obtenu. Ce quotient diminué de 2 est le nombre pensé."
• Choisir un nombre pair x
• Prendre sa moitié
• Ajouter 1 au résultat précédent
• Multiplier le résultat par 6
• Puis diviser par 3
• Retrancher 2
• Annoncer le nombre pensé

Objectifs d’un algorithme


➢ Un algorithme sert à transmettre un savoir faire.
➢ Il décrit les étapes à suivre pour réaliser un travail.
➢ Il permet d'expliciter clairement les idées de solution d’un problème indépendamment d'un langage de
programmation.
L'utilisateur d'un algorithme n'aura qu'à suivre les instructions, dans l'ordre pour arriver au résultat que
doit donner l'algorithme.

Propriétés d’un algorithme


➢ Un algorithme doit :
• Avoir un nombre fini d’étapes,
• Avoir un nombre fini d’opérations par étape,
• Se terminer après un nombre fini d’opérations,
• Fournir un résultat.
➢ Les séquences (étapes) se succèdent dans un certain ordre
➢ Chaque opération doit être définie rigoureusement et sans ambiguïté
➢ Un algorithme est caractérisé par un début et une fin
➢ Le comportement d'un algorithme est déterministe.

Algorithme et programme
➢ L’élaboration d’un algorithme précède l’étape de programmation
• Un programme est un algorithme
• Un langage de programmation est un langage compris par l'ordinateur
• Comment exécuter un algorithme sur ordinateur ?
▪ Il faut traduire cet algorithme à l’aide d’un langage de programmation connu par l’ordinateur.
➢ L’élaboration d’un algorithme est une démarche de résolution de problème exigeante
➢ La rédaction d’un algorithme est un exercice de réflexion qui se fait sur papier
• L'algorithme est indépendant du langage de programmation
• Par exemple, on utilisera le même algorithme pour une implantation en Java, ou bien en C++ ou
en Visual Basic
• L’algorithme est la résolution brute d’un problème informatique
Représentation d’un algorithme
Historiquement, deux façons pour représenter un algorithme :
➢ L’Organigramme : représentation graphique avec des symboles (carrés, losanges, etc.)
• Offre une vue d’ensemble de l’algorithme

PROFESSEUR CHARIF OTHMANE 2



Représentation quasiment abandonnée aujourd’hui.
➢ Le Pseudo-code : représentation textuelle avec une série de conventions ressemblant à un langage de
programmation (sans les problèmes de syntaxe)
• Plus pratique pour écrire un algorithme
• Représentation largement utilisée

I. Algorithmique : Notions de base


1. Notion de variable
➢ Dans les langages de programmation une variable sert à stocker la valeur d’une donnée
➢ Une variable désigne en fait un emplacement mémoire dont le contenu peut changer au cours d’un
programme (d’où le nom variable)
➢ Règle : Les variables doivent être déclarées avant d’être utilisées, elles doivent être caractérisées par :
• Un nom (Identificateur)
• Un type (entier, réel, caractère, chaîne de caractères, …)
• Une valeur
A. Choix des identificateurs
Le choix des noms de variables 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_ (Eviter les caractères de
ponctuation et les espaces)
valides : Info2011, Info_2011 invalides : Info2011, Info-2011, Info ; 2011
➢ Doit être différent des mots réservés du langage (par exemple en Java : int, float, else, switch, case,
default, for, main, return, …)
➢ La longueur du nom doit être inférieure à la taille maximale spécifiée par le langage utilisé.

Conseil : pour la lisibilité du code choisir des noms significatifs qui décrivent les données manipulées
Exemples : TotalVentes2004, Prix_TTC, Prix_HT
Remarque : en pseudo-code algorithmique, on va respecter les règles citées, même si on est libre
dans la syntaxe
B. Types de variables
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
• 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)
➢ Type numérique : réel

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,
PROFESSEUR CHARIF OTHMANE 3
Exemples : " Nom, Prénom", "code postale : 1000", …
C. Valeur de variables
➢ Une valeur
▪ La valeur d'une variable(contenu) peut varier au cours du programme. L'ancienne valeur est tout
simplement écrasée et remplacée par la nouvelle.
D. Déclaration des variables
➢ Rappel : 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 :
Variables liste d'identificateurs : type
➢ Exemple :
Variables
i, j, k : entier
x, y : réel
OK : booléen
Ch1, ch2 : chaîne de caractères

2. Notion de constante
➢ 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 pseudo-code, Constante identificateur=valeur : type,…
(par convention, les noms de constantes sont en majuscules)
➢ Exemple : pour calculer la surface des cercles, la valeur de pi est une constante mais le rayon est une
variable.
Constante PI=3.14 : réel, MAXI=32 : entier
➢ Une constante doit toujours recevoir une valeur dès sa déclaration.

3. L’instruction d’affectation
➢ L’affectation consiste à attribuer une valeur à une variable (ça consiste en fait à remplir où à modifier le
contenu d'une zone mémoire)
➢ En pseudo-code, l'affectation se note avec le signe ←
Var← e: attribue la valeur de e à la variable Var
▪ e peut être une valeur, une autre variable ou une expression
▪ Var et e doivent être de même type
▪ L’affectation ne modifie que ce qui est à gauche de la flèche
➢ Ex valides : i ←1 j ←i k ←i+j
x ←10.3 OK ←FAUX ch1 ←"SMI"
(Voir la déclaration des variables dans la partie précédente)
➢ Non valides : i ←10.3 OK ←"SMI" j ←x
Quelques remarques
➢ 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

PROFESSEUR CHARIF OTHMANE 4


➢ 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

[Link] générale de l’algorithme


A. Le moule d’un algorithme
Un algorithme comportera :
• Une partie déclaration
• Une partie encadrée par ’’Début’’ ’’ Fin’’ où sont décrites les actions
Algorithme Nom_de_l_algorithme
Déclaration
Début
Actions
Fin
Algorithme exemple
Constantes
Const1=20 : entier
const2="bonjour!" : chaîne de caractères
Variables
var1 : entier
var3, var4 : réel
var5 : chaîne de caractères
Début
/* instructions */
Fin
B. Exercices simples sur l’affectation
a) Exercice 1
Donnez les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C : entier
Début
……………………………………
A ← -3
……………………………………
B←7
……………………………………
A←B
B ← A-5 ……………………………………

C←A+B ……………………………………
C ← B –A ……………………………………
Fin ……………………………………
……………………………………
b) Exercice 2
Donnez les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : entier
Début
……………………………………
A←4
……………………………………
B←9
……………………………………
A←B
B←A ……………………………………
Fin
Les deux dernières instructions permettent-elles d’échanger les valeurs de A et B ?

PROFESSEUR CHARIF OTHMANE 5


c) Exercice 3
Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B
C. Expressions et opérateurs
➢ 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 :
• Des opérateurs arithmétiques : +, -, *, /, % (modulo), ^ (puissance)
• Des opérateurs logiques : NON, OU, ET
• Des opérateurs relationnels : =, , <, >, <=, >=
• Des opérateurs sur les chaînes : & (concaténation)
➢ Une expression est évaluée de gauche à droite mais en tenant compte de priorités
D. Priorité des opérateurs
➢ 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)
Exemple : 2 + 3 * 7 vaut 23
➢ En cas de besoin (ou de doute), on utilise les parenthèses pour indiquer les opérations à effectuer en
priorité Exemple : (2 + 3) * 7 vaut35

5. Les instructions d’entrées-sorties : lecture et


écriture
➢ Considérons l’algorithme suivant :
Variable A : entier
Début
A ← 12 *12
Fin
Permet de calculer le carré de 12.
▪ Comment faire pour calculer le carré d’un autre nombre que 12 ? il faut réécrire le programme.
▪ La machine calcule le résultat, mais l’utilisateur qui fait exécuter ce programme ne saura pas que le
résultat correspond au carré de 12.
▪ Les instructions de lecture et d'écriture permettent à la machine de communiquer avec l'utilisateur
▪ La lecture permet d'entrer des donnés à partir du clavier
▪ En pseudo-code, on note : lire (var)
la machine met la valeur entrée au clavier dans la zone mémoire nommée var
▪ Remarque : Le programme s'arrête lorsqu'il rencontre une instruction Lire et ne se poursuit
qu'après la frappe d’une valeur au clavier et de la touche Entrée
▪ L'écriture permet d'afficher des résultats à l'écran (ou de les écrire dans un fichier)
▪ En pseudo-code, on note : écrire (var)
la machine affiche le contenu de la zone mémoire var
▪ 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 frapper

PROFESSEUR CHARIF OTHMANE 6


a) Exemple 1
▪ Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis qui calcule et affiche le double
de ce nombre
b) Exemple 2
Ecrire un algorithme qui demande deux nombres entiers à l’utilisateur, puis qui calcule et affiche la somme de
ces nombres.
c) Exemple 3
Écrire l’algorithme permettant le calcul de la surface d’un cercle connaissant son rayon : Surface= *Rayon2

[Link] : instructions conditionnelles


➢ Les instructions conditionnelles servent à n'exécuter une instruction ou une séquence d'instructions que
si une condition est vérifiée
➢ On utilisera la forme suivante :
Si condition alors
Instruction ou suite d'instructions1
Sinon
Instruction ou suite d'instructions2
Finsi
▪ La condition ne peut être que vraie ou fausse
▪ Si la condition est vraie, ce sont les instructions1qui seront exécutées
▪ Si la condition est fausse, ce sont les instructions2qui seront exécutées
▪ La condition peut être une condition simple ou une condition composée de plusieurs conditions

Exemple
Titre : Test
Variable X : entier
Début
Écrire (" Saisir un entier X ")
Lire (X)
Si (x > 0) alors
Écrire (" X est un nombre positif ")
Sinon
Écrire (" X est un nombre négatif ou nul")
Finsi
Fin

PROFESSEUR CHARIF OTHMANE 7


Exercice
Ecrire un algorithme qui permet de lire et d'afficher la valeur absolue d'un réel.

➢ La partie Sinon n'est pas obligatoire, quand elle n'existe pas et que la condition est fausse, aucun
traitement n'est réalisé
▪ On utilisera dans ce cas la forme simplifiée suivante :
Si condition alors
Instruction ou suite d'instructions
Finsi
Exemple
Algorithme Affichage_Valeur_Absolue (version2)
Variable x, y : réel
Début
Ecrire ("Entrez un réel : ")
Lire(x)
y← x
Si (x < 0) alors
y← -x
Finsi
Ecrire ("La valeur absolue de ", x, "est : " , y)
Fin
Exercice (tests)
Ecrire un algorithme qui demande un nombre entier à l'utilisateur, puis teste et affiche s'il est divisible par 3.

7. 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, 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 C2 C1 OU C2
Vrai Vrai Vrai Vrai
Vrai Faux Vrai Faux
Faux Vrai Faux Vrai
Faux Faux Faux Faux

C1 C2 C1 XOR C2 C1 NON C1
Vrai Vrai Vrai
Vrai Faux Faux
Faux Vrai
Faux Faux

PROFESSEUR CHARIF OTHMANE 8


Exemple
Expression Résultat
(4 <7) ET (9>0)
(1 < 0) OU (1<>1)
Non (13.4 < 15)

8. Tests imbriqués
➢ Les tests peuvent avoir un degré quelconque d'imbrications
Si condition 1alors
Si condition 2 alors
Instructions A
Sinon
Instructions B
Finsi
Sinon
Si condition 3 alors
Instructions C
Finsi
Finsi
Exemple (version 1)
Variable n : entier
Début
Ecrire ("entrez un nombre : ")
Lire (n)
Si (n < 0) alors
Ecrire ("Ce nombre est négatif")
Sinon
Si (n = 0) alors
Ecrire ("Ce nombre est nul")
Sinon
Ecrire ("Ce nombre est positif")
Finsi
Finsi
Fin
Exemple (version 2)
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")

PROFESSEUR CHARIF OTHMANE 9


Finsi
Fin
✓ Remarque : dans la version 2 on fait trois tests systématiquement alors que dans la version 1, si le
nombre est négatif on ne fait qu'un seul test
✓ Conseil : utiliser les tests imbriqués pour limiter le nombre de tests et placer d'abord les conditions les
plus probables
Exercice 1 :
Ecrivez un algorithme qui demande à l’utilisateur d’entrer la température de l’eau, et affiche ensuite l’état de
l’eau selon la température (on rappelle que l’état de l’eau est glace pour une température inférieure ou égale à 0,
est vapeur pour une température supérieure ou égale à 100 et liquide pour une température comprise strictement
entre 0 et 100).
Exercice 2 :
Ecrire un algorithme qui lit trois entiers A, B et C, et affiche le plus grand.

[Link] imbriqués : autre forme


La structure alternative peut prendre une autre forme qui permet d’imbriquer plusieurs conditions.
Selon Expression
Valeur1 : action1
Valeur2 : action2
•.........
ValeurN : actionN
Sinon : action
FinSelon
Si expression est égale à valeur i, on exécute action i et on passe à la suite de l’algorithme. Sinon on exécute
action et on passe à la suite de l’algorithme.
On l’appelle « structure choix »

Exemple
Variable X : entier
Début
X←1
Selon X
0:X←1
1 : X ← 11
2 : X ← 111
Sinon : écrire (" X n’est pas un entier compris entre 0 et 2")
FinSelon
Fin
Exercice
Ecrire un algorithme qui affiche selon un numéro compris entre 1 et 12 le mois équivalent

PROFESSEUR CHARIF OTHMANE 10


10. Instructions itératives (les boucles)
➢ 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 en langages de programmation :
▪ Les boucles tant que : on y répète des instructions tant qu'une certaine condition est réalisée.
▪ Les boucles répéter …. jusqu'à : on y répète des instructions jusqu'à ce qu'une certaine
condition soit réalisée.
▪ Les boucles 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.
A. Les boucles TantQue

TantQue (condition)
instructions
FinTantQue
▪ La condition (dite condition de contrôle de la boucle) est
évaluée avant chaque itération.
▪ Si la condition est vraie, on exécute 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 FinTantQue.
▪ 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 condition.
▪ 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 de boucle infinie :
i←2
TantQue (i > 0)
i ← i+1 (attention aux erreurs de frappe : + au lieu de -)
FinTantQue
Exemple 1 :
Variable i : entier
Début
i←0
TantQue (i < 3)
Ecrire("Bonjour tout le monde")
i←i+1
FinTanTque
Fin
Exemple 2
Variable A : entier
Début
A←10
TantQue (A > 0)
A←A-2
FinTantQue
Ecrire ("La valeur de A est : ", A)
Fin
PROFESSEUR CHARIF OTHMANE 11
B. Les boucles Répéter … jusqu’à …

Répéter
instructions
Jusqu'à (condition)

▪ 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 condition soit vrai (tant qu'elle est fausse)

Exemple 1 :
Variables c : entier
Début
Répéter
Lire(c)
c←c*c
Ecrire(c)
Jusqu' à (c= 0)
Ecrire ("Fin")
Fin
Exemple 2 :
Variables a , somme , moyenne , compteur : entier
Début
compteur ← 0
somme ← 0
Répéter
Ecrire (" Entrez un nombre : " )
Lire (a)
compteur ← compteur + 1
somme ← somme + a
Jusqu' à (a = 0)
Moyenne ← somme / compteur
Ecrire (" La moyenne de valeurs saisies est : " , moyenne)
Fin

PROFESSEUR CHARIF OTHMANE 12


C. La boucle pour
Pour compteur= initiale à finale pas valeur du pas
instructions
FinPour
Remarque : le nombre d'itérations dans
une boucle Pour est connu avant le début
de la boucle.
▪ La variable compteur est en
général de type entier. Elle doit
être déclarée.
▪ 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. Dans ce cas, le nombre d'itérations est égal à finale
-initiale + 1 .
▪ Initiale et finale peuvent être des valeurs, des variables définies avant le début de la boucle ou des
expressions de même type que compteur.
Déroulement des boucles Pour
1) La valeur initiale est affectée à la variable compteur.
2) On compare la valeur du compteur et la valeur de finale :
a) Si la valeur du compteur est > à la valeur finale dans le cas d'un pas positif (ou si compteur est <
à finale pour un pas négatif), on sort de la boucle et on continue avec l'instruction qui suit FinPour.
b) Si compteur est <= à finale dans le cas d'un pas positif (ou si compteur est >= à finale pour un
pas négatif), instructions seront exécutées.
i. Ensuite, la valeur de 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 finale est de nouveau
effectuée, et ainsi de suite …
Exemple 1 :
Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul
Variables 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)
Puis s ← 1
Pour i =1 à n
Puiss← puiss*x
FinPour
Ecrire (x, " à la puissance ", n, " est égal à ", puiss)
Fin

PROFESSEUR CHARIF OTHMANE 13


Exemple 1 (version 2) :
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)
Variables x, puiss : réel
Boucle Pour : remarque
▪ Il faut éviter de modifier la valeur du compteur (et de finale) à l'intérieur de la boucle. En effet, une telle
action :
o Perturbe le nombre d'itérations prévu par la boucle Pour
o Rend difficile la lecture de l'algorithme
o Présente le risque d'aboutir à une boucle infinie
Exemple :
Pour i =1 à 5
i ← i -1
Ecrire (" i = ", i)
FinPour
Lien entre Pour et TantQue
▪ La boucle Pour est un cas particulier de TantQue (cas où le nombre d'itérations est connu et fixé) .
Tout ce qu'on peut écrire avec Pour peut être remplacé avec TantQue (la réciproque est fausse)
▪ Pour compteur=initiale à finale pas valeur du pas
instructions
FinPour
▪ peut être remplacé par : compteur ← initiale
(cas d'un pas positif) TantQue (compteur <= finale)
instructions
compteur ← compteur + pas
FinTantQue
➢ Calcul de x à la puissance n où x est un réel non nul et n un entier positif ou nul (version avec
TantQue).
D. Boucles imbriquées
➢ Les instructions d'une boucle peuvent être des instructions itératives. Dans ce cas, on aboutit à des
boucles imbriquées
Exemple (1) : Écrire un carré de 8 fois 8 caractères ’x’

Exemple (2) : Exécution

Pour i =1 à 5
Pour j =1 à i
Ecrire ("O")
FinPour
Ecrire("X")
FinPour

PROFESSEUR CHARIF OTHMANE 14


E. Choix d’un type de boucle
➢ 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.
➢ 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 Répéter jusqu'à.
➢ Pour le choix entre TantQue et jusqu'à :
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 Répéter jusqu'à.
Si nombre d'itérations connu Alors
Boucle Pour
Sinon
Si itération exécutée au moins une fois Alors
Boucle Répéter jusqu’à
Sinon
Boucle Tant que
Finsi
Finsi

II. Algorithmique : Les tableaux


Exemple introductif
❖ Supposons qu'on veut conserver les notes d'une classe de 30 étudiants pour extraire quelques informations.
Par exemple : calcul du nombre d'étudiants ayant une note supérieure à 10
❖ Le seul moyen dont nous disposons actuellement consiste à déclarer 30 variables, par exemple N1, …, N30.
Après 30 instructions lire, on doit écrire 30 instructions Si pour faire le calcul
nbre ← 0
Si (N1 >10) alors nbre ←nbre+1 FinSi
….
Si (N30>10) alors nbre ←nbre+1 FinSi
c'est lourd à écrire
❖ Heureusement, les langages de programmation offrent la possibilité de rassembler toutes ces variables dans
une seule structure de donnée appelée tableau

1. Tableaux
❖ Un tableau est un ensemble d'éléments de même type désignés par un identificateur unique.
❖ Une variable entière nommée indice permet d'indiquer la position d'un élément donné au sein du tableau et
de déterminer sa valeur.
❖ La déclaration d'un tableau s'effectue en précisant le type de ses éléments et sa dimension (le nombre de
ses éléments).
–En pseudo code :
Variable tableau identificateur [dimension] : type
–Exemple :
Variable tableau notes[30] : réel

PROFESSEUR CHARIF OTHMANE 15


❖ On peut définir des tableaux de tous types : tableaux d'entiers, de réels, de caractères, de booléens, de
chaînes de caractères, …
Remarques :
❖ L'accès à un élément du tableau se fait au moyen de l'indice. Par exemple, notes[i] donne la valeur de
l'élément i du tableau notes.
❖ Selon les langages, le premier indice du tableau est soit 0,
❖ Un grand avantage des tableaux est qu'on peut traiter les données qui y sont stockées de façon simple en
utilisant des boucles.
A. Représentation graphique des tableaux
Un tableau peut être représenté graphiquement par (exemple Note[15]) :

Note[1] Note[4]
➢ Note[2]← 15 met la valeur 15 dans la 3ème case du tableau.
➢ En considérant le cas où a est une variable de type entier, a ← Note [2] met la valeur de la 3ème case du
tableau dans a, c’est-à-dire 15.
➢ Lire (Note [0]) met l’entier saisi par l’utilisateur dans la première case du tableau.
➢ Ecrire (Note [0]) affiche la valeur de la première case du tableau.

B. Tableaux : saisie et affichage
Algorithme qui permet de saisir et d'afficher les éléments d'un tableau de 30 notes:
Variables i : entier
Tableau notes[30] : réel
Début
Pour i = 1 à 30
Ecrire ("Saisie de l'élément ", i )
Lire (notes[i] )
FinPour
Pour i = 1 à 30
Ecrire ("notes[",i, "] =", notes[i])
FinPour
Fin
C. Exemple
Exemple 1 :
Pour le calcul du nombre d'étudiants ayant une note supérieure strictement à 10 avec les tableaux, on
peut écrire :
Exemple 2 :
Soit T un tableau de vingt éléments de types entiers. Un algorithme qui permet de calculer la somme des
éléments de ce tableau.
D. Exercice :
Soit T un tableau de N entiers. Ecrire l’algorithme qui détermine le plus grand élément de ce tableau.

PROFESSEUR CHARIF OTHMANE 16


2. Tableaux à deux dimensions :
Les langages de programmation permettent de déclarer des tableaux dans lesquels les valeurs sont
repérées par deux indices. Ceci est utile par exemple pour représenter des matrices.
En pseudo code, un tableau à deux dimensions se déclare ainsi :
Variable tableau identificateur[dimension1] [dimension2] : type
–Exemple : une matrice A de 3 lignes et 4 colonnes dont les éléments sont réels
Variable tableau A[3][4] : réel
A[i][j] permet d'accéder à l’élément de la matrice qui se trouve à l’intersection de la ligne i et de
la colonne j
A. Exemples : lecture d’une matrice
▪ Algorithme qui permet de saisir les éléments d'une matrice de vingt lignes et cinquante colonnes :
Algorithme Saisie_Matrice
Variables i, j : entier
Tableau A [20][50] : réel
Début
Pour i =1 à 20
Ecrire ("saisie de la ligne ", i )
Pour j =1 à 50
Ecrire ("Entrez l'élément de la ligne ", i , " et de la colonne ", j)
Lire (A[i][j])
FinPour
FinPour
Fin
B. Exemples : lecture d’une matrice
▪ Algorithme qui permet d'afficher les éléments d'une matrice de vingt lignes et cinquante colonnes :
Algorithme Affiche_Matrice
Variables i, j : entier
Tableau A [20][50] : réel
Début
Pour i=1 à 20
Pour j=1 à 50
Ecrire ("A[",i, "] [",j,"]=", A[i][j])
FinPour
FinPour
Fin
C. Exemples : somme de deux matrices
▪ Algorithme qui calcule la somme de deux matrices de vingt lignes et cinquante colonnes :

PROFESSEUR CHARIF OTHMANE 17

Vous aimerez peut-être aussi