0% ont trouvé ce document utile (0 vote)
9 vues35 pages

Introduction à l'Algorithmique et aux Données

Ce document présente une introduction à l'informatique, définissant des concepts clés tels que l'ordinateur, l'algorithmique, et les structures de données. Il explique également la notion d'algorithme, son importance dans la résolution de problèmes, et les différents types de langages de programmation. Enfin, il aborde les instructions de base et les structures de données nécessaires pour la programmation.

Transféré par

Samy Shàdow
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)
9 vues35 pages

Introduction à l'Algorithmique et aux Données

Ce document présente une introduction à l'informatique, définissant des concepts clés tels que l'ordinateur, l'algorithmique, et les structures de données. Il explique également la notion d'algorithme, son importance dans la résolution de problèmes, et les différents types de langages de programmation. Enfin, il aborde les instructions de base et les structures de données nécessaires pour la programmation.

Transféré par

Samy Shàdow
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Amar Telidji

Laghouat

Département d’Informatique & de


Mathématiques

Cours du module : Algorithmique et


Structure de Donneés 1
1ère Année L.M.I

Tahar ALLAOUI
[Link]@[Link]
Merci de me signaler les erreurs qui
peuvent exister dans ce document
Chapitre 1 :
Introduction générale
Chapitre 1 : Introduction générale

1. Introduction
Actuellement, l'informatique touche tous les domaines de notre vie grâce à ces avantages offerts,
l'informatique a permis de rendre facile et rapide la réalisation des tâches difficiles et même
complexes.
2. Définitions
2.1. Informatique

Le terme informatique est une combinaison de deux mots: information et automatique, c'est la
science du traitement automatique de l'information par une machine "Ordinateur"

Information Information

(Données) (Résultats)
Traitement
Entrée Sortie
Ordinateur

2.2. Ordinateur
L'ordinateur est une machine électronique permettant de résoudre des problèmes par l'exécution
des instructions, c’est un ensemble de périphériques qui communiquent entre eux, pour réaliser un
travail donné.

2.3. Utilité de l’informatique


On fait appel à l'informatique afin de résoudre des problèmes de natures différentes en un temps
réduit.
Comment?
Une question importante est posée: comment expliquer à l'ordinateur la méthode de résolution d'un
problème donné?
Pour répondre à cette question, on donne des exemples qui représente la méthode utilisée pour
résoudre des problèmes simples de notre vie quotidienne.
Exemple 1 : Envoyer un SMS vers un ami:
Pour envoyer un SMS, l’utilisateur doit appliquer les actions suivantes:
1. Cliquer sur « Menu »
2. Aller à « Messagerie »

4
Chapitre 1 : Introduction générale

3. Choisir « Nouveau message »


4. Editer le message
5. Ecrire le numéro de destinataire
6. Cliquer sur le bouton « Envoyer »
Cet exemple montre la démarche à suivre pour envoyer un SMS, il est composé d'une suite
ordonnée d'actions qui sont représentées sous forme de commandes ou instructions (Cliquer,
Donner, Editer, Choisir,...) qui manipulent des données (Menu, Messagerie, Numéro de
destinataire,...) afin de réaliser le travail désiré (L'envoi d'un SMS)
Exemple 2 : Calculer les solutions d'une équation de 2ème degré:
Pour résoudre ce problème, on applique les étapes suivantes:
1. Donner les valeurs de : a, b, et c.
2. Calculer la valeur de Delta
3. Calculer les valeurs des solutions selon la valeur de Delta.
De la même façon, dans cet exemple, on manipule des données (a, b, c) par une suite ordonnée
d'instructions (Calculer Delta, Calculer les solutions,...) afin de trouver les solutions de l’équation.
On remarque bien que la résolution d'un problème nécessite l'application d'une suite d'actions sur
un ensemble de données dans un ordre bien défini pour atteindre le résultat.
De la même façon, pour qu'un ordinateur puisse résoudre un problème, on doit lui "expliquer" les
actions à appliquer et les données à manipuler. Cette explication qui représente la solution du
problème à résoudre sera présentée sous forme d'actions (appelée aussi commandes ou
instructions) qui manipulent un ensemble de données, l’ensemble des instructions et des données
manipulées forme un algorithme.
3. Définition d'un algorithme
Un algorithme est une suite ordonnée d'instructions (actions, commandes) qui indiquent la
démarche à suivre pour résoudre un problème donné.
Dans un algorithmes, l'ordre des instructions est important et a une grande influence sur le résultat
obtenu.
Le mot Algorithme est d'origine arabe, il vient du nom de : Al Khawarizmi (780-850), le savant
musulman qui est considéré comme le père de l'algèbre.

5
Chapitre 1 : Introduction générale

4. Algorithmique
C’est la science des algorithmes, c'est un ensemble de règles et techniques utilisées dans la
conception et la définition des algorithmes.
5. Langage de description des algorithmes
C’est un langage universel très proche du langage naturel, et qui permet d'écrire des algorithmes
lisibles et compréhensible par les utilisateurs. C’est un langage riche et libre de la machine, qui
offre la possibilité de correction et de modification. Ce langage offre également la possibilité de
représentation graphique (Organigramme)
6. Organigramme
Un organigramme (ou algorigramme) est une représentation graphique d'un algorithme qui permet
de faciliter la compréhension de l'algorithme.
À chaque type d'instructions est associée une forme graphique particulière.
Remarque : C’est vrai qu'un algorithme représente une abstraction de la solution d'un problème
donné, mais cette solution n'est pas compréhensible par la machine (le langage algorithmique est
très proche du langage naturel). Pour que l'algorithme soit compréhensible par la machine, on
doit écrire un programme équivalent à cet algorithme.
7. Programme
C’est la traduction d'un algorithme dans un langage de programmation particulier.
L’ensemble d'instructions d'un programme est appelé code source.
L’exécution d'un programme (code source) par l'ordinateur produit un programme exécutable (le
code cible ou le programme objet), ce programme exécutable manipule les différentes données du
problèmes pour produire les résultats cherchés.
8. Programmation
La programmation est l'ensemble des activités permettant l'écriture des programmes, c'est l'activité
de rédaction du code source d'un programme.
9. Langage de programmation
C’est un ensemble de vocabulaires et de règles bien définies permettant à l'être humain d'écrire des
programmes qui seront exécutés par l'ordinateur.

6
Chapitre 1 : Introduction générale

10. Les types des langages de programmation


10.1. Langage machine
Appelé aussi code machine, c'est un langage de niveau 0 compréhensible par la machine, et dont
la forme est en binaire.
10.2. Langage assembleur
Appelé aussi langage d'assemblage ou tout simplement assembleur, c'est un langage de bas niveau
qui représente le langage machine sous une forme lisible par l'humain.
10.3. Les langages évolués
Appelés aussi les langages de haut niveau, ce sont des langages avec un vocabulaire riche, facile à
comprendre et à maintenir avec des règles d'écriture bien déterminées.
11. Représentation interne de l’information
Le seul langage compréhensible par l’ordinateur est le langage machine, donc, les données
manipulées par les utilisateurs sont représentées dans la machine d’une autre façon, elles sont
représentées par une très longue suite codée en binaire.
11.1. Bit
Un bit (binary digit) est un chiffre binaire : 0 ou 1, il représente l’unité élémentaire de l’information
dans les ordinateurs.
11.2. Octet (Byte):
Une suite de 8 bits qui représente une unité de mesure de quantité de données (1 Octet = 8 Bits)
Les multiples d’octet
Nom Symbole valeur
Kilo-octet Ko 210=1024 octets
Méga-octet Mo 220=1024 Ko
Giga-octet Go 230=1024 Mo

7
Chapitre 2 :
Les structures de données
et les instructions de base
Chapitre 2 : Les structures de données et les instructions de base

1. Introduction
Afin de résoudre les différents problèmes en informatique, on fait appel à des programmes
compréhensibles et exécutables par la machine, mais avant de passer à la programmation, on
doit d'abord représenter les solution sous forme des algorithmes.
C'est vrai que l'algorithme n'est qu'une représentation de la solution qui est écrite en langage
universel, mais cet algorithme a une forme générale bien défini, et son écriture doit respecter
des règles pour rendre facile le passage vers la programmation.
2. Structure générale d’un algorithme
Un algorithme a généralement la structure suivante :
Algorithme Nom de l’algorithme } L’en-tête
Les déclarations } La partie de déclaration
Début
Instruction 1 ;
Instruction 2 ; Le corps de l’algorithme

Instruction n ;
Fin
 L’en-tête : chaque algorithme doit avoir un nom qui l'identifier dans l’en-tête.
 Les déclarations : dans un algorithme, on peut manipuler des données d’un problème
posé pour obtenir des résultats, la partie de déclaration contient la liste des données
utilisées et manipulées dans l’algorithme ainsi que leurs natures.
 Le corps de l’algorithme : c'est la partie qui représente le travail réalisé par
l'algorithme, toutes les instructions et les opérations exécutées par l’algorithme se
trouvent dans cette partie.

3. L'en-tête
Cette partie contient le nom (l'identificateur) de l'algorithme, ce nom doit être une suite de lettres
et de chiffres, qui commence obligatoirement par une lettre et qui ne contient par un espace.
4. La partie de déclaration
Les données utilisées dans l’algorithme doivent être définies (déclarées) pour faciliter leur
manipulation, pour cela on a besoin d’utiliser les structures de données.

4.1. Structure de données

9
Chapitre 2 : Les structures de données et les instructions de base

Définition : Une structure de données est une structure logique destinée à contenir des données,
c’est un support logique qui permet de conserver une données.
Chaque structure de données est caractérisée par :
1. Un identificateur : c’est le nom de la structure de données, il est composé de lettres et
de chiffres, ce nom doit respecter les mêmes règles du nom du l'algorithme, par
exemple x1, y2, tab,…représentent des identificateurs des structures de données.
2. Un type : Chaque structure de données a un type qui indique la nature de l'informations
stockées dans cette structure de données. On peut distinguer cinq types de base :
L’entier : une suite de chiffres qui peut être précédée par un signe (+ ou -).
Le réel : une suite de chiffres qui peut être précédé par un signe, et qui peut contenir un
point décimal.
Le booléen : Une donnée ayant seulement deux valeurs possibles : vrai ou faux.
Le caractère : ‘a’..’z’, ‘A’..’Z’, ‘5’, ‘ !’, '?', '@'
La chaîne de caractères : une concaténation de plusieurs caractères, par exemple :
‘informatique ’, ‘salut !’
3. La valeur d’une structure de données : qui indique la valeur de la donnée qui se trouve
dans la structure de données, pendant l'exécution d'un algorithme, cette valeur peut être
fixe ou variable.
Remarque : selon la valeur de la structure de données (fixe ou variable), on peut distinguer
deux grandes familles des structures de données : les constants et les variables.
4.2. Les constants
Un constant est une structure de données dont la valeur est fixe et ne change pas dans tout
l’algorithme.
Déclaration des constants
Pour déclarer un constant, on utilise le mot clé const dans la partie de déclaration.
Exemple : const X=2 ;
Y= ‘bon jour’ ;
 X est un constant de type entier dont la valeur est 12.
 Y est un constant de type chaîne dont la valeur est : bon jour.
4.3. Les variables
Une variable est une structure de données dont la valeur est variable et peut être changée dans
l’algorithme.
Déclaration des variables
Pour déclarer des variables, on utilise le mot clé var dans la partie de déclaration.
10
Chapitre 2 : Les structures de données et les instructions de base

Exemple : var P1 : booléen ;


a, b, c : réel ;
 P1 est une variable de type booléen
 a, b, et c sont des variables de type réel.
Remarque : On remarque bien que les valeurs des variables ne sont pas définies dans la partie
de déclaration, la valeur d’une variable est donnée dans le corps de l’algorithme.
5. Le corps de l’algorithme
Cette partie contient toutes les instructions et les opérations réalisées par l’algorithme. Dans le
corps de l'algorithme on trouve les instructions qui donnent des valeurs aux différentes variables
et d'autres instructions qui représentent la démarche à suivre pour résoudre le problème, il est
important donc de respecter un ordre bien défini entre ces instructions afin d'atteindre la
solution.
6. Les instructions de base
6.1. Les entrées-sorties
L’algorithme a besoin des données en entrée pour fournir des résultats en sortie, pour cela, on
fait appel aux instructions d’entrée- sortie qui permettent aux utilisateurs d'introduire des
informations et de recevoir d'autres.
La Lecture des données
Cette instruction permet à l'utilisateur de définir la valeur d'une ou de plusieurs variables, la
valeur introduite par l'utilisateur sera stockée dans la variable concernée.
Il existe plusieurs forme pour l'instruction de lecture:
1. Lire une seule donnée : lire (nom de variable) ;
Exemple : lire(X)
Cette instruction permet d’attribuer la valeur donnée par l’utilisateur à la variable X, si
l’utilisateur tape 10 par exemple, la variable X aura la valeur 10.
2. Lire plusieurs données : lire (variable1, varaible2, …)
Exemple : lire (X,Y, Z) ;
Cette instruction permet d’attribuer les valeurs données par l’utilisateur aux variables X, Y et
Z en respectant cet ordre, si l’utilisateur donne 4, 9 et 11 dans cet ordre, alors X aura la valeur
4, Y aura la valeur 9 et Z aura la valeur 11.
Remarque: lors d'une opération de lecture, l'utilisateur doit donner une valeur ayant le même
type avec la variable concernée, le cas contraire est une erreur.
Ecriture de données

11
Chapitre 2 : Les structures de données et les instructions de base

Cette instruction permet d'afficher des données sur l'écran, selon la nature de la donnée affichée
on peut distinguer plusieurs formes:
1. Afficher la valeur d’une variable : écrire (nom de variable) ;
2. Afficher un texte : écrire (‘Texte à afficher’) ;
3. Afficher des textes et des valeurs : écrire (‘Texte à afficher’, variable, ‘Texte à
afficher’, variable,…) ;
Remarque : Les instructions d’entrée-sortie sont représentées dans l’organigramme par le
symbole suivant :

6.2. Les expressions


Les variables et les constants sont manipulés dans les algorithmes à l’aide des expressions.
Définition : Une expression est une combinaison d’opérandes (variables ou constants) et des
opérateurs. selon les types des opérandes et des opérateurs on peut distinguer deux grandes
familles d'expressions à savoir les expressions arithmétiques et les expressions logiques.
Les expressions arithmétiques
C’est une expression dont les opérandes sont numériques (entiers ou réels) et les opérateurs
sont arithmétiques.
Les opérateurs arithmétiques
↑ La puissance
* La multiplication
/ La division
+ L’addition
- La soustraction
DIV La division entière (euclidienne)
MOD Le reste de la division
euclidienne.

Exemples :
5+3–2↑3
(2 * 6) + (5 / 3) * 9

12
Chapitre 2 : Les structures de données et les instructions de base

2 * (6 + 5) / 3 * 9
L’ordre d’évaluation
 Certains opérateurs sont plus prioritaires que les autres, pour évaluer une expression
arithmétique, on doit suivre l’ordre suivant :
1. La puissance.
2. La multiplication et la division
3. L’addition et la soustraction
 Si on a une expression qui contient des opérateurs de la même priorité, on commence
l’évaluation de gauche à droite.
 En cas de présence des parenthèses, on commence par l’évaluation des parenthèses.
 On commence par les parenthèses de gauche à droite si l’expression contient plusieurs
parenthèses.
Les expressions logiques :
Une expression logique peut être une combinaison des opérandes logiques et des opérateurs
logiques ou peut être une combinaison des opérandes numériques et des opérateurs de
comparaison.
La 1ère forme: Opérandes numériques et opérateurs de comparaison.
Les opérateurs de comparaison
> Supérieur
< Inférieur
>= Supérieur ou égal
<= Inférieur ou égal
= égal
≠ Différent

Exemple :
12 > 13
(5 + 2) < = 10

La 2ème forme: Opérandes logiques et opérateurs logiques.


Les opérateurs logiques
NON La négation

13
Chapitre 2 : Les structures de données et les instructions de base

ET La conjonction
OU La disjonction

Exemple : NON (vrai ET faux)


Remarque : le résultat d’une expression logique doit être toujours un booléen : vrai ou faux
6.3. L’affectation
C’est une instruction qui permet d’affecter une valeur à une variable, autrement dit, l’instruction
d’affectation permet de remplir le support logique par une valeur donnée par l’utilisateur ou
calculée par une expression.
Les formes générales de l'instruction d’affectation
1. 1ère forme : Var ← Valeur fixe, dans ce cas la variable prend la valeur.
Exemple : X ← 17 ; se lit : X reçoit 17
2. 2ème forme : Var1 ← Var2
La variable Var1 prend la valeur de Var2 sans changer la valeur de Var2
Exemple : X ← Y
3. 3ème forme : Var ← expression
La variable prend la valeur du résultat de l’expression après son évaluation.
Exemples
 nbr ←3+5-4 (la variable nbr reçoit la valeur 4)
 P1← vrai et faux (la variable P1 reçoit la valeur faux)
Remarques :
1. Dans cette forme, la variable et le résultat de l’expression doivent avoir le même type.
2. Dans un algorithme, on peut affecter des valeurs à une variable plusieurs fois, la
nouvelle affectation va écraser l’ancienne valeur.
7. Exercice d’application
1. Ecrire un algorithme qui permet d’afficher la somme de deux valeurs entières données
par l’utilisateur.
2. Donner l’organigramme correspondant à cet algorithme
7.1. L’analyse
3. Dans cet algorithme, l’utilisateur va donner deux valeurs entières, on a besoin donc de
deux variables de types entier afin de stocker les valeurs.
4. On doit utiliser également une troisième variable pour stocker le résultat de l’addition.
5. Le résultat doit être affiché.
5.2. L’algorithme

14
Chapitre 2 : Les structures de données et les instructions de base

Dans cet algorithme, on utilise une variable nbr1 pour la 1ère valeur, et une variable nbr2 pour
la 2ème valeur. On utilise également la variable result pour le résultat
L’algorithme sera donc :

algorithme Somme ;
var nbr1, nbr2, result : entier ;
début
lire (nbr1, nbr2) ;
result ← nbr1 + nbr2 ;
écrire (result) ;
fin

5.3. L’organigramme
Un organigramme est une représentation graphique d’un algorithme permettant de faciliter sa
compréhension.
Remarques :
1. Les mots clés début et fin sont représentés par des rectangles à coins arrondis.
2. Les expressions et les affectations sont représentées par des rectangles.
L’organigramme correspondant à l’algorithme précédent sera donc :

Début

Lire(nbr1,nbr2)

result ← nbr1 + nbr2

Ecrire (résult)

fin

15
Chapitre 3 :
L’instruction Conditionnelle
Chapitre 3 : L’instruction conditionnelle

1. Introduction
Jusqu’à maintenant, nous avons vu des algorithmes qui suivent un seul chemin pour résoudre
un problème, c’est-à-dire, les algorithmes exécutent séquentiellement des instructions sans
rupture, cette structure d’algorithmes est appelée la structure linéaire.
Dans ce chapitre, nous allons découvrir une nouvelle structure qui permet d'exécuter des
instructions selon un choix, la structure de l'algorithme dans ce cas devient une structure
alternative.
Pour comprendre l'utilité de cette structure, on donne les exemples suivants.
Exemple 1
Ecrire un algorithme qui calcule la moyenne d’un étudiant ayant trois modules
La résolution de ce problème est simple, on doit lire les notes des modules, ensuite calculer la
moyenne de ces notes, l’algorithme correspondant sera donc :
Algorithme moyenne
Var n1, n2, n3, moy :réel ;
Début
Lire (n1, n2, n3) ;
moy← (n1+n2+n3)/3 ;
écrire (moy) ;
Fin
Exemple 2
Écrire un algorithme qui calcule la moyenne d’un étudiant, et affiche « admis » dans le cas où
la moyenne de cet étudiant est supérieure ou égale à 10
On remarque dans ce problème que l’affichage de « admis » dépend de la valeur de moyenne,
l’exécution de l’instruction d’affichage n’est possible qu’après la vérification d’une condition.
Pour cela, on doit utiliser une nouvelle instruction : l’instruction conditionnelle
2. Instruction conditionnelle
C’est une instruction alternative, qui consiste à exécuter une ou plusieurs instructions après la
vérification d’une condition.
La condition doit être une expression logique, c’est la raison pour laquelle on appelle cette
instruction le test logique

17
Chapitre 3 : L’instruction conditionnelle

3. Les différentes formes de l’instruction conditionnelle


3.1. La 1ère forme : L’instruction conditionnelle réduite

Si condition alors
Actions ;
Fin si
L’exécution
Si la condition est vérifiée (sa valeur est vraie) on exécute les actions, ensuite on continue
l’exécution de l’algorithme. Dans le cas contraire (la valeur de la condition est fausse) on
exécute directement les instructions qui viennent après la "fin si" sans exécuter les actions.
L’organigramme
Dans les organigrammes, l’instruction conditionnelle peut être représentée par la forme suivante

Condition
Oui

Actions

L’algorithme correspondant à l’exemple précédent

Algorithme moyenne
Var n1, n2, n3, moy :réel ;
Début
Lire (n1, n2, n3) ;
moy←(n1+n2+n3)/3 ;
Si moy>=10 alors
écrire (‘Admis’) ;
fin si
écrire(moy) ;
Fin.

Exemple 3

18
Chapitre 3 : L’instruction conditionnelle

Écrire un algorithme qui affiche Admis dans le cas où la moyenne est supérieure ou égale à 10,
et affiche Ajourné dans le cas contraire.
Dans ce cas, l’instruction conditionnelle réduite ne permet pas de résoudre le problème car nous
avons deux possibilités, on doit utiliser donc une nouvelle forme de l’instruction conditionnelle
3.2. La 2ème forme : L’instruction conditionnelle complète
Si condition alors
Action 1
Sinon
Action2 ;
Fin si
L’exécution
Si la condition est vérifiée, seule l’action1 est exécutée, ensuite, on va sauter l’action2 pour
exécuter le reste de l’algorithme après la "fin si".
Si la condition n’est pas vérifiée, l’action1 sera ignorée, l’action2 seulement sera exécutée.
L’organigramme
L’instruction conditionnelle complète est représentée dans les organigrammes par la forme
suivante

Non Oui
Condition

Action 2 Action 1

L’algorithme correspondant à l’exemple 3

Algorithme moyenne
Var n1, n2, n3, moy : réel ;
Début
Lire (n1, n2, n3) ;
moy← (n1+n2+n3)/3 ;
écrire (moy) ;
si ( moy>=10) alors
écrire (‘Admis’)
sinon
écrire (‘Ajournée’) ;
fin si

19
Chapitre 3 : L’instruction conditionnelle

Fin.
Exemple 4
Ecrire un algorithme qui lit un nombre donné par l’utilisateur, ensuite affiche ‘positif’, ‘négatif’
ou ‘nul’ selon la valeur de ce nombre.
Il est clair qu’on doit utiliser une instruction conditionnelle pour résoudre ce problème, mais
dans l’instruction conditionnelle complète la condition peut avoir deux valeurs seulement,
c’est-à-dire, on peut traiter deux cas seulement, mais dans ce problème, on a 3 cas à traiter, pour
cela, on doit utiliser plusieurs instructions conditionnelles
3.3. Les instructions conditionnelles imbriquées
La forme générale
Si condition1 alors
Action 1 ;
Sinon
si condition 2 alors
Action2 ;
Sinon action3
Fin si
Fin si
Remarque : chaque fin si correspond au Si le plus proche
L’algorithme de l’exemple 4

Algorithme nombre
Var nbr : entier ;
Début
Lire (nbr) ;
Si (nbr>0) alors
Ecrire (‘positif’)
sinon
Si nbr<0 alors
écrire(‘négatif’)
sinon écrire(‘nul’) ;
fin si
fin si
Fin.

20
Chapitre 3 : L’instruction conditionnelle

3.4. L’instruction de choix


Dans certains algorithmes, on peut trouver plusieurs instructions imbriquées ce qui rend
l’algorithme difficile à comprendre et difficile à manipuler.
Pour éviter ça on utilise une autre forme de l’instruction conditionnelle qui est l’instruction de
choix.
Cette instruction consiste à vérifier une donnée ordinale (entier, caractère, booléen), et exécuter
des actions selon les valeurs possibles de cette donnée.
La forme générale de l’instruction de choix
Cas de variable parmi
Valeur 1 : Action 1 ;
Valeur 2 : Action 2 ;
Valeur3, valeur 4 : Action3 ;
Valeur 5..valeur6 : Action4 ;

Sinon Action n
Fin Cas ;
L’exécution
On compare la variable avec la valeur 1, s’il y a une égalité, on exécute l’action 1, et on sort de
l'instruction, sinon, on compare la variable avec la valeur 2, on exécute l’action 2 s’il y a une
égalité et on sort, sinon, on compare avec valeur3, et ainsi de suite, si la valeur de variable est
différente de toutes les valeurs, on exécute donc l’action n.
Remarques

 La forme Valeur1, Valeur2, Valeur3 : Action : Signifie que plusieurs valeurs différentes
peuvent entrainer l’exécution de la même action.

 La forme Valeur1 .. Valeur2 : Action : Signifie que l’action doit être exécutée avec
toutes les valeurs de cette intervalle.
Exemple
Ecrire un algorithme qui affiche le nombre de jours d’un mois donné par l’utilisateur

Algorithme mois ;
Var m :entier ;

21
Chapitre 3 : L’instruction conditionnelle

Début
Lire(m) ;
Cas de m parmi
1, 3, 5, 7, 8, 10, 12 : écrire(‘le nombre de jours est 31’) ;
4, 6, 9, 11 : écrire(‘Le nombre de jours est 30’) ;
2 : écrire (‘le nombre de jours est 28’) ;
Sinon écrire (‘Erreur’) ;
Fin Cas ;
Fin.

Remarque : Dans cet algorithme nous avons supposé que le nombre de jours de février est
toujours 28.

22
Chapitre 4 :
Les Tableaux
Chapitre 4 : Les tableaux

1. Introduction
Lorsqu’on écrit des algorithmes, on peut manipuler des variables et des constants de différents
types, et on peut déclarer autant de variables qu’on a besoin pour résoudre les différents
problèmes.
Il se peut que dans un algorithme donné, on aura besoin de manipuler 100 variables de même
type, comme par exemple le calcul de moyenne des étudiants. Il est possible donc de déclarer
100 variables de type réel.
Un tel algorithme n’est pas pratique, et la manipulation d’un nombre important de variables est
très difficile. Il faut donc trouver un moyen permettant de manipuler facilement un nombre
important de données ayant le même type.
La solution consiste à utiliser une nouvelle structure de données : les tableaux
2. Les tableaux
2.1. Définition
Un tableau (appelé également vecteur) est une structure de données complexe qui permet de
regrouper plusieurs données ayant le même type.
Ces données ont toutes le même nom (le nom du tableau), le même type, et peuvent avoir des
valeurs différentes.
2.2. Elément du tableau
Chaque donnée dans le tableau est appelée élément du tableau.
Un élément est caractérisé par son nom (le nom du tableau), un type (le type du tableau), et une
valeur.
Chaque élément est identifié par un indice (un rang) qui indique sa position dans le tableau.
2.3. Dimension d’un tableau
La dimension (ou la taille) d’un tableau désigne le nombre des éléments de ce tableau.
2.4. Déclaration d’un tableau
Un tableau est une variable qui a un nom, une dimension, et un type qui représente le type de
tous ces éléments, la forme générale de la déclaration d’un tableau est donnée comme suit :
Var nom du tableau : Tableau [1..Dimension] de type ;
Exemple
Var tab : Tableau [1..5] d’entier ;
Tab est un tableau de cinq éléments de type entiers, et on peut imaginer sa forme comme ça:
12 -5 3 0 29

25
Chapitre 4 : Les tableaux

2.5. Accès à un élément dans un tableau


L’accès à un élément dans le tableau se fait par son indice, il faut donc mentionner le nom du
tableau suivi par la position de l'élément dans le tableau.
Exemple
Tab [1] : le 1er élément du tableau
Tab [2] : le 2ème élément du tableau

Tab [N] : le dernier élément du tableau tel que N est la dimension du tableau.
Remarques
 Chaque élément du tableau peut être traité indépendamment des autres éléments.
 Les opérations possibles avec un élément du tableau sont toutes les opérations possibles
avec le type de cet élément.
3. Exercices d’application
Exercice 1 : Soit T un tableau de trois éléments entiers.
Donner l’algorithme qui permet d’afficher la somme des éléments de ce tableau.

Algorithme Somme ;
Var T : tableau [1..3] d’entier ;
S : entier ;
Début
Lire ( T[1], T[2], T[3]) ;
S← T[1] +T[2]+T[3] ;
Ecrire (s) ;
Fin

Exercice 2 : Soit Tab un tableau de 4 éléments entiers. Donner l’algorithme qui permet de
décaler les éléments de ce tableau par une position vers la droite.
Algorithme décalage ;
Var Tab : tableau [1..4] d’entier ;
X : entier ;
Début
Lire (T[1], T[2], T[3], T[4]) ;
x ← T[4] ;
T[4] ← T[3] ;

26
Chapitre 4 : Les tableaux

T[3] ← T[2] ;
T[2] ← T[1] ;
T[1] ← x ;
Fin.

Exercice 3 : soit T1 et T2 deux tableaux d’entiers de 3 éléments chacun. Ecrire l’algorithme


qui fait la somme de ces deux tableaux dans un troisième tableau T3.
Algorithme somme ;
Var T1, T2, T3 : Tableau [1..3] d’entier ;
Début
Lire(T1[1], 1T[2], T1[3]) ;
Lire(T2[1], T2[2], T2[3]) ;
T3[1] ← T1[1]+T2[1] ;
T3[2] ← T1[2]+T2[2] ;
T3[3] ← T1[3]+T2[3] ;
Fin.

Exercice 4 : Ecrire un algorithme permettant de trouver le max d’un tableau de 3 éléments


entiers.
Algorithme Maximum ;
Var T : Tableau [1..3] d’entier ;
Max : entier ;
Début
Lire(T[1], T[2], T[3]) ;
Si T[1]>T[2] alors
Si T[1]>T[3] alors
Max ← T[1];
Sinon Max ← T[3];
Fin si
Sinon Si T[2]>T[3] alors Max ← T[2]
Sinon Max ← T[3]
Fin si
Fin si
Fin.

Remarque
jusqu'à maintenant, nous avons manipulé la structure de données Tableau (qu’on a appelé

27
Chapitre 4 : Les tableaux

également Vecteur) qui nous a permis de traiter les problèmes qui nécessitent la manipulation
de plusieurs données ayant le même type. Par exemple, si on veut calculer la moyenne d’un
étudiant, il suffit de déclarer un vecteur avec N cases tel que N est le nombre de modules étudiés
par cet étudiant. Et pour calculer la température moyenne d’une ville pendant un mois, il faut
déclarer un tableau de 31 cases, où chaque case représente la température d’un jour de ce mois.
Maintenant, si on veut calculer la moyenne des étudiants d’une section de 150 étudiants, il nous
faut 150 tableaux, chaque tableau pour un étudiant ! Et pour calculer la température moyenne
de toutes les wilayas, il faut déclarer 48 tableaux !!
Il est claire que l’utilisation d’un nombre élevé de tableaux dans un algorithme n’est pas
pratique, il faut donc faire appel à une nouvelle structure de données qui permet de faciliter
l’utilisation d’un nombre important de tableau tout en simplifiant leur manipulation, la solution
consiste à concaténer plusieurs vecteurs dans la même structure de données, on utilise donc Les
tableaux à deux dimensions ou autrement dit : les Matrices.
4. Les tableaux à deux dimensions
Un tableau à deux dimensions (Matrice) est très similaire à un ensemble de vecteurs concaténés,
chaque ‘’vecteur’’ représente une ligne dans la matrice, et toutes les cases du même rang
représentent une colonne dans la matrice. La figure suivante représente une matrice composée
de 7 lignes et 10 colonnes.
Une colonne

Une ligne

4.1. Dimensions d’une matrice


Une matrice est caractérisée par deux dimensions : la première dimension désigne le nombre
de lignes dans cette matrice, et la deuxième dimension désigne le nombre de colonnes.
Remarque :
Dans une matrice, toutes les lignes ont le même nombre de cases.
4.2. Déclaration d’une matrice
Un tableau à deux dimensions est une variable qui a un nom, et un type qui représente le type
de tous ses éléments, la forme générale de la déclaration d’un tableau est donnée comme suit :
Var nom du tableau : Tableau [1..Nombre de lignes, 1..Nombre de colonnes] de type ;
28
Chapitre 4 : Les tableaux

Exemple
Var tab : Tableau [1..3,1..4] d’entier ;
Tab est un tableau de trois lignes et 4 colonnes et dont les éléments sont de type entier.
4.3. Elément d’une matrice
Un élément dans une matrice est caractérisé par son nom (le nom du tableau), un type (le type
du tableau), et une valeur.
Chaque élément est identifié par deux indices : un indice indiquant le numéro de la ligne, et un
autre indice indiquant le numéro de la colonne.
Pour accéder à un élément dans la matrice, il faut mentionner le numéro de la ligne, et le numéro
de la colonne.
Exemple
Tab[1,3] : représente l’élément de la ligne 1 et la colonne 3
4.4. La matrice carrée
La matrice carrée est une matrice particulière dont le nombre de lignes et le même avec le
nombre de colonnes.
La déclaration d’une matrice carrée peut être donnée comme suit :
Var Mat : tableau [1..n, 1..n] d’entier;

29
Chapitre 5 :
Les boucles
Chapitre 5 : Les boucles

1. Introduction
Dans le chapitre précédent, nous avons utilisé les tableaux pour manipuler plusieurs données
de même type.
Pour calculer par exemple la somme de deux tableaux de 100 éléments chacun dans un troisième
tableau, on doit écrire l’instruction de la somme dans l’algorithme 100 fois, ce qui représente
un vrai problème, car l’algorithme devient illisible et la manipulation des variables devient
difficile.
Ce problème ne se limite pas à la manipulation des tableaux, lorsqu’on a un traitement qui doit
se faire plusieurs fois dans l’algorithme, ce n’est pas pratique de réécrire un bloc d'instruction
plusieurs fois dans l’algorithme.
Il faut donc trouver un moyen permettant d’éviter l’écriture da la même instruction plusieurs
fois dans le même algorithme, mais qui permet également de répéter son exécution.
2. Les boucles
Une boucle est une action qui permet de répéter l'exécution d'une ou de plusieurs instructions
sans avoir besoin de répéter l'écriture plusieurs fois.
On peut distinguer deux types de boucles selon le nombre de répétition des instructions :
1. Le nombre de répétition est connu à l’avance : La boucle Pour
Dans cette boucle le nombre de répétition est connu à l’avance grâce à l’utilisation d’un
compteur qui varie entre une valeur initiale et une valeur finale, ce compteur représente la
variable de contrôle de la boucle, lorsque le compteur atteint la valeur finale, la boucle s’arrête
automatiquement.
La forme générale de la boucle pour
Pour variable :=valeur initiale à valeur finale
Faire
Instructions
Fin pour

Propriétés
 Chaque passage par les instructions de la boucle est dit itération.
 Le nombre d’itérations est connu à l’avance :
Nombre d’itération = valeur finale- valeur initiale +1.

30
Chapitre 5 : Les boucles

 L’exécution des instructions de la boucle précède la vérification de la condition d’arrêt,


il y a donc au moins une exécution.
Exemple
Ecrire un algorithme permettant de calculer le factoriel d’un nombre entier positif
Algorithme Factoriel ;
Var fact, n, i : entier ;
Début
Lire(n) ;
fact ← 1 ;
Pour i=1 à n faire
fact ← fact * i ;
fin pour
écrire (fact) ;
Fin.

2. Le nombre de répétitions n’est pas connu à l’avance


Pour pouvoir exécuter une boucle sans avoir besoin de connaitre le nombre de sa répétition à
l'avance, il faut éviter l'utilisation d'un compteur, la répétition de la boucle dans ce cas dépend
de la valeur d'une condition, lorsque la valeur de condition est changée, la boucle s'arrête.
On peut utiliser deux boucles dans ce cas:
1. La boucle Tant que
Dans cette boucle, la répétition des instructions dépend d’une condition, tant que la condition
est vérifiée (sa valeur est vraie) on exécute à nouveau les instructions de la boucle.
La forme générale de la boucle tant que
Tant que condition
Faire
Instructions
Fin tant que
Remarque : il est clair que la condition doit être une expression logique.
Propriétés
 Dans cette boucle, le nombre d’itérations n’est pas connu à l’avance.
 La vérification de la condition se fait avant l’exécution de la boucle, si la condition n’est
pas vérifiée, on sort de la boucle, il se peut donc que le nombre minimal d’itération soit
0.

31
Chapitre 5 : Les boucles

 À la sortie de la boucle, la condition de la boucle est toujours fausse.


Exemple
Soit T un tableau de 100 éléments entiers distincts. Ecrire l’algorithme qui permet d’afficher la
position d’une valeur dans le tableau
Remarque : pour lire les éléments d’un tableau, on doit utiliser une boucle, dans cet algorithme
on va utiliser la boucle « pour » pour la lecture.
On remarque que dans ce problème, le nombre d’itérations n’est pas connu à l’avance, on doit
donc utiliser la boucle tant que
Algorithme Position ;
Var T : Tableau [1..100] d’entier ;
n, pos, i : entier ;
début
pour i= 1 à 100
faire
lire( T[i]) ;
fin pour
lire(n) ;
i←1 ;
Tant que (T[i]≠n)
Faire
i ← i+1 ;
fin Tant que
pos ← i ;
écrire (pos) ;
fin.

Remarque : le compteur i doit être initialisé avant la boucle


2. La boucle Répéter …jusqu’à
Dans cette boucle, les instructions se répètent lorsque la valeur de la condition est fausse, une
fois la condition est vérifiée (sa valeur devient vraie), on sort de la boucle.
La forme générale
Répéter
Instructions
Jusqu’à Condition
Propriétés
 Dans cette boucle, le nombre d’itération n’est pas connu à l’avance.
32
Chapitre 5 : Les boucles

 La condition est vérifiée après l’exécution des instructions, donc il existe au moins une
exécution des instructions de la boucle.
 Grâce à cette propriété, la boucleRépéter est utilisée lorsqu’on doit exécuter au moins
une fois les instructions de la boucle.
 À la sortie de la boucle, la condition d’arrêt est toujours vraie.

Exemple : on reprend l’exemple précédent


Algorithme Position ;
Var T : Tableau [1..100] d’entier ;
n, pos, i : entier ;
début
pour i= 1 à 100
faire
lire( T[i]) ;
fin pour
lire(n) ;
i←0 ;
Répéter
i ← i+1 ;
jusqu’à (T[i]=n)
pos ← i ;
écrire (pos) ;
fin.

Attention ! Remarque importante


Il faut s’assurer que les itérations d’une boucle permettent de modifier la valeur de la
condition de boucle, sinon, la boucle ne s’arrête jamais, et on aura donc une boucle infinie
qui conduit à un plantage de l’ordinateur.

Comment choisir la boucle à utiliser dans un algorithme ?


Le choix de la boucle se fait selon la nature du problème :
 Si le nombre de répétition est connu, on utilise donc la boucle Pour
 Si le nombre de répétition n’est pas connu, mais on a au moins une exécution, on
utilise la boucle Répéter

33
Chapitre 5 : Les boucles

 Si le nombre de répétition n’est pas connu, et peut même être zéro, on doit utiliser la
boucle Tant que.

Remarque : n’importe quelle boucle Pour peut-être remplacée par la boucle Tant que ou
Répéter, mais l’inverse n’est pas toujours vrai.
3. Manipulation des matrices par les boucles
En général, la manipulation des matrices par les boucles nécessite deux boucles imbriquées, car
on a besoin d’une boucle pour se déplacer d’une ligne à une autre, et d’une autre boucle pour
se déplacer d’une colonne à une autre.
Selon les emplacements des boucles, on aura deux modes de traitement :
Si la boucle qui fait varier l’indice de la ligne est la boucle externe, la matrice est donc
manipulée ligne par ligne, car avec chaque changement d’un indice de la ligne, on change tous
les indices des colonnes.
Si la boucle qui fait varier l’indice de la colonne est la boucle externe, la matrice est donc
manipulée colonne par colonne, car avec chaque changement d’un indice de la colonne, on
change tous les indices des lignes.
Exemple
Prenons l’exemple de l’écriture d’une matrice Tab de N lignes et M colonnes, on peut écrire les
éléments de cette matrice par deux façons différentes :
… …
Pour j := 1 à M
Pour i := 1 à N
Faire
Faire
Pour i :=1 à N
Pour j :=1 à M
Faire
Faire
Ecrire (Tab [i , j ]) ;
Ecrire (Tab [i , j ]) ;
Fin pour
Fin pour
Fin pour
Fin pour
….
….
La matrice est écrite ligne par ligne La matrice est écrite colonne par colonne

3.1. Exercices d’application


Exercice 01
Soit Mat une matrice de 3 lignes et 5 colonnes dont les éléments sont des entiers. Donner
l’algorithme qui permet d’afficher la somme des éléments de cette matrice.

34
Chapitre 5 : Les boucles

Algorithme Somme_matrice ;
Var Mat : tableau [1..3, 1..5] d’entier ;
i, j, S : entier ;
Début
Pour i := 1 à 3
Faire
Pour j :=1 à 5
Faire
lire (Mat [i , j ]) ;
Fin pour
Fin pour
S := 0 ;
Pour i := 1 à 3
Faire
Pour j :=1 à 5
Faire
S := S + Mat [i , j ] ;
Fin pour
Fin pour
Ecrire (‘La somme des éléments de cette matrice est :’, S) ;
Fin.
Exercice 02
Soit M [4,4] une matrice carrée, écrire l’algorithme qui permet de calculer la trace de cette
matrice.
La trace d’une matrice carrée est la somme des éléments du 1 er diagonale de cette matrice,
l’algorithme sera donc comme suit :

Algorithme Trace_matrice ;
Var M : Tableau [1..4, 1..4] d’entier ;
Trace, i : entier ;
Début
Pour i := 1 à 4
Faire
Pour j :=1 à 4
Faire
lire (M [i , j ]) ;
Fin pour
Fin pour
Trace := 0 ;
Pour i := 1 à 4
Faire
Trace := Trace + M [i , i] ;
Fin pour
Ecrire (Trace) ;
Fin.

35

Vous aimerez peut-être aussi