Chapitre 1
Chapitre 1
Chapitre 1
Objectifs
1. Définitions
Un algorithme est la description des actions (ou instructions) à effectuer pour résoudre un
problème.
Un algorithme est une suite finie d’opération élémentaires permettant de résoudre un problème
donné.
L’algorithmique est la partie de l’informatique qui traite des algorithmes.
Les variables et les constantes permettent de contenir des informations (ou données) utilisées dans
un algorithme.
Une variable ou une constante est caractérisée par :
Un identificateur, qui est un nom unique qui permet de la désigner,
Un type, qui correspond à la nature de l’information qu’elle contient,
Une valeur, c’est à dire l’information qu’elle contient.
La valeur d’une variable peut être modifiée dans un algorithme, alors que celle d’une constante est
fixée une fois pour toutes.
1
Remarque
Une valeur de type caractère doit être entre apostrophes. Par exemple : ‘A’,’3’
Une valeur de type chaîne doit être entre guillemets (double quotte).
Par exemple : ’’Bonjour’’
Une variable est constituée d'un nom et d'un contenu (d'un certain type). Avant d’utiliser une
variable ou une constante dans un algorithme il faut d’abord la déclarer en définissant clairement
son identificateur et son type.
Un identificateur est une suite de caractères pouvant contenir des lettres, des chiffres, et le
caractère _ (tiret de 8). Mais le premier caractère ne peut pas être un chiffre.
On peut initialiser une variable (lui affecter une première valeur) lors de sa déclaration. On peut
aussi déclarer en même temps plusieurs variables de même type.
Exemple
Variable a : entier
Variable message : chaine
Variables x, y, z : réel
Variables x 5, y, z : entier
2
Algorithme Nom de l’algorithme
Constante
Début
Variable
Instructions
Fin
3
Opérateur de chaînes de caractères
Pour concaténer deux chaînes de caractères, on doit utiliser l'opérateur de concaténation, cet opéra-
teur se note avec le signe "+" ou "&".
Remarque
Une opération de comparaison donne comme résultat soit la valeur VRAI soit la valeur
FAUX.
Étant données deux variables booléennes A et B, les résultats des opérations ET, OU et NON sont
définis dans le tableau suivant :
Règle d’évaluation d’une expression : Une expression est évaluée en fonction de la priorité
des opérateurs qui la composent, en commençant par ceux de priorité plus forte. À priorité égale,
les opérateurs sont évalués de gauche à droite.
Voici les opérateurs rangés par priorité décroissante :
Non la priorité la plus forte
* , / , Div , Mod , Et
+ , - , Ou
< , > , <= , >= , = , <> priorité la plus faible
4
une condition est -une expression dont le type est booléen, c’est à dire que sa valeur est soit VRAI ,
soit FAUX . On parle aussi d’expression booléenne, d’expression logique, d’expression conditionnelle.
Exemples
Variables
a 5, b 2, c 3 : entier
a <( 2 * b-c) est -une condition dont la valeur est : FAUX
(a>0) ET (b<0) est une condition dont la valeur est : FAUX
8-1 l’affectation
L’instruction d’affectation permet d’attribuer une valeur à une variable. Cette instruction est no-
tée « identificateur prend valeur ».
Comme il a été vu précédemment, on peut aussi noter : « identificateur ← valeur ».
Exemples
Variables
x,y : entier
x←5
y←x-2
x←x+1
Exemples :
A "Bon" ;
B "jour" ;
C A&B;
5
La variable C contient maintenant la chaîne : "Bonjour".
8-2 la lecture
L’entrée ou la lecture de données correspond à l’opération qui permet de saisir des valeurs pour
qu’elles soient utilisées par le programme. Cette instruction est notée « saisir identificateur » ou «
lire identificateur ».
8-3 l’écriture
La sortie ou l’écriture des données permet l’affichage des valeurs des variables après traitement.
Cette instruction est notée « écrire identificateur » ou « afficher identificateur ».
9. Exemple d’algorithme
Algorithme Echange
début
variables
x, y, tmp : entier
Ecrire(’’ Donner les valeurs respectives des deux deux entiers x et y :’’)
Lire(x, y)
Ecrire (’’ Avant échange : x vaut ’’, x ,’’ et y vaut :’’, y)
tmp x
6
x y
y tmp
Ecrire(’’ Après échange : x vaut ’’, x ,’’ et y vaut :’’, y)
fin
A l’exécution, si l’utilisateur donne 2 pour la valeur de x et 5 pour celle de y, nous aurons à l’écran :
Donner les valeurs respectives des deux entiers x et y : 2 5
Avant échange : x vaut 2 et y vaut : 5
Après échange : x vaut 5 et y vaut : 2
Algorithme positif
Si <condition> Alors Variable
instruction A: entier
FinSi Début
Lire(A)
Si A > 0 Alors
Si <condition> Alors Ecrire(" A est positif ")
instructions FinSi
Fin
Sinon
Algorithme positif1
instructions Variable
FinSi A: entier
Début
Lire(A)
Si A > 0 Alors
Ecrire(" A est positif ")
Sinon
7Ecrire(" A est négatif ")
FinSi
Fin
Un traitement peut être constitué d’une ou de plusieurs instructions. Les conditions sont évaluées
dans l’ordre d’apparition. Dès qu’une condition est vraie, c’est le traitement associé qui sera exécuté.
Si aucune condition n’est vérifiée, alors c’est le traitement associé à la clause Sinon, si elle existe,
qui sera exécuté.
Exemple
Variable
n : entier
Ecrire( ’’ Donnez un nombre entier’’)
Lire(n)
Si (n>0) Alors
Ecrire(’’ valeur positive’’)
Sinon Si (n=0) Alors
Ecrire(’’ valeur nulle’’)
Sinon
Ecrire(’’ valeur négative’’)
FinSi
8
La structure Selon permet d’exécuter un traitement ou un autre en fonction de la
valeur d’une expression qui peut être de type entier, caractère ou booléen. Sa Syntaxe
est :
La valeur de l’expression est successivement comparée à chacune des valeurs listées. Dès qu’il y a
correspondance, c’est le traitement associé qui sera exécuté. Si aucune des valeurs ne correspond à
la valeur de l’expression, alors c’est le traitement associé à la clause Sinon si elle existe qui sera
exécuté.
9
10- 3 les structures répétitives
Les structures répétitives, encore appelées boucles, permettent de répéter plusieurs
fois l’exécution d’un traitement.
10- 3-1 la boucle Tant Que
La boucle Tant Que permet de répéter l’exécution d’un traitement tant qu’une
condition est vraie . Sa syntaxe est :
Tant Que (condition) Faire
traitements
FinTantQue
Organigramme
10
Exemple : affichage des nombres entiers compris entre 1 et un nombre positif donné
par l’utilisateur.
Variable
n ,i : entier
Ecrire (’’Donnez une valeur entière positive’’)
Lire(n)
i←1
Tant Que (i<=n) Faire
Ecrire(i)
i←i+1
FinTantQue
11
!!
Remarques :
Il y a toujours au moins une exécution du corps. La structure REPETER permet de
répéter un traitement 1 ou plusieurs fois.
Pour choisir entre REPETER et tant que il faut se poser la question : faut-il éventuelle-
ment ne jamais faire le traitement ? Si oui : il faut utiliser tant que, sinon utiliser la struc-
ture REPETER qui exécute au moins une fois l'action.
NB: Attention, en C, C++,JAVA, ….. :
La structure est do...while : c'est à dire Faire...TANTQUE . Alors que la structure algo-
rithmique est répéter...jusqu'à.
C'est à dire qu'en C, C++,JAVA, ….. on exécute l'action tant qu'une condition est vraie
alors qu'en algorithme on exécute une action tant que la condition est fausse, c'est à
dire jusqu'à ce que la condition inverse soit vraie.
12
Organigramme
Exemple : affichage de l’inverse d’un entier non nul donné par l’utilisateur .
Variable
n : entier
Faire
la boucle Pour permet d’exécuter un traitement pour chaque valeur prise dans un intervalle par
une variable de type entier appelée compteur . Sa syntaxe est la suivante :
13
Le compteur est initialisé à la valeur initiale. Il augmente automatiquement de la valeur du pas à
chaque exécution du traitement . Quand il atteint la valeur finale, le traitement est exécutée une
dernière fois. Si le pas n’est pas précisé, sa valeur est par défaut égale à 1. Lorsque l'on sait
exactement combien de fois on doit itérer un traitement, c'est cette boucle qui doit être privilégiée.
Organigramme
Exemple
Variable
i : entier
// affichage à l’écran des entiers pairs de 0 à 20 :
14
Pour i de 0 à 20 Faire
Ecrire(i)
FinPour
Exemple
Pour i de 1 à 5 Faire
Ecrire(’’Etape’’,i ,’’ :’’)
Si(i=3) Alors
Arrêter
FinSi
Ecrire(’’Bonjour’’)
FinPour
Exemple
Pour i de 1 à 5 Faire
Ecrire(’’Etape’’,i ,’’ :’’)
Si(i=3) Alors
Continuer
FinSi
15
Ecrire(’’Bonjour’’)
FinPour
16