2020
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
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é.
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.
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.
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.
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, ...).
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).
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
Page 4 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
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.
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
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.
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é.
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.
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.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 ;
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 :
Opérateurs de comparaison
Opérateurs logiques
Page 10 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Opérateur de concaténation : &
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.
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
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)
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
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
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
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.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.
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
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.
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
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.
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.
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
II.1 Définition
Page 18 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
FIN
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.
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 :
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.
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.
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
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.
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
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
Page 22 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
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).
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.
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
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.
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.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.
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.
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.
Les types structurés permettent de construire des types selon nos besoins.
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.
b) Le type intervalle
Déclaration
<Nom_du_Type> = [ borneInferieur , borneSuperieure ]
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.
Exemple :
Page 26 sur 31
COURS D’ALGORITHME 1 BTS IDA - RIT 2019 -
2020
Syntaxe : <Nom_Variable> : <Nom_Type_Enregistremen>
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 ΄•΄
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