Vous êtes sur la page 1sur 31

COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -

2020

CHAPITRE I : GENERALITES SUR


L’ALGORITHMIQUE
Introduction

L’algorithmique est un terme d’origine arabe, en hommage à Al khawarizmi (780-850) auteur


d’un ouvrage décrivant des méthodes de calculs algébriques.

Un algorithme est une méthode de résolution de problème énoncée sous la forme d'une série
d'opérations à effectuer. La mise en œuvre de l'algorithme consiste en l'écriture de ces
opérations dans un langage de programmation et constitue alors la brique de base d'un
programme informatique. Un algorithme est donc une suite d’instructions, qui une fois
exécutée correctement, conduit à un résultat donné :
 Si l’algorithme est juste, le résultat sera celui qu’on attend,
 Si l’algorithme est faux, le résultat sera alors aléatoire

Pour fonctionner, un algorithme doit donc contenir uniquement des instructions


compréhensibles par celui qui devra l’exécuter (l’ordinateur). Les ordinateurs eux-mêmes sont
fondamentalement capables d’exécuter que quatre opérations logiques à savoir :
1) L’affectation de variables
2) La Lecture / Ecriture
3) Les tests
4) Les boucles

La taille d’un algorithme ne conditionne pas en soi sa complexité : de longs algorithmes


peuvent être finalement assez simples, et de petits algorithmes peuvent être très compliqués.
L’informatique, étant la science du traitement automatique de l’information, il faudrait pour
cela :
 modéliser cette information,
 définir à l’aide d’un formalisme strict les traitements dont elle fera l’objet.
 et enfin traduire ces traitements dans un langage compréhensible par un ordinateur.

I. L’ALGORITHMIQUE

I.1 Principe

Un algorithme peut se définir comme une séquence bien spécifiée d’opérations (calcul,
manipulation de données, etc.) permettant d’accomplir une tache en un nombre fini de pas. En
principe, un algorithme est indépendant de toute implémentation. Cependant dans la pratique de
Page 1 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
la programmation, il s’avère indispensable de tenir compte des capacités du langage de
programmation utilisé.

La conception d’un algorithme passe par plusieurs étapes :


 L’Analyse : définition du problème en terme de séquences d’opérations de calcul, de
stockage de données, etc. ;
 La Conception : définition précise des données, des traitements et de leur séquencement ;
 L’Implémentation : traduction et réalisation de l’algorithme dans un langage précis ;
 Le Test : Vérification du bon fonctionnement de l’algorithme.

I.2 Caractéristiques d’un Algorithme

Un algorithme est une marche à suivre :


 dont les opérations sont toutes définies et portent sur des objets appelés informations,
 dont l’ordre d’exécution des opérations est défini sans ambiguïté,
 qui est réputée résoudre de manière certaine un problème ou une classe de problèmes,
 qui s’exprime dans un langage indépendant des langages de programmation,

II. L’ALGORITHMIQUE ET LA PROGRAMMATION

Un programme est la traduction d’un algorithme dans un certain langage de programmation. Il


faut savoir qu’à chaque instruction d’un programme correspond une action du processeur.

II.1 Le but de la programmation

 Utiliser l’ordinateur pour traiter des données afin d’obtenir des résultats.
 Abstraction par rapport au matériel (indépendance application / plateforme matérielle).
 Intermédiaire entre le langage machine (binaire) et le langage humain.

II.2 Langages de programmation

Le langage utilisé par le processeur, est appelé langage machine. Il s'agit d'une suite de 0 et de 1
(du binaire). Toutefois le langage machine est extrêmement difficile à comprendre par l’homme.
Ainsi il est plus pratique de trouver un langage intermédiaire, compréhensible par l'homme, qui
sera ensuite transformé en langage machine pour être exploitable par le processeur.
L'assembleur est le premier langage informatique qui a été utilisé. Celui-ci est encore très proche
du langage machine mais il permet déjà d'être plus compréhensible. Toutefois un tel langage est
tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé
(chaque type de processeur peut avoir son propre langage machine). Ainsi un programme
développé pour une machine ne pourra pas être porté sur un autre type de machine (on

Page 2 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
désigne par le terme "portable" un programme qui peut être utilisé sur un grand nombre de
machines). Pour pouvoir l'utiliser sur une autre machine il faudra alors parfois réécrire
entièrement le programme.

Il y a trois catégories de langage de programmations : les langages interprétés et les langages


intermédiaires et les langages compilés.

II.2.1 Les Langages interprétés

Un langage de programmation est par définition différent du langage machine. Il faut donc le
traduire pour le rendre intelligible du point de vue du processeur. Un programme écrit dans un
langage interprété a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur et à
mesure les instructions du programme.

Exemples de langages interprétés : Le langage HTML (les pages web), le langage Maple (calcul
mathématique), le langage Prolog (Intelligence artificielle), etc.

II.2.2 Langages compilés :

Un programme écrit dans un langage dit "compilé" va être traduit une fois pour toutes par un
programme annexe (le compilateur) afin de générer un nouveau fichier qui sera autonome,
c'est-à-dire qui n'aura plus besoin d'un programme autre que lui pour s'exécuter (on dit par
ailleurs que ce fichier est exécutable).

Un programme écrit dans un langage compilé a comme avantage de ne plus avoir besoin, une
fois compilé, de programme annexe pour s'exécuter. De plus, la traduction étant faite une fois
pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un programme écrit
avec un langage interprété car à chaque modification du fichier source il faudra recompiler le
programme pour que les modifications prennent effet.

D'autre part, un programme compilé a pour avantage de garantir la sécurité du code source.
En effet, un langage interprété, étant directement intelligible (lisible), permet à n'importe qui de
connaître les secrets de fabrication d'un programme et donc de copier le code voire de le
modifier. Il y a donc risque de non-respect des droits d'auteur. De plus, certaines applications
sécurisées nécessitent la confidentialité du code pour éviter le piratage (transaction bancaire,
paiement en ligne, communications sécurisées, ...).

Exemples de langages compilés : Le langage C (Programmation système), le langage C++


(Programmation système objet), le langage Cobol (Gestion) etc.

II.2.3 Langages intermédiaires :

Page 3 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Certains langages appartiennent en quelque sorte aux deux catégories précédentes (Java, Python,
...) car le programme écrit dans ses langages peut dans certaines conditions subir une phase
de compilation intermédiaire vers un fichier écrit dans un langage qui n'est pas intelligible (donc
différent du fichier source) et non exécutable (nécessité d'un interpréteur).

II.3 La notion de fichier

Dans un programme, les instructions et données résident en mémoire centrale pour être
exécutées. Les programmes et les données sont sauvegardés dans des fichiers qui portent des
extensions spécifiques du langage :
- Un fichier est identifié par un nom et une extension (fichier.doc, pgcd.c, calcul.class, etc.)
- Un fichier est caractérisé par des attributs (taille, date de création, date de modification,
etc.)

L’exploitation d’un fichier par une application se fait par l’intermédiaire du système
d’exploitation qui accomplit les opérations logiques de base suivantes :
 Ouvrir/Fermer un fichier
 Lire/Ecrire (dans) un fichier

L’utilisateur peut donc créer, détruire (effacer), organiser, lire, modifier et copier des fichiers
ou des enregistrements qui les composent

II.4 La démarche de programmation et analyse descendante

Page 4 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020

La résolution d'un problème passe par toute une suite d'étapes :


 Phase d'analyse et de réflexion (algorithmique)
 Phase de programmation qui passe par :
- Le choix du langage de programmation
- la traduction de l'algorithme en programme
- l’édition du programme (ou code source)
- la compilation : traduction du code source en code objet
- la traduction du code objet en code machine exécutable et compréhensible par
l'ordinateur
 Phase de test
 Phase de diffusion

Le travail est ici surtout basé sur l'analyse du problème et l'écriture de l'algorithme. La
réalisation d'un programme passe par l'analyse descendante du problème. Cette analyse
consiste à décomposer le problème donné en sous-problèmes, et ainsi de suite, jusqu’à descendre
au niveau des primitives. Les étapes successives donnent lieu à des sous-algorithmes qui peuvent
être considérés comme les primitives de machine intermédiaires (procédures en Pascal, fonction
en C).

Page 5 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Durant l'écriture d'un programme, on peut être confronté à 2 types d'erreur :
 Les erreurs syntaxiques : elles se remarquent à la compilation et sont le résultat de la
mauvaise écriture dans le langage de programmation.
 Les erreurs sémantiques : elles se remarquent à l'exécution du programme et sont le
résultat d'une mauvaise analyse. Ces erreurs sont beaucoup plus graves car elles peuvent
se déclencher en cours d'exploitation du programme.

II.5 Exécuter un programme

La mise au point d'un programme informatique se fait en plusieurs étapes.

1.3.6 Pseudo langage

Un algorithme doit être lisible et compréhensible par plusieurs personnes. Il doit donc suivre
des règles précises. Il est composé d’un en-tête et d’un corps :
- L’en-tête spécifie :
 Le nom de l’algorithme (ALGORITHME : ou PROGRAMME :)
 Son utilité (ROLE :)
 Les données “en entrée”, c’est-à-dire les éléments qui sont indispensables à son
bon fonctionnement (ENTREE :)
 Les données “en sortie”, c’est-à-dire les éléments calculés, produits par
l’algorithme (SORTIE :)
 Les données locales à l’algorithme qui lui sont indispensables
(DECLARATION :)
- Le corps est composé :
 Du mot clef DEBUT
 D’une suite d’instructions indentées
 Du mot clef FIN

Page 6 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Le plus important pour un algorithme sont les déclarations ainsi que les instructions qui
constituent le corps de l’algorithme. Il existe des instructions qui ne servent qu’à la clarté de
l’algorithme (l’ordinateur les ignore complètement) : ce sont les commentaires. Un
commentaire a la syntaxe suivante : /* ceci est un commentaire */

Exemple : voici le schéma d’un algorithme écrit dans notre pseudo langage :
Analyse du problème
NOM : le nom de l’algorithme
ROLE : ce que fait l’algorithme
ENTREE : les données nécessaires
SORTIE  : les résultats produits par l’algorithme
Edition de l’algorithme
ALGORITHME <nom de l’algorithme>
VARIABLES <déclaration des variables>
DEBUT
Instruction 1 ;
Instruction 2 ;
… … … /* les commentaires explicatives des instructions */
Instruction k ;
FIN

CHAPITRE II : LES ELEMENTS DE BASE DANS UN


ALGORITHME
I. LES VARIABLES

Dans un programme informatique, vous avez besoin en permanence besoin de stocker


provisoirement des valeurs. Il peut s’agir de données issues du disque dur, fournies par
l’utilisateur (frappées au clavier). Ces données peuvent être de plusieurs types : elles peuvent
être des nombres, du texte, etc. Dès que l’on a besoin de stocker une information au cours d’un
programme, on utilise une variable.

I.1 Déclaration des variables

La première chose à faire avant de pouvoir utiliser une variable est de créer la boîte et de
lui coller une étiquette. Ceci se fait tout au début de l’algorithme, avant même les
instructions proprement dites. C’est ce qu’on appelle la déclaration des variables. Une

Page 7 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
variable ne peut être utilisée que si elle est déclarée. La déclaration se fait en donnant un
nom et un type à la variable.

Le nom de la variable (l’étiquette de la boîte) obéit à des règles qui changent selon le langage
utilisé. Les principales règles à respecter sont :
• Le nom de la variable peut comporter des lettres et des chiffres,
• On exclut la plupart des signes de ponctuation, en particulier les espaces.
• Un nom de variable doit commencer par une lettre.
• Le nombre maximal de caractères qui composent le nom d’une variable dépend du
langage utilisé.
• Ne pas utiliser les mots clés du langage de programmation.

I.2 Types de variables

Lorsqu’on déclare une variable, il ne suffit pas de créer une boîte (réserver un emplacement
mémoire) ; il faut préciser ce que l’on voudra mettre dedans, car de cela dépendent la taille de
la boîte (l’emplacement mémoire) et le type de codage utilisé.

a) Types numériques classiques

C’est le cas très fréquent de celui d’une variable destinée à recevoir des nombres. En
algorithme, nous pouvons parler des types ENTIER et REEL pour désigner les nombres
numériques. La syntaxe d’une déclaration de variable numérique en pseudo-langage aura la
forme :

VARIABLES
<Nom de la variable> : TYPE
<Nom1>, <Nom2>, <Nom3> : TYPE

Exemple  :
VARIABLES
g : ENTIER
PrixHT, TauxTVA, PrixTTC : REEL

b) Type alphanumérique

Le type alphanumérique est également appelé type caractère ou type chaîne. Dans une variable
de ce type, il est possible de stocker des caractères, qu’il s’agisse de lettres, de signes de

Page 8 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
ponctuation, d’espaces, ou même de chiffres. Le nombre maximal de caractères pouvant être
stockés dans une seule variable chaines de caractères dépend du langage utilisé.
 Un groupe de caractères est appelé chaîne de caractères.
 En pseudo-code, une chaîne de caractères est toujours notée entre guillemets " ". Par
exemple, 423 représente le nombre et "423" la suite de caractères.

La syntaxe d’une déclaration de variable de type alphanumérique en pseudo-langage aura la


forme :
VARIABLE nom : CHAINE
VARIABLES x, y : CARACTERE.

c) Type booléen

Le dernier type de variables est le type booléen : on y stocke uniquement les valeurs logiques
VRAI et FAUX. On peut représenter ces notions abstraites de VRAI et de FAUX (TRUE et
FALSE) par des nombres (0 et 1). Le type booléen est très économique en termes de place
mémoire occupée, un seul bit suffit. En général, dans un algorithme la déclaration est la
suivante :
VARIABLES
ok : BOOLEEN

II. LES PRIMITIVES

II.1 Affectation, expression et opérateurs

II.1.1 Affectation

L’affectation est l’action élémentaire dont l’effet est de donner une valeur à une variable. Elle est
réalisée au moyen de l'opérateur ← . Elle signifie « prendre la valeur se trouvant du côté droit
(souvent appelée rvalue) et la copier du côté gauche (souvent appelée lvalue) ». Une rvalue
représente toute constante, variable ou expression capable de produire une valeur, mais une
lvalue doit être une variable distincte et nommée.
Exemple : X ← 3 Signifie mettre la valeur 3 dans la case identifiée par X.

Remarque : À noter aussi que l’affectation est une expression comme une autre, c’est-à-dire
qu’elle retourne une valeur. Il est donc possible d’écrire : X ← Y ← Z+2 ;

II.1.2 Expression et opérateurs

a) Expression

Page 9 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Dans une instruction d’affectation, on trouve :
 À gauche de la flèche, un nom de variable,
 À droite de la flèche, ce qu’on appelle une expression : un ensemble de valeurs, reliées
par des opérateurs, et équivalent à une seule valeur
 L’expression située à droite de la flèche doit être du même type que la variable située à
gauche.

Si l’un des trois points énumérés ci-dessus n’est pas respecté, la machine sera incapable
d’exécuter l’affectation et déclenchera une erreur.

b) Opérateurs

Un opérateur est un signe qui relie deux valeurs, pour produire un résultat.

Opérateurs numériques :

Ce sont les opérations arithmétiques suivantes :


+ addition
- soustraction
* multiplication
/ division réelle
DIV division entière
MOD modulo (reste de la division)

Opérateurs de comparaison

Les opérateurs de comparaison sont :


< Inférieur
≤ Inférieur ou égal
> Supérieur
≥ Supérieur ou égal
= Egalité
≠ Différence

Opérateurs logiques

Les trois opérateurs logiques sont :


NON non logique
ET et logique
OU OU logique

Page 10 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Opérateur de concaténation : &

Cet opérateur permet de concaténer deux chaînes de caractères.

II.2 Lecture et Ecriture algorithmique

II.2.1 Instruction d’entrée ou de saisie

C’est une instruction qui permet de communiquer des données au programme ; cette
instruction assigne une valeur entrée au clavier dans une variable. Tant que l’utilisateur
n’entre rien au clavier, le déroulement du programme est stoppé. La syntaxe générale est :
SAISIR (variable) ou LIRE (variable) ;
Exemple :
SAISIR (a) /* cette instruction permet de récupérer la valeur saisie au clavier par l’utilisateur
et ensuite l’affecter à la variable a */
SAISIR (nom, age) /* cette instruction permet de récupérer la première valeur saisie au
clavier et l’affecter à la variable nom, puis de récupérer la deuxième valeur saisie et l’affecter à
la variable age */

Remarque  :
 On ne saisit que dans des variables ;
 Il vous est conseillé de précéder chaque instruction de SAISIR par une instruction
AFFICHER ceci afin de situer l’utilisateur sur ce qu’il doit saisir.

II.2.2 Instruction d’affichage ou d’écriture

L’instruction d’affichage permet l’édition (affichage) d’une valeur (qui peut être du texte, le
contenu d’une variable ou d’une constante, le résultat d’une expression (calcul), etc.) sur
un périphérique de sortie.
La syntaxe est la suivante : AFFCIHER (valeur) ou ECRIRE (valeur)
- Si valeur est un texte alors le texte sera mis entre double quotte
- Si valeur est une variable ou une constante dont on veut afficher le contenu, on écrit
simplement son nom (identificateur).
- Si valeur est une expression (calcul) ; On peut afficher directement le résultat produit par
un calcul
- Valeur peut être aussi la combinaison de texte et/ou variable (constante) et/ou calcul

II.2.3 Les libellés

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 frapper :

Page 11 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
ECRIRE ("Entrez votre nom de famille : ")
LIRE (NomFamille)

CHAPITRE III : LES STRUCTURES DE CONTRÔLES


I. LES STRUCTURES CONDITIONNELLES

Une structure conditionnelle permet d’exécuter une instruction ou un ensemble d’instructions


lorsqu’une condition est vérifiée. Les structures de contrôle conditionnelles permettent à un
programme de modifier son traitement en fonction d’une ou de plusieurs conditions. Ces
structures sont les suivantes :
- La structure conditionnelle simple ;
Page 12 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
- La structure conditionnelle alternative ;
- La structure conditionnelle imbriquée ;
- La structure de choix.

I.1 La structure conditionnelle simple « SI … ALORS »

Elle permet d’exécuter une instruction ou un ensemble d’instructions si une condition est
vérifiée. La syntaxe est la suivante :
Si condition
Alors
Instruction ou ensemble d’instructions
FinSi

I.2 La structure alternative « SI … ALORS … SINON… »

C’est une structure conditionnelle qui offre une alternative si la condition n’est pas vérifiée.
Syntaxe :
Si Condition
Alors
Instruction ou ensemble d’instructions
Sinon
Instruction ou ensemble d’instructions
FinSi

I.3 La structure conditionnelle imbriquée

Il se peut, dans certains cas, que l’expression de la condition d’un SI ne suffise pas pour
exprimer tous les cas de figures. Nous pouvons alors exprimer un SI après le ALORS d’un SI,
et/ou après le SINON d’un SI. Nous pouvons également mélanger les structures alternatives et
conditionnelles.
Syntaxe :
Si condition_1
Alors
Traitement_1
Sinon Si Condition_2
Alors
Traitement_2
Sinon Si Condition_3
Alors
Traitement_3

Page 13 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
.
.
.
Sinon Si Condition_n
Alors
Traitement_n
Sinon
Traitement_n+1
FinSi
FinSi
FinSi
FinSi

I.4 La structure de choix

Cette structure permet une présentation plus claire d’un ensemble d’alternative imbriquée.

Remarque :
 L’exécution d’un traitement entraine automatiquement la non-exécution des autres ;
 Le choix d’un traitement se fait suivant la valeur de variable ou expression.
 Cette structure permet d’éviter le recours à une longue structure conditionnelle imbriquée
et offre une meilleure lisibilité de la solution.

Syntaxe :
SelonQue variable Faire
Valeur_1 : Instruction ou ensemble d’instructions
Valeur_2 : Instruction ou ensemble d’instructions
.
.
.
Valeur_n : Instruction ou ensemble d’instructions
Sinon
Instruction ou ensemble d’instructions par défaut
FinSelonQue

Remarque :
 Variable doit être de type scalaire discret et non réel
 Valeur_i peut être un ensemble de valeurs qui seront séparées par des virgules ou un
intervalle de valeur (vi….vf)

Page 14 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
 Si la valeur de variable est différente des valeurs proposées alors c’est le traitement qui
suit la clause sinon qui sera exécuté.
 La clause sinon et son traitement sont facultatifs dans la structure.

II. LES STRUCTURES RÉPÉTITIVES OU BOUCLES

En plus des structures de contrôle conditionnelles qui permettent à un programme de modifier


son traitement en fonction d’une ou de plusieurs conditions, il existe des structures de contrôle
qui permettent de répéter une séquence d’instructions plusieurs fois, on parle de structures de
contrôle itératives ou répétitives ou simplement de boucles.

II.1 Définition

Les structures répétitives aussi appelées boucles permettent de répéter une instruction ou un
ensemble d’instructions tant qu’une condition est satisfaite.

II.2 Types de boucles

La boucle est une structure où un ensemble d’instructions sera exécuté plusieurs fois. Le
nombre de répétitions peut être connu ou inconnu à l’avance. C’est en fonction de ce
critère que se fera le choix de la structure itérative. En effet, on distingue deux sortes
de structures de contrôles itératives :
 Les boucles dans lesquelles le nombre d’exécutions est connu de prime abord : la
structure itérative POUR …. FAIRE
 Les boucles dans lesquelles le nombre d’exécutions est inconnu au départ, sont à condition
d’arrêt et sont composées de deux structures :
o La structure REPETER…JUSQU’A ou FAIRE … TANTQUE
o La structure TANTQUE…FAIRE

II.2.1 La boucle POUR

La structure POUR est utilisée dans le cas où le traitement à faire nécessite une répétition avec
le nombre des itérations connu à l’avance ; c’est donc la structure à utiliser lorsqu’on veut
répéter une ou plusieurs instructions un nombre connu de fois.

Syntaxe :
POUR variable ← vi Jusqu’à vf PAS DE incrément Faire
Instruction ou ensemble d’instructions
FinPour

Page 15 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
 variable, vi et vf sont tous de type entier
 Incrément est la valeur d’augmentation progressive ou de réduction progressive de
variable ; par défaut, il est de 1 auquel cas on n’a pas besoin de le préciser.

II.2.2 La boucle REPETER

La structure REPETER…JUSQU'A est utilisée quand il s’agit de répéter un traitement un


nombre de fois inconnu à l’avance et qu’on est sûr que le traitement itératif s’exécutera au
moins une fois. Elle permet la répétition d’une action jusqu’à ce qu’une condition soit vérifiée.
Syntaxe :
REPETER
Instruction ou ensemble d’instructions
JUSQU'A condition

Remarque:
 La condition d’arrêt est considérée comme une condition de sortie car, une fois elle est
vérifiée, on quitte la boucle et le programme continue sinon l’instruction ou l’ensemble est
encore répété jusqu’à ce que la condition soit vérifiée (vraie).
 La condition d’arrêt peut être simple ou composée
 Les caractéristiques de la boucle REPETER…JUSQU'A en font une structure adaptée
pour la reprise d’un programme ou particulièrement pour le contrôle de la saisie des
données

II.2.3 La boucle TANTQUE

Cette structure permet de répéter une instruction ou un ensemble d’instruction tant qu’une
condition est vérifiée.
Syntaxe :
TANTQUE condition FAIRE
Instruction ou ensemble d’instructions
FINTANTQUE

Remarque :
- ON UTILISE cette structure lorsque le nombre de fois qu’une instruction ou ensemble
d’instructions sera répété, est connu ou inconnu
- Une autre particularité de cette structure est que la condition est testée avant la première
exécution de l’instruction ou de l’ensemble d’instructions ;

Page 16 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
- Pour définir la condition du TANTQUE, il faut rechercher la condition d’arrêt du
traitement (condition d’arrêt de la répétition) et prendre la proposition contraire de cette
condition d’arrêt.
- A l’intérieur du TANTQUE, il faut obligatoirement avoir une instruction (qui manipule la
ou les variables de la condition) qui favorise l’arrêt de la répétition à un moment donné
(condition d’arrêt atteinte) au risque d’avoir une boucle infinie.

CHAPITRE IV : LES SOUS PROGRAMMES


Page 17 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
I. GÉNÉRALITÉS SUR LES SOUS PROGRAMMES

I.1 Introduction

Pour des besoins de clarté et de maintenance, dès qu’un algorithme atteint une certaine
complexité ou un certain volume, il devient nécessaire de le décomposer en plusieurs unités
logiques ou modules plus simples que l’algorithme initial. Ces différents modules sont appelés
sous programmes (sous algorithme). On distingue deux sortes de sous-programme, ce sont les
procédures et les fonctions.

I.2 Description (déclaration) d’un sous-programme

Sa description doit être faite en dehors des limites de l’algorithme qui l’utilise en respectant les
règles syntaxiques habituelles. Toutefois, lors de la déclaration du sous algorithme, le mot
ALGORITHME est remplacé par PROCEDURE ou FONCTION.

I.3 Vocabulaire

 Algorithme appelant : Il contient l’appel du sous algorithme.


 Algorithme appelé : c’est l’algorithme auquel on fait appel.
 Variables globales : lorsque l’appelé utilise des variables déclarées dans l’appelant : on
parle de variables globales.
 Variables locales : l’appelé peut également déclarer ses propres variables qu’il est le seul
à utiliser : on parle dans ce cas de variables locales.

II. LES PROCÉDURES

II.1 Définition

Une procédure est un sous-programme assurant de manière autonome un traitement particulier.


Ce traitement peut alors être répété dans l’algorithme principal (algorithme appelant) ou dans un
autre sous algorithme (appelant) par simple appel de la procédure.

II.2 Déclaration d’une procédure

La déclaration d’une procédure se fait en dehors de l’algorithme principal.


Syntaxe :
PROCEDURE <identificateur> (<liste de paramètres avec leurs types>)
Déclaration d’objets locaux avec leur type
DEBUT
(*corps de la procédure*)

Page 18 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
FIN

II.3 Structure d’une procédure

La structure d’une procédure est semblable à celle d’un algorithme ; elle comporte une tête, une
partie déclaration et un corps. La tête de la procédure commence par le mot réservé
PROCEDURE suivie du nom de la procédure et d’une liste de paramètres placés entre
parenthèse. Les paramètres assurent la communication entre les différents modules.

II.4 Appel d’une procédure

L’appel d’une procédure s’effectue à l’intérieur d’un algorithme ou d’un sous algorithme
appelant (avec liste de paramètres dans le même ordre que pendant l’écriture).

Exemple : Ecrire un algorithme permettant de donner le maximum de 2 entiers en utilisant une


procédure
ALGORITHME Max2Entier
VARIABLES a , b : ENTIER
DEBUT
(*saisie des deux entiers*)
AFFICHER ("Entrez les deux entiers")
SAISIR (a,b)
Maximum (a,b)
FIN

PROCEDURE Maximum (x : ENTIER, y : ENTIER)


DEBUT
SI (a > b) ALORS
AFFICHER (a & " est supérieur à "& b)
FINSI
FIN
Remarque : une procédure peut ne pas avoir de paramètres : on parle de procédure simple.

Exemple :
PROCEDURE AffMsg
DEBUT
AFFICHER("Bienvenue à dans la classe de 1 BTS IDA ASTC")
FIN

Page 19 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
III. LES FONCTIONS

III.1 Définition

Une fonction est un sous algorithme similaire à la procédure mais qui calcule une valeur d’un
type donné ; cette valeur sera retournée à l’algorithme appelant à travers le nom de la fonction.

III.2 Déclaration d’une fonction

La déclaration d’une fonction se fait en dehors de l’algorithme principal.

Syntaxe :
FONCTION <identificateur>(<liste de paramètres avec leurs types>) :Type_retour
// Déclaration d’objets locaux avec leur type
DEBUT
(*corps de la fonction*)
Renvoyer ValeurDeRetour
FIN

NB :
 ValeurDeRetour est le mot clé utilisé pour renvoyer le résultat : on écrira « Renvoyer
ValeurDeRetour »
 La ValeurDeRetour signifie l’arrêt de la fonction et la reprise de l’algorithme ou sous
algorithme appelant.

III.3 Appel d’une fonction

L’appel d’une fonction s’effectue à l’intérieur d’un algorithme ou d’un sous algorithme appelant.
Cet appel doit être contenu dans une instruction (affectation, alternative, itérative …) :
- A← nom_de_la_fonction (liste des paramètres effectifs)
- Si nom_de_la_fonction(liste des paramètres effectifs) > var Alors <action>
- TANT QUE nom_de_la_fonction(liste des paramètres effectifs) = var Alors <action>
- ……

NB : quel que soit l’utilisation de la fonction, le système vérifie la compatibilité des types de
variables traitées et du type de résultat de la fonction d’où l’importance de la déclaration
de ce type.

Exemple : même exercice que le précédent, utiliser une fonction en lieu et place d’une
procédure.

Page 20 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
III.4 Mode de passage des paramètres

III.4.1 Introduction

Les paramètres jouent deux rôles :


- Transmettre au sous-programme, au moment de son appel, les valeurs nécessaires à son
exécution.
- Au moment du retour, transmettre à l’algorithme appelant le ou les résultats du traitement
effectué.

On distingue deux sortes de paramètres :


 Paramètres formels : ce sont des paramètres qui apparaissent entre parenthèse lors de la
déclaration d’un sous algorithme ; ils indiquent les types des objets qui seront transmis et
permettent de réserver la place mémoire nécessaire pour les stocker.
 Paramètres effectifs : appelés aussi paramètres actuels, ce sont les paramètres qui
apparaissent entre parenthèses à l’appel du sous algorithme. Ils doivent avoir les mêmes
types que ceux des paramètres formels, par contre ils peuvent ne pas avoir nécessairement
les mêmes noms.

On distingue deux modes de passage des paramètres c’est-à-dire la façon dont la valeur des
paramètres effectifs est transmise aux paramètres formels.

III.4.2 Mode de passage des paramètres

a) Mode de passage par valeur

Dans ce mode, il y’a une copie de la valeur des paramètres effectifs qui est assignée aux
paramètres formels de même rang. De ce fait, toute modification des paramètres formels par le
sous algorithme n’a aucune incidence sur les paramètres effectifs. Cette copie subsistera tout au
long de l’exécution du sous algorithme et sera détruite à la fin de celle-ci.

Exemple : Ecrire un algorithme qui permet l’incrémentation d’une variable. Utiliser une
procédure avec des paramètres passés par valeur.
PROCEDURE inc (x : ENTIER)
DEBUT
X←X+1
AFFICHER ("Valeur de x dans le sous algorithme est :",x)
FIN
ALGORITHME incrementation
VAR y : ENTIER
DEBUT

Page 21 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Y←0
AFFICHER ("Avant modification valeur de y dans l’algorithme : ", y)
Inc(y)
AFFICHER ("Après modification valeur de y dans l’algorithme : ", y)
FIN

Avant modification valeur de y dans l’algorithme 0


Valeur de x dans le sous algorithme 1
Après modification valeur de y dans l’algorithme 0

b) Mode de passage par adresse

Dans ce mode, les paramètres formels et effectifs ont le même emplacement mémoire ; donc une
modification de la valeur des paramètres formels par le sous algorithme se répercute sur la valeur
des paramètres effectifs de même rang.

Exemple : Ecrire un algorithme qui permet l’incrémentation d’une variable. Utiliser une
procédure avec des paramètres passés par adresse.
PROCEDURE inc (x : ENTIER)
DEBUT
X←X+1
AFFICHER ("Valeur de x dans le sous algorithme est :",x)
FIN
ALGORITHME incrementation
VAR y : ENTIER
DEBUT
Y←0
AFFICHER ("Avant modification valeur de y dans l’algorithme : ", y)
Inc(y)
AFFICHER ("Après modification valeur de y dans l’algorithme : ", y)
FIN

Avant modification valeur de y dans l’algorithme 0


Valeur de x dans le sous algorithme 1
Après modification valeur de y dans l’algorithme 1

Page 22 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020

CHAPITRE V : LES TYPES DE DONNEES


I. LES TABLEAUX

I.1 Définition

Un tableau est une structure de données linéaire qui permet de stocker des données de mêmes
types. Chacune des valeurs est repérée par un ou plusieurs indices (indiquant la position de la
donnée dans le tableau).

I.2 Types de tableau

On distingue deux types de tableau : les tableaux à une dimension et les tableaux à plusieurs
dimensions. Néanmoins, durant notre formation, nous étudierons le cas de tableau à deux
dimensions.

I.2.1 Tableau à une dimension

Un tableau à une dimension comporte une ligne et plusieurs colonnes.

Exemple de tableau à une dimension : soit un ensemble de valeurs de notes rangées dans le
tableau N ci-dessous :

Un tableau est déclaré comme un type particulier de donnée. Nous lui donnons un nom, une
valeur d’indice minimale et une valeur d’indice maximale correspondant au nombre maximal de
cases le composant. Nous déclarons également l’indice qui permet d’adresser les différentes
cases. L’indice doit obligatoirement être de type entier.

La déclaration d’une variable de type tableau à une dimension se fait comme suit : Syntaxe :

VARIABLES
<nom du tableau> [IndiceMin .. IndiceMax] : tableau de <type_de_données> indice :
entier

Exemple de déclaration du tableau ci-dessus :

VARIABLES N [1..7] : tableau de réel i : entier

Page 23 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
I.2.2 Tableau à plusieurs dimensions : cas de tableau à deux dimensions

Lorsqu’un traitement utilise plusieurs tableaux à une dimension, subissant le même traitement,
on utilise un seul tableau à deux dimensions. Cette nouvelle forme de tableau possède un
identifiant unique. Chaque élément est identifié par deux indices : l’un indiquant la ligne et
l’autre la colonne. Un tableau à une dimension comporte plus d’une ligne et une ou plusieurs
colonnes.

Exemple de tableau à plusieurs dimensions : soit un ensemble de valeurs de notes rangées


dans le tableau N ci-dessous :

La déclaration d’une variable de type tableau à une dimension se fait comme suit : Nous lui
donnons un nom, une valeur d’indice ligne minimale, une valeur d’indice ligne maximale, une
valeur d’indice colonne minimale et une valeur d’indice colonne maximale. Nous déclarons
également deux indices qui permettent d’adresser les différentes cases, l’un indiquant la ligne
et l’autre la colonne. Les indices doivent obligatoirement être de type entier.

VARIABLES
<nom_du_tableau> [<IndiceLigMin> ..<IndiceLigMax>,
<IndiceColMin> ..<IndiceColMax>] : tableau de <type de données> indiceLig, indicecol :
entier

5.3 Utilisation d’un tableau

5.3.1 Exemple 1

Nous nous donnons de créer un algorithme de calcul de moyenne de 25 notes d’une classe
quelconque sans les désigner implicitement. On commencera par effectuer la saisie des notes, et
ensuite on calcul la moyenne des 25 notes et on affiche la moyenne.

5.3.2 Les algorithmes de recherche dans un tableau

Problème : recherche d’un élément dans un tableau.


Recherche séquentielle
Analyse :
 Parcours séquentiel du tableau

Page 24 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
 Arrêt lorsque la valeur est trouvée
 Retour l’indice correspondant
 La valeur n’est pas trouvée
 Retour d’une valeur spéciale

Conception : il s’agit ici de concevoir un algorithme qui permet le tri de plusieurs éléments
enregistrés dans un tableau pour connaitre son existence ou pas.

Les algorithmes de tri sont proposés en sujet de recherche pour chaque étudiant.

II. LES STRUCTURES D’ENREGISTREMENTS

II.1 Les structures simples

II.1.1 Définition d’un type structuré

Un type structuré est un type composé de plusieurs types élémentaires ou bien un type
permettant de construire des ensembles de valeurs particulières. Dans ce type de cas, on parle de
constructeur de type simple.

II.1.2 Intérêt des types structurés

Les types structurés permettent de construire des types selon nos besoins.

II.1.3 Constructeurs de types simples

a) Le type énuméré

C’est un type qui énumère les éléments qui le composent. Il existe une relation d’ordre sur les
types énumérés.

Exemple : couleur = {"vert", "rouge", "jaune"}

b) Le type intervalle

C’est un type qui définit un intervalle sur un type de base.

Déclaration
<Nom_du_Type> = [ borneInferieur , borneSuperieure ]

Exemple : naturel = [0,100] ou encore Lettre = ["a","z"]

II.2 Les enregistrements

Page 25 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
II.2.1 Définition

Contrairement aux tableaux qui sont des structures de données dont tous les éléments sont de
même type, les enregistrements sont des structures de données dont les éléments peuvent être
de type différent et qui se rapportent à la même entité (au sens de Merise). Les éléments qui
composent un enregistrement sont appelés champs.

II.2.2 Déclaration d’un type enregistrement

La déclaration d’un type enregistrement se fait comme suit :

Exemple :

II.2.3 Déclaration d’une variable de type enregistrement

Page 26 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Syntaxe : <Nom_Variable> : <Nom_Type_Enregistremen>

Exemple : auditeur : Etudiant (ici auditeur est de type Etudiant)

II.3 Manipulation des variables de type enregistrement

II.3.1 Affectation

Alors que les éléments d’un tableau sont accessibles au travers de leur indice, les champs d’un
enregistrement sont accessibles à travers leur nom grâce à l’opérateur ΄•΄

Syntaxe : nom_variable_enregistrement•nom_champs (représente la valeur mémorisée


dans le champ de l’enregistrement)

Exemple : écrire un algorithme permettant de renseigner


Algorithme LectureEtudiant
VAR
TYPE Etudiant = Enregistrement
Debut
Matricule, nom : chaine
DateNaissance : date
Fin
Var auditeur : Etudiant
DEBUT
AFFICHER("Donnez le matricule")
SAISIR (auditeur.matricule)
AFFICHER ("Donnez le nom")
SAISIR(auditeur.nom)
AFFICHER ("Donnez la date de naissance")
SAISIR (auditeur.DateNaissance)
FIN

Page 27 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020

EXERCICES D’APPLICATION
Exercice 1 :
Quelles seront les valeurs des variables A, B et C après exécution des instructions suivantes ?
Variables A, B, C : Entier
Début
A ← 8 ;
B ← -2 ;
C ← A + B ;
A ← 4 ;
C ← B – A ;
Fin

Exercice 2 :
Quelles seront les valeurs des variables A et B après exécution des instructions suivantes ?
Variables A, B : Entier
Début
A ← 2;
B ← A + 5;
A ← A+B;
B ← B + 2;
A ← B – A;
Fin

Exercice 3 :
Que produit l’algorithme suivant ?
Variables A, B : Entier
Début
écrire("entrer la valeur de A : ") ;
lire(A) ;

Page 28 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
écrire("entrer la valeur de B : ") ;
lire(B)
A ← A + B ;
B ← A - B ;
A ← A – B ;
écrire(" A = ",A) ;
écrire(" B = ",B) ;
Fin
Exercice 4 :
Que produit l’algorithme suivant ?
Variables A, B, C : chaîne de caractères
Début
A ← "423" ;
B ← "12" ;
C ← A & B ;
Ecrire (" C = ",C) ;
Fin

Exercice 5 :
1. Ecrire un algorithme permettant d’échanger les valeurs de deux variables A et B, et ce quel
que soit leur contenu préalable.
2. On dispose de trois variables A, B et C. Ecrivez un algorithme transférant à A la valeur de B,
à B la valeur de C et à C la valeur de A (quels que soient les contenus préalables de ces
variables).

Exercice 6 :
Ecrivez un algorithme qui calcule et affiche la surface et la circonférence d’un cercle (2 π*r et
π*r2). L’algorithme demandera à l’utilisateur d’entrer la valeur du rayon.

Exercice 7 :
Écrire un algorithme qui effectue la lecture du temps t en secondes, et il affiche le temps t en
jours, heure, minutes, secondes.
Exemple : si t=21020 secondes l’algorithme affichera 0 jours 5 heures 50 minutes et 20
secondes.

Exercice 8 :
Ecrivez un algorithme qui donne le maximum de trois nombres saisis au clavier. Effectuez des
tests pour : 2 5 8 puis 3 1 9 puis 8 -6 1

Exercice 9 :
Page 29 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Ecrivez un algorithme qui demande deux nombres à l’utilisateur et l’informe ensuite si leur
produit est négatif, positif ou nul (attention : on ne doit pas calculer le produit des deux
nombres).

Exercice 10 :
Écrivez un algorithme qui permet de décerner une mention à un étudiant selon la moyenne de ses
notes :
- "Très bien" pour une moyenne comprise entre 16 et 20 (16<= moyenne <=20)
- "Bien" pour une moyenne comprise entre 14 et 16 (14<= moyenne <16)
- "Assez bien" pour une moyenne comprise entre 12 et 14 (12<= moyenne <14)
- "Passable" pour une moyenne comprise entre 10 et 12 (10<= moyenne <12)

Exercice 11 :
1. Écrivez un algorithme qui affiche 100 fois la phrase : "je ne dois pas arriver en retard en
classe".
2. Écrivez un algorithme qui affiche les entiers de 1 à 100.
3. Écrivez un algorithme qui affiche les entiers pairs de 1 à 100.

Exercice 12 :
1. Écrivez un algorithme qui calcule la somme des n premiers nombres entiers positifs.
L’algorithme demandera à l’utilisateur d’entrer la valeur de n.
2. Écrivez un algorithme qui calcule la somme des n premiers nombres entiers positifs paires.
L’algorithme demandera à l’utilisateur d’entrer la valeur de n.

Exercice 13 :
1. Un nombre entier p (différent de 1) est dit premier si ses seuls diviseurs positifs sont 1 et p.
Ecrivez un algorithme qui effectue la lecture d’un entier p et détermine si cet entier est
premier ou non.
2. Deux nombres entiers n et m sont qualifiés d’amis, si la somme des diviseurs de n est égale
à m et la somme des diviseurs de m est égale à n (on ne compte pas comme diviseur le
nombre lui-même et 1).
Exemple : les nombres 48 et 75 sont deux nombres amis puisque : Les diviseurs de 48 sont : 2,
3, 4, 6, 8, 12, 16, 24 et 2 + 3 + 4 + 6 + 8 + 12 + 16 + 24 = 75
Les diviseurs de 75 sont : 3, 5, 15, 25 et 3 + 5 + 15 + 25 = 48.

Exercice 14 :
1. Ecrivez un algorithme qui lit la taille n d’un tableau T, il saisit les n éléments du tableau T,
il effectue la somme des n éléments du tableau et il affiche cette somme.

Page 30 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
2. Ecrivez un algorithme qui lit la taille n de deux tableaux T1 et T2, il effectue la lecture de
ces deux tableaux, ensuite il effectue la somme des tableaux T 1 et T2 dans un tableau T et il
affiche le tableau T.
Exemple : pour n = 8 ; T1 = [4,5,8,-2,5,6,0,-5], T2 = [1,-5,-7,0,-1, 3,-8,9], le tableau T obtenu est :
T= [5,0,1,-2,4,9,-8,4],

Exercice 15 :
1. Ecrivez un algorithme qui permet à l’utilisateur de saisir les notes d'une classe, ensuite il
renvoie le nombre de ces notes supérieures à la moyenne de la classe.
2. Ecrivez un algorithme qui permet à l’utilisateur de saisir un tableau de taille n et d’afficher
le plus grand et le plus petit élément du tableau.

Exercice 16 :
1. Ecrire un programme qui saisit un entier au clavier et qui recherche si cet entier appartient
au tableau (réponse de type oui/non).
2. Ecrire un programme qui saisit 6 entiers et les stocke dans un tableau, puis affiche le
contenu de ce tableau une fois qu’il est rempli.
3. Ecrire un programme qui saisit un tableau de 6 entiers puis calcule la moyenne de ces six
entiers. Attention, la moyenne des entiers n’est pas un entier.

Page 31 sur 31