ALGORITHMIQUE & PROGRAMMATION
1 Notions de base
1.1 Qu’est-ce qu’un algorithme ?
Le mot « algorithme » provient du nom du mathématicien arabe AL KHAWARIZMI. Un
algorithme peut être définie comme étant « une suite finie d’actions élémentaires qui une fois
appliquée sur des données, dans un ordre donné, fournira des résultats déterminés ».
1.2 Qu’est-ce qu’un programme ?
un programme est un enchaînement d’instructions, écrit dans un langage de programmation,
exécutées par un ordinateur, permettant de traiter un problème et de renvoyer des résultats. Il
représente la traduction d’un algorithme à l’aide d’un langage de programmation.
Problème
Saisie
Algorithme Données
Analyse
Programme
Traduction
Résultats
Exécution
Figure 1 – Cycle de développement d’un programme informatique.
1.3 Les langages de programmation
Un langage de programmation est un ensemble de commandes et d’autres syntaxes utilisées
pour créer un programme. Les langages utilisés pour écrire du code sont appelés « langages de
haut niveau ». Ce code peut être compilé dans un « langage de bas niveau », qui est reconnu
directement par le matériel informatique.
Parmi les langages de programmation, on peut citer : Pascal, C, C++, Visual Basic, Java,
C#, J#, etc.
1.4 Structure générale d’un algorithme
Un algorithme est composé de trois parties principales :
1
L’en-tête : cette partie sert à donner un nom à l’algorithme. Elle est précédée par le mot
Algorithme ;
La partie déclarative : dans cette partie, on déclare les différents objets que l’algorithme
utilise (constantes, variables, etc.) ;
Le corps de l’algorithme : cette partie contient les instructions de l’algorithme. Elle est
délimitée par les mots Début et Fin.
Algorithme Programme Pascal
En-tête Algorithme NomAlgorithme ; Program NomProgramme ;
Partie Constante Nom = valeur ; Const Nom = valeur ;
déclarative Variable Nom : type ; Var Nom : type ;
Début Begin
Instruction 1 ; Instruction 1 ;
Corps de
Instruction 2 ; Instruction 2 ;
l’algorithme
··· ···
Instruction n ; Instruction n ;
Fin. End.
Tableau 1 – Structure d’un algorithme et sa transcription en langage Pascal
2 Variables et constantes
2.1 Notion de variable
Les données ainsi que les résultats des calculs intermédiaires ou finaux, sont rangés dans
des cases mémoires qui correspondent à des variables.
Ainsi, une variable est rangée dans un emplacement mémoire nommé, de taille fixe (ou non)
prenant au cours du déroulement de l’algorithme, un nombre indéfini de valeurs différentes.
2.1.1 Déclaration des variables
La partie déclaration consiste à énumérer toutes les variables dont on aura besoin au cours
de l’algorithme.
Chaque déclaration doit comporter le nom de la variable (identificateur 1 ) et son type.
Syntaxe
En algorithme En Pascal
Variable identificateur : type ; Var identificateur : type ;
1. Un identificateur est le nom donné à un variable, une fonction, etc. Ce nom doit obligatoirement commencer
par une lettre suivie d’une suite de lettres et/ou de chiffres et il ne doit pas contenir d’espace
2
Exemples
En algorithme En Pascal
Variable surface : réel ; Var surface : real ;
Variable a : entier ; Var a : integer ;
Variable a,b,c : entier ; Var a,b,c : integer ;
Variable Nom,Prenom : chaine ; Var Nom,Prenom : string ;
Variable absent : logique ; Var absent : boolean ;
2.1.2 Types de variables
Le type d’une variable est l’ensemble des valeurs qu’elle peut prendre. Par exemple, une
variable de type logique (booléen) peut prendre les valeurs « Vrai » ou « Faux ».
Les différents types utilisés en algorithmique :
Type En Pascal Description
Entier Integer Sert à manipuler les nombres entiers positifs ou négatifs. Par
exemple : 5, -15, etc.
Réel Real Sert à manipuler les nombres à virgule. Par exemple : 3.14, -15.5,
etc.
Caractère Char Sert à manipuler des chaines de caractères permettant de représen-
ter des mots ou des phrases. Par exemple : ’Monsieur’, ’Bonjour
tout le monde’, etc.
Chaine String Sert à manipuler des chaines de caractères permettant de représen-
ter des mots ou des phrases. Par exemple : ’Monsieur’, ’Bonjour
tout le monde’, etc.
Logique Boolean Utilise les expressions logiques. Il n’y a que deux valeurs boo-
léennes : Vrai ou Faux.
2.1.3 Quelques fonctions définies sur les types simples des données
À un type donné, correspond un ensemble d’opérations définies sur ce type :
Fonction En Pascal Type Description
Quotient(N1 , N2) N1 Div N2 Entier Retourne le quotient de la division eucli-
dienne entière de N1 par N2. Exemple :
Quotient(19 , 2) = 9
Reste(N1 , N2) N1 Mod N2 Entier Retourne le reste de la division euclidienne
de N1 par N2.
Exemple : Reste(17 , 3) = 2
Abs(x) Abs(x) Entier ou Réel Retourne la valeur absolue du nombre x.
Exemple : Abs(-5.5) = 5.5
Racine(x) sqrt(x) Entier ou Réel Retourne la racine carrée du nombre posi-
tif x.
Exemple : Racine(6.25) = 2.25
3
2.2 Les constantes
Comme une variable, à une constante correspond un emplacement mémoire réservé auquel
on accède par le nom qui a lui été attribué, mais dont la valeur stockée ne sera jamais modifiée
au cours du programme.
Syntaxe
En algorithme En Pascal
Constante identificateur = valeur ; Const identificateur = valeur ;
Exemples
En algorithme En Pascal
Constante Pi =3.14 ; Var Pi = 3.14 ;
3 Les instructions de base
Une instruction est une action élémentaire commandant à la machine un calcul, ou une
communication avec l’un de ses périphériques d’entrée ou de sorties. Les instructions de base
sont :
3.1 L’instruction d’affectation
L’affectation permet d’attribuer la valeur d’une expression (arithmétique ou logique) à une
variable. Elle est symbolisée en algorithme par « ← » et en Pascal par le signe « := ».
Syntaxe
En algorithme En Pascal
Variable ← expression ; Variable := expression ;
L’expression peut être soit :
— Un identificateur. Exemple : c ← a ;
— Une constante. Exemple : Pi ← 3.14 ;
— Une expression arithmétique. Exemple : perimetre ← 2*(long+larg) ;
— Une expression logique. Exemple : positif ← a>=0 ;
3.2 L’instruction de lecture
L’instruction de lecture ou d’entrée donne la main à l’utilisateur pour saisir une donnée au
clavier. La valeur saisie sera affectée à un variable.
4
Syntaxe
En algorithme En Pascal
Lire(identificateur) ; Read(identificateur) ;
Exemples
En algorithme En Pascal
Lire(A) ; Read(A) ;
Lire(A,B,C) ; Read(A,B,C) ;
L’instruction « Lire(A) ; » permet à l’utilisateur de saisir une valeur au clavier. La valeur
saisie sera affectée à la variable A.
Remarque
Lorsque le programme rencontre cette instruction, l’exécution s’interrompt et attend que
l’utilisateur tape une valeur. Cette valeur est rangée en mémoire dans la variable désignée.
3.3 L’instruction d’écriture
Avant de lire une variable, il est conseillé d’écrire des libellés à l’écran, afin de prévenir
l’utilisateur de ce qu’il doit frapper (sinon, l’utilisateur passe son temps à se demander ce que
l’ordinateur attend de lui).
L’instruction d’écriture (ou de sortie) permet d’afficher des informations à l’écran.
Syntaxe
En algorithme En Pascal
Écrire(argument) ; Write(argument) ;
Exemples
En algorithme En Pascal
Écrire(A) ; Write(A) ;
A ← 2; A := 2 ;
Écrire(’La valeur de A est ’,A) ; Write(’La valeur de A est ’,A) ;
L’instruction « Écrire(A) ; » permet d’afficher à l’écran la valeur de la variable A alors que
l’instruction « Écrire(’La valeur de A est ’,A) ; » affiche à l’écran : La valeur de A est 2.
5
3.4 Exemple d’un algorithme
3.4.1 Problème
Écrire un algorithme qui permet de saisir le prix hors taxes d’un article et de calculer son
prix toutes taxes comprises. TVA = 20%.
3.4.2 Solution
0 Algorithme Calcul_PTTC ;
1 Variable PHT, PTTC : réel ;
2 Constante TVA = 0.2 ;
3 Début
4 Écrire(’Entrez le prix hors taxes : ’) ;
5 Lire(PHT) ;
6 PTTC ← PHT + PHT*TVA ;
7 Écrire(’Le prix TTC est ’,PTTC) ;
8 Fin.
3.4.3 Explication de l’algorithme
No de la ligne Explication
0 Déclare un algorithme dont le nom est Calcul_PTTC.
1 Déclare les différentes variables utilisées par l’algorithme.
2 Déclare la constante TVA.
3 Marque le début des traitements effectués par l’algorithme.
4 Affiche à l’écran le message « Entrez le prix hors taxes : ».
5 Permet à l’utilisateur de saisir une valeur au clavier qui sera affectée à la
variable PHT.
6 Calcul le prix TTC et affecte le résultat à la variable PTTC.
7 Affiche le résultat à l’écran.
8 Marque la fin de l’algorithme.
3.4.4 Transcription de l’algorithme en langage Pascal
Program Calcul_PTTC ;
Var PHT,PTTC : real ;
Const TVA=0.2 ;
Begin
Write(’Entrez le prix hors tazes : ’) ;
Read(PHT) ;
PTTC := PHT + PHT*TVA ;
Write(’Le prix TTC est ’,PTTC :0 :2) ;
End.
6
4 Les instructions conditionnelles
Contrairement au traitement séquentiel, la structure alternative ou conditionnelle permet
d’exécuter ou non une série d’instructions selon la valeur d’une condition.
4.1 L’alternative simple
Cette structure est utilisée si on veut exécuter une instruction seulement si une condition
est vraie et ne rien faire si la condition est fausse.
Syntaxe
En algorithme En Pascal
Si condition alors If condition then
instruction(s) ; Instruction(s) ;
FinSi
Exemples
En algorithme En Pascal
If b<>0 then
Si b̸=0 alors
Begin
d←-a/b ;
d := a/b ;
Écrire(’La division est : ’,d) ;
Write(’La division est ’,d :0 :2) ;
FinSi
End ;
Si b̸=0 alors If b<>0 then
Écrire(’La division est ’,a/b) ; Write(’La division est ’,a/b :0 :2) ;
FinSi
4.2 L’alternative complète
Syntaxe
En algorithme En Pascal
Si condition alors If condition then
instruction(s) 1 Instruction(s) 1
Sinon Else
Instruction(s) 2 ; Instruction(s) 2 ;
FinSi
La condition est évaluée. Si la condition est vraie, la série d’instructions1 est exécutée et
l’ensemble d’instructions2 est ignoré, la machine sautera directement à la première instruction
située après le FinSi.
De même, au cas où la condition était fausse (avait comme valeur Faux), la machine saute
directement à la première ligne après le Sinon et exécute l’ensemble d’instructions2.
7
Exemple
En algorithme En Pascal
Si b̸=0 Alors If b<>0 then
Écrire(’La division est ’,a/b) Write(’La division est ’,a/b :0 :2)
Sinon Else
Écrire(’La division est impossible’) ; Write(’La division est impossible’) ;
FinSi
4.3 Choix multiple
Cette structure conditionnelle permet de choisir le traitement à effectuer en fonction de la
valeur ou l’intervalle des valeurs d’une variable ou d’une expression.
Syntaxe
En algorithme En Pascal
Cas expression vaut Case expression of
valeur 1 : action(s)1 ; Valeur 1 : action(s)1 ;
valeur 2 : action(s)2 ; Valeur 2 : action(s)2 ;
······ ······
valeur n : action(s)n ; Valeur n : action(s)n ;
Autres action(s) ; Else action(s)
FinCas End ;
Lorsque l’ordinateur rencontre cette instruction, il vérifie la valeur de l’expression et il la
compare aux différentes valeurs.
Les valeurs sont évalouées dans l’ordre, les unes après les autres, et dès qu’une de celles-ci
est vérifiée, l’action associée est exécutée. On peut utiliser une instruction Autres (facultative),
dont l’action sera exécutée si aucune des valeurs évaluées n’a été remplie.
Exemple
En algorithme En Pascal
Cas Num_Jour vaut Case Num_Jour of
1 : Écrire(’Lundi’) ; 1 : Write(’Lundi’) ;
2 : Écrire(’Mardi’) ; 2 : Write(’Mardi’) ;
3 : Écrire(’Mercredi’) ; 3 : Write(’Mercredi’) ;
4 : Écrire(’Jeudi’) ; 4 : Write(’Jeudi’) ;
5 : Écrire(’Vendredi’) ; 5 : Write(’Vendredi’) ;
6 : Écrire(’Samedi’) ; 6 : Write(’Samedi’) ;
7 : Écrire(’Dimanche’) ; 7 : Write(’Dimanche’) ;
Autres Écrire(’Numéro invalide !’) ; Else Write(’Numéro invalide !’) ;
FinCas End ;