Vous êtes sur la page 1sur 16

M. L.

HASNAOUI UMI-EST Algorithmique et Base de Programmation

Chapitre 1 : Algorithmique

Introduction

Algorithme : mot dérivé du nom du mathématicien Al_Khwarizmi qui a vécu


au 9ème siècle, était membre d’une académie des sciences à Bagdad. Son apport en
mathématiques fut tel qu'il est également surnommé « le père de l'algèbre »,

Un algorithme prend des données en entrée, exprime un traitement


particulier et fournit des données en sortie.

L’algorithme est un ensemble de règles opératoires dont l'enchaînement


permet de résoudre un problème au moyen d'un nombre fini d'opérations.

Un algorithme est constitué.

 d'un entête composé du MOT Réservé ALGORITHME et d'un nom de


l'algorithme à réaliser
 d'une zone de déclaration des identificateurs (variables) utilisés dans
l'algorithme
 et d'un corps délimité par deux mots réservés DEBUT et FIN. C'est ici
qu'on écrit les actions de l'algorithme

Algorithme_Nom

<Déclaration des variables>

DEBUT

<Actions>

FIN

Page 1 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

Il y a deux façons de représenter un algorithme :

 Représentation graphique, avec des carrés, des losanges, etc. qu’on


appelait des organigrammes.
 pseudo-code : qui ressemble à un langage de programmation
authentique dont on aurait évacué la plupart des problèmes de syntaxe.

1. Caractéristiques d'un algorithme

 Un algorithme est constitué d'un ensemble fini d'actions composées


d'opérations ou actions élémentaires. Ces actions élémentaires doivent être
effectives (réalisable par la machine), non ambiguës.
 Un algorithme doit toujours se terminer après un nombre fini
d'opérations.
 Un algorithme est indépendant du langage de programmation choisi

2. Langage de programmation

Définition

On appelle langage de programmation tout ensemble fini de mots réservés


qui permettent de traduire les instructions de l’algorithme afin de l’exécuter par
l’ordinateur.

Exemple

C, Turbo Pascal, Cobol, Fortran, Delphi, Visual Basic (VB), C++, Java etc...

Le langage de programmation est l'intermédiaire entre l'humain et la machine, il


permet d'écrire dans un langage proche de la machine mais intelligible par
l'humain les opérations que l'ordinateur doit effectuer. Ainsi, étant donné que le
langage de programmation est destiné à l'ordinateur, il doit donc respecter une
syntaxe stricte.

Le programme est ensuite transformé en langage machine lors d'une


étape appelée compilation. La compilation est une phase réalisée par
l'ordinateur lui-même grâce à un autre programme appelé compilateur.

Page 2 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

La phase suivante s'appelle l'édition de liens, elle consiste à lier le programme


avec tous les éléments externes (généralement des librairies auxquelles il fait
référence).

3. Code source

Définition

Le code source est le premier résultat de la traduction d’un algorithme en un


langage évolué :

4. Compilateur

Définition :

Un compilateur est un programme qui permet la transformation d'un code source


en langage machine. Le langage C nécessite donc un compilateur pour traduire,
une fois pour toute, votre code source C. Il existe plusieurs compilateurs Dev-C++
turbo C ….

Page 3 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

5. Structure générale d’un algorithme

Titre du Problème

Déclaration

 Déclaration des Constantes

 Déclaration des Variables

 Déclaration des Tableaux

 Déclaration des Procédures et Fonctions

Démarche à suivre pour résoudre un problème donné:

Identifier les données du départ (entrées) et celle(s) qu’il faut obtenir (sorties);

Structurer les données (variables ou constantes, type...);

Réfléchir pour déterminer les actions nécessaires à l’obtention des résultats ;

Présenter les résultats.

Les ordinateurs ne sont capables de comprendre que quatre catégories


d'instructions :

 l’affectation de variables
 la lecture / écriture
 les tests
 les boucles

Un algorithme informatique se ramène donc toujours au bout du compte à la


combinaison de ces quatre petites briques de base. Il peut y en avoir quelques
unes, quelques dizaines, et jusqu’à plusieurs centaines de milliers dans certains
programmes de gestion.

Les constantes

Les Constantes désignent des références à des valeurs invariantes dans le programme

Syntaxe de la déclaration :

Constante Nom_Constante = Valeur


/*en C #define PI 3.14 ou const folat PI=3,14*/

Page 4 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

Exemple :

Constante PI = 3.14

6. Les variables

Dans un programme on a besoin des Variables typés pour stocker les données

 Entrées
 Sorties
 Intermédiaires
Dans l’ordinateur, physiquement, il y a un emplacement de mémoire, repéré par
une adresse.

Il existe différents types de variables.

Types entier (int en langage C)

C’est l’ensemble des nombres entiers positifs ou négatifs

Syntaxe de la déclaration :

Entier variable1,variable2

Exemple

a et b sont, par exemple, les coefficients de l’équation : ax + b = 0

Entier a,b /* int a,b ; */

Type réel (float ou double en langage C)

C’est l’ensemble des nombres réels, c’est à dire les nombres décimaux sans limitation.

Syntaxe de la déclaration :

Réel variable1, variable2

Exemple :

Réel x,y /* float x,y ; */

Type Chaîne de caractères (char en langage C)

C’est une suite de caractères, c’est à dire des combinaisons de caractères (lettres,
chiffres, symboles..).

Page 5 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

Syntaxe de la déclaration :

Caractère variable1 , variable2

Exemple :

Caractère Nom, Categorie (/*en C char Nom, Cetegorie ;*/

Type Booléen (bool en C)

Il s’agit des objets qui ne peuvent prendre que deux valeurs vrai ou faux.

Syntaxe de la déclaration :

Booléen variable1, variable2

Exemple : Booléen Decision /* bool Decision ; */

Type tableau (tab[] en C)

Un tableau permet de représenter un ensemble de valeurs ayant des propriétés


communes et appartenant toutes au même type. Ces variables sont identifiées
par un même nom mais un numéro de repère (indice) pour chacun.

Entier Tab[5] /* in tab[5] en ; */

tableau de 10 valeurs entiers T[0], tab[1], ……..tab[4]

5 2 8 20 7
Tab[0] Tab[1] Tab[2] Tab[3] Tab[4]

Tableau à plusieurs dimensions :

Une matrice d’entiers de 2 lignes et 3 colonnes :

Entier Matrice[2][3 ] int Matrice[2][3 ]

Matrice-Test[2][3] = 10 /* element 2eme ligne 3eme colonne */

Page 6 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

Les Fonctions et Les Procédures

Ce sont des sous-programmes auxquels on peut faire référence à l’intérieur d’un


programme. Ils sont conçus pour éviter les répétitions et pour découper des
programmes jugés trop longs; ce qui facilite la lisibilité du programme principal.

7. Instruction d’un Algorithme

Définition

On appelle instruction toute commande élémentaire que l’on doit appliquer sur
des objets pour avoir des sorties bien définies.

La partie manipulation doit commencer par le mot DEBUT et se termine par le


mot FIN :

DEBUT

Instruction 1

Instruction 2

……. Action

Instruction n

FIN

La partie manipulation utilise les différents objets déclarés dans la partie


déclaration et leur applique des opérations afin de retourner le(s) résultat(s)
attendu(s) par le programmeur. Pour ce fait, il y a différentes actions, dites
instructions, à savoir :

Instructions de dialogue Homme-Machine

Instructions d’affectation

Instructions à structure alternative

Instructions à structure répétitive

Appel des fonctions

Etc…

Page 7 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

8. Instructions de dialogue Homme-Machine

L’affichage des informations:

Pour faire comprendre qu’il faut afficher des informations à l’écran, on utilise
l’instruction écrire qui obéit à la syntaxe suivante :

Écrire (" Message" )

Exemples :

Écrire (" Saisissez la valeur de a ")

Écrire (‘"Saisissez la valeur de b ")

Écrire (" Saisissez les valeurs de a et b ")

Écrire ("Le résultat trouvé est : ", r )

Écrire (r)

La Saisie des informations:

Pour indiquer dans un algorithme que telle donnée doit être lue par le système,
on utilise l’instruction lire qui obéit à la syntaxe suivante :

Lire(Variable)

Exemple : Écrire ("Saisissez la valeur de a ")

Lire(a)

Instruction d’affectation

C’est le stockage d’une valeur à un endroit spécifique (variable). Pour


affecter une valeur à une variable, on écrit :

Variable  Valeur

Variable  valeur 1 + valeur 2

Variable  valeur 1 * valeur 2

Variable  valeur + Variable1

Exemple :

Page 8 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

A quoi seront égales les variables A et B après l’exécution de la suite


d’instructions suivantes :

1. A  5

2. B  A+4

3. A  A+1

4. B  A-4

Solution

Instructions Valeur de A Valeur de B


0: ? ?
1: A  5 …5…… ?

2: B  A+4 …5…… …9……

3: A  A+1 …6…… …9……

4: B  A-4 …6…… …2……

A la fin, A=…6…… et B=…2……

Exemple

Écrire un algorithme permettant d’échanger les valeurs de deux variables entiers


A et B, et ce, quelque soit leur contenu préalable.

Solution :

Echanger_deux_Entier

Entier A, B, tempo

Début

tempo ← A
A←B
B ← tempo
Fin

On est obligé de passer par une variable dite temporaire (la variable tempo) pour
ne pas perdre la valeur de A qu’on va affecter par la suite à la valeur B.

Page 9 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

9. Les opérateurs

a) Les opérateurs Arithmétiques :

Opérateur Signification
+ Addition
- Soustraction
* Multiplcation
/ division
Mod ou (en C %) Modulo : le reste de la division de 2 valeurs entières
Div Divion entière

b) Les opérateurs de Comparaison :

Pour exprimer les conditions, on utilise les opérateurs conditionnels suivants :

Opérateur Signification
= Egale
< Inférieur
> Supérieur
<= Inférieur ou égal

>= Supérieur ou égal

<> différent

c) Les opérateurs logiques de relation :

Opérateur Signification
Et Logique
Ou Logique
Non Négation logique

Ou = Xor Ou exclusif

10. structures alternatives Si….Sinon et selonque

Les conditions

On appelle condition simple toute expression de la forme :


1. Variable 1 Opérateur Variable 2

Page 10 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

a. L’instruction Si … sinon : en lagage C if….else

Pour exprimer le fait que des instructions vont être exécutées dans un cas alors
que d’autres instructions peuvent être exécutées dans l’autre cas, on utilise une
structure alternative.

Syntaxe :

Si condition alors

Actions 1

Sinon

Actions 2

Finsi

Exemple

Écrire l’algorithme qui permet de calculer le maximum de deux entiers


quelconques.

Données d’entrée a, b de type entier

Sortie : variable max de type entier

Algo_Maximum

Entier a ,b, max

Début

Écrire ("Saisir deux entiers a et b ")

Lire(a, b)

Si (a > b) alors

max  a

Sinon

max  b

Finsi

Écrire ("le maximum de «, a , " et de " , b, " est : " , max)

Fin

Page 11 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

b. L’instruction Selonque : en langage C switch()

L’instruction SELONQUE constitue une structure alternative à la forme en bloc


[Si … Alors …Sinon…] et permet de formuler de manière plus simple le choix du
groupe d’instructions.

Syntaxe :

La structure SELONQUE permet d'effectuer tel ou tel traitement en fonction de


la valeur des conditions 1 ou 2 ou ..n .

Syntaxe :

SELONQUE

<condition 1> : <action 1>

<condition 2> : <action 2>

<condition n> : <action n>

SINON : <action_sinon>

FINSELONQUE

Fonctionnement :

1 : la condition 1 est évaluée :

• Si la condition 1 est vraie, alors on exécute l'action correspondante et on quitte


la structure selon-que

• Si la condition 1 est fausse, on évalue la condition 2...et ainsi de suite.

2. Si aucune n'est vraie on effectue l'action sinon ( au cas où l'action sinon


n'existe pas alors aucune action n'est exécutée !).

Exemple : Soit N un nombre entier donné entre 1 et 7, écrire l’algorithme (en


pseudo code), qui permet d’Ecrire le jour correspondant ( 1 :lundi, 2 mardi….7 :
dimanche).

Donnée d’entrée : N numéro du jour de , 2, ….ou 7 de type entier

Sortie : Chaine de caractère : c’est lundi ou c’est mardi ou ……….c’est


dimanche selon la valeur de N

Page 12 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

Algorithme_jour

Entier N

DEBUT

ECRIRE (Entrez le numéro du jour : ')

Lire (N)

Selonque jour vaut

1 : ECRIRE ("C'est Lundi")

2 : ECRIRE ("C'est Mardi")

3 : ECRIRE ("C'est Mercredi")

4 : ECRIRE ("C'est Jeudi")

5 : ECRIRE ("C'est Vendredi")

6 : ECRIRE ("C'est Samedi")

7 : ECRIRE ("C'est Dimanche")

Sinon

ECRIRE ("Erreur, Tapez un numéro entre 1 et 7")

FinSelon

FIN

11. Instructions à structure répétitive : Les boucles

Écrire un algorithme permettant d’afficher 300 fois le message : ‘‘ bonjour tout le


monde’’. Solution classique écrire l’instruction 300 fois

DEBUT

Écrire ("Bonjour tout le monde ") 1

Écrire ("Bonjour tout le monde ") 2

Écrire ("Bonjour tout le monde ") 300

FIN

Page 13 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

a. Boucle Tant que(condition) Faire en langage C while


(condition)

On utilise cette boucle pour exécuter des actions tant qu’une condition
est réalisée.

Syntaxe :

<initialisation>

Tant que (Condition) Faire

<bloc de traitement>
<bloc de contrôle>

Fin tant que

Le programme arrive sur la ligne du TantQue. Il examine alors la valeur de


(Condition).

Si cette valeur est VRAI, le programme exécute les instructions qui suivent,
jusqu’à ce qu’il rencontre la ligne FinTantQue.

Il retourne ensuite sur la ligne du TantQue, procède au même examen, et ainsi


de suite et ne s’arrête que lorsque la Condition prend la valeur FAUX.

 Avec TANT QUE le test est fait au début.

 Il se peut que l'on ne rentre jamais dans la boucle.

Solution de l’exercice précédent :

Alogo_Tanque

Entier i

DEBUT

i  0 /* Initialisation */

Tant que (i < 300) Faire while(i<300){…}

Écrire (" Bonjour tout le monde ")

i  i+1

Fin tant que

FIN

Page 14 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

b. Boucle 2 : Faire..jusqu’à (condition) en langage C


do.while(condition) ;

On utilise cette boucle pour exécuter des actions jusqu'à ce qu’une condition soit
remplie.

Syntaxe :

<Initialisation>

Faire

<bloc de traitement>
<bloc de progression > Action

Jusqu’à (Condition)

Sémantique :

 Si Condition)= Faux la boucle est à nouveau exécutée.

 Si Condition=Vrai i=301>300, on passe à l'instruction suivante.


On sort de la boucle

Avec Faire jusqu’à le test est fait à POSTERIORI.la fin

• Il y aura un passage dans la boucle. Le bloc d’instructions sera


exécuté au moins une fois.

Algo_Boucle_Faire ..tans que

Entier i

DEBUT

i  0 /* Initialisation */

Faire

Écrire (" Bonjour tout le monde ")

i  i+1

Tant que (i <300) /*while(i<300) ; */

FIN

Instruction suivante /*suite du programme quand i=301*/

Page 15 2020/2021
M. L. HASNAOUI UMI-EST Algorithmique et Base de Programmation

c. Boucle « Pour » en langage C for(initialisation ;


condition ; incrémentation compteur)

La spécification de cette boucle le nombre d’itération est connu à l’avance

Pour i <------ valeaur1 à valeur 2 faire

Instructions

FinPour

Exemple

Ecrire un algorithme qui demande un nombre de départ, et qui calcule la somme


des entiers jusqu’à ce nombre. 1 + 2 + 3 + 4 + ………..N

Données d’entrées : un entier N et un compteur i

Sorties la somme de N nombre entier (1+2+…..N)

Algorithme_Som_1_a_N

Entier N, i, Som
Debut
Ecrire ("Entrez un nombre : ")
Lire (N)
Som ← 0
Pour i ← 1 à N faire /*for(int i=1, i<=N ; i=i+1)*/
Som ← Som + i
finPour
Ecrire ("La somme est : ", Som)
Fin.

Page 16 2020/2021

Vous aimerez peut-être aussi