Vous êtes sur la page 1sur 21

ALGORITHME

COURS D’ALGORITHME
PROGRAMME D’ALGORITHME

CHAPITRE I: LES GENERALITES SUR L’ALGORITHME

I- Présentation et structure de l’algorithme


II- Les objets (variables et constantes)
III- Les types, les opérateurs et les instructions d’entrée/sortie

CHAPITRE II : LES STRUCTURES DE CONTROLE

I- Les structures conditionnelles ou décisionnelles


II- Les structures répétitives ou itératives ou boucles

CHAPITRE III : LES STRUCTURES DE DONNEES COMPLEXES

I- Les tableaux
II- Les enregistrements

CHAPITRE IV : LES SOUS PROGRAMES (FONCTIONS ET PROCEDURES)

I- Les fonctions
II- Les procédures

MODULE ALGORITHME

1
CHAPITRE I: LES GENERALITES SUR L’ALGORITHME

I- PRESENTATION ET STRUCTURE DE L’ALGORITHME

A- Présentation

Un opérateur (homme ou machine) est capable de comprendre et d’interpréter les instructions qu’on
lui donne, lorsqu’une machine est capable d’exécuter directement une action alors on parle d’action
élémentaire (non décomposable). Le problème est que l’homme veut faire fait a la machine des action
complexe alors que celle-ci n’est capable que d’action élémentaire. Pour cela, il faut décomposer cette
action complexe en plusieurs petites actions élémentaires (algorithme) que la machine pourra
comprendre et interpréter lorsque celle-ci seront traduite dans un langage compréhensible par la
machine.

1- Algorithmique

C’est l’ensemble des règles et principes à respecter pour écrire un algorithme. C’est la science qui
permet d’étudier les algorithmes.

2- Algorithme

C’est la description précise et rigoureuse d’une suite d’opération menant à la résolution d’un problème
donnée. L’algorithme est élaboré de façon logique et chronologique, il est fini dans le temps c’est à
dire qu’il a un début et une fin. Un algorithme est indépendant du langage dans lequel il sera exécuté.
Un algorithme est écrit dans un langage naturel sans ambigüité et il est inintelligible a la machine (la
machine ne comprend).

B- Structure d’un algorithme

Un algorithme est composé de 3 parties essentielles

_son identificateur : c’est le nom que l’on donne à l’algorithme. Le nom dépend du développeur mais
doit respecter les suivants :

 Le nom ne doit jamais commencer par un chiffre


 Le nom ne doit jamais comporter de caractères spéciaux.
 Le nom ne doit jamais comporter d’espace
 Le seul caractère spécial autorisé est le caractère de soulignement Under score(_)

La syntaxe est la suivante :

Algorithme nom algo

Exemple :

Algorithme calcul

 Sa partie déclarative : cette partie est facultative car elle dépend de la nature du problème et
des besoins de l’utilisateur. C’est dans cette partie que nous déclarons nos variables, nos
constantes, nos structures de données, nos fonctions et nos procédures

MODULE ALGORITHME

2
 Son corps : c’est la partir la plus obligatoire dans un algorithme car c’est la que seront
effectué tous les traitements. Cette partie est délimitée par les mots clés ‘‘début’’ et ‘‘fin’’.

Exemple :

Algorithme Nom Algo En tête

CONST

Partie déclarative
VAR

Début

Instruction 1
--------------
-------------- Corps
--------------
--------------
Instruction n

Fin

II- Les objets

Un objet est un élément sur lequel l’on porte une action. Il sert à contenir nos données et nos
résultats.

Comme type d’objet nous avons les variables, les constantes et les structures de données.

Un objet est caractérisé par :

 Son identificateur : c’est le nom que l’on donne a l’objet


 Son type : c’est l’intervalle dans lequel l’objet prend sa valeur
 Sa valeur : c’est ce que vaut l’objet a un instant donné

1- Les variables

Une variable est un espace mémoire. C’est un objet dont le contenu est susceptible de changer durant
l’exécution du programme. Pour déclarer une variable, l’on procède de la manière suivante : Variable
ou Var

Nom de la variable : type de variable ;

Exemple

Variable

MODULE ALGORITHME

3
Moyenne : réel ;

Age : entier ;

Sexe : caractere ;

Nom : chaine de caractere ;

2- Les constantes

Une constante est un espace mémoire. C’est un objet dont la valeur ne changera jamais durant
l’exécution du programme. Pour déclarer une constante, l’on procède de la manière suivante :
Constante ou const

Nom de la constante = valeur

Exemple :

Const

Ag e= 18 ;

Sexe = ‘‘Masculin’’ ;

III- Les types, les operateurs, et les instructions d’entrée/sortie


A- Les types élémentaires

 Le type entier : un entier est un nombre qui n’admet pas de virgule. Il est codé sur 2 octets
soit 16 bits. La plage des entiers est D=[-32768 ;32767]
 Le type réel : un réel est nombre qui peut admettre une virgule. Il est codé sur 6 octets soit
48 bits. La plage des réels est D=[-1.4.1014 ; 1.4.1014 ]
 Le type caractère : c’est un chiffre, une lettre, un symbole, un espace. Il est code sur 1 octet
soit 8 bits. Nous avons 28(256) caractères possibles. Le caractère est toujours entre simple
 Le type booléen :un booléen est une variable spéciale qui ne prend seulement que deux
valeurs : vrai ou faux

B- Les operateurs
 Les operateurs arithmétiques : addition(+), soustraction(-), la multiplication(), la
division(/), la partie entière(div),reste de la division(mod)
 Les operateurs de comparaison : supérieur(>), inferieur(<), egal(=),
 supérieur égal(>=),inferieur égal(<=), différent(<>)
 Les operateurs logiques : ce sont les conjonctions de coordination en informatique. Ils
permettent de regrouper plusieurs conditions pour en faire une seule. Ce sont :
ET,OU,NON
 L’operateur d’affection(←) : il permet d’attribuer une valeur a une variable
précédemment déclarée. La valeur attribuée peut être le contenu d’une autre variable, le
résultat d’une opération ou une valeur fixe.

MODULE ALGORITHME

4
C- Les instructions entrées/sorties

1- Lecture de données(entrée)

Elle permet de récupérer une information saisie par l’operateur et la stocker dans une variable . la
syntaxe est la suivante :

Lire(nom variable) ; saisir(nom variable) ;

Lire Plusieurs variables

lire(variable 1, variable 2,…, variable n) ;

2- Ecriture de données (sortie)

Elle permet d’afficher une information à l’écran pour que l’utilisateur puisse en prendre
connaissance.

La syntaxe est la suivante :

 Afficher un simple message

Ecrire(‘‘Information’’) ; afficher (‘‘Information’’) ;

 Afficher une variable

Ecrire(nom_variable) ; afficher(nom_Variable) ;

Exercice d’application

Ecrire un algorithme permettant de faire la somme et le produit de deux nombres.

Algorithme calcul

Var
a,b:reel
som, prod: reel
Debut
Ecrire (“Veuillez saisir le premier nombre”)
Lire(a)
Ecrire (“Veuillez saisir le deuxieme nombre”)
Lire(b)
som←a+b
prod←a*b
Ecrire(“la somme est :”,som)
Ecrire(“le produit est :”,prod)
Fin

MODULE ALGORITHME

5
EXERCICE DE MAISON

1) Ecrire un algorithme permettant de convertir un temps en heure, minute et seconde. Le


temps à convertir est en seconde
2) Un démarcheur a domicile est rémunéré avec un salaire fixe de 60000F. Il perçoit une
commission de 10% sur le montant des ventes réalisées. Le salaire ainsi obtenu est augmente
de 3% pour prendre en compte ses frais de déplacement. Etant donne la quantité et le prix
unitaire de l’article vendu, écrire un algorithme permettant de déterminer le salaire net du
démarcheur

Correction

Algorithme conversion
VAR
T,h,r,m,s : entier
Debut
Afficher (“Veuillez entrer le temps en seconde”)
Saisir (t)
h←t div 3600
r←t mod 3600
m←r div 60
2) s←r mod 60
afficher (t, “s=’’,h,“H’’,m,“min’’,S, “s’’)
Fin
Algorithme calcul salaire
VAR
Com,pu,sn,fd,mv,q: reel
Const
Sf=60000
Debut
Ecrire (“Veuillez entrer la quantité d’article vendu”)
Lire(q)
Ecrire (“Veuillez entrer le prix unitaire”)
Lire(Pu)
mv←q*Pu
com←0,1*mv
fd←0,03*(Sf+com)
sn←sf+com+fd
Ecrire (“Le salaire net du démarcheur est :”,Sn)
Fin

MODULE ALGORITHME

6
CHAPITRE II : les structures de contrôle

I. Les structures conditionnelles ou décisionnelles


1) La structure conditionnelle pure (SI… alors)

Cette structure permet d’exécuter une instruction ou un bloc d’instruction lorsqu’une condition est
vérifiée, elle n’offre pas d’alternative.

Syntaxe :

Si (condition) alors

Début

Instruction 1

Instruction n

Fin

Finsi

Application

Ecrire un algorithme permettant de déterminer la parité d’un nombre en utilisant la structure


conditionnelle pure.

Algo parite

var

n entier

debut

écrire (‘‘entrez le nombre’’)

lire (n)

Si((n mod2) =0) alors

écrire (‘‘ le nombre est paire’’)

finsi

Si ((n mod2) < >0) alors

Écrire (‘‘ le nombre est impair’’)

fsi

fin

MODULE ALGORITHME

7
2) La structure conditionnelle alternative ou complexe (si…alors…sinon)

Elle permet d’exécuter deux blocs d’instruction selon la validité ou non d’une ou plusieurs conditions.

Lorsque la condition est vérifié le premier bloc est exécuté dans le cas contraire ‘est le deuxième bloc
qui est exécuté

Syntaxe :
Si (condition) alors
Début
Instruction 1
|
Instruction n
Fin
Sinon
Début
Instruction 1
|
Instruction n
Fin
Finsi

Application (répète mais avec la structure conditionnelle complexe)

Algo parite
var
n entier
debut
écrire (‘‘entrez le nombre’’)
lire (n)
Si((n mod2) =0) alors
écrire (‘‘ le nombre est paire’’)

Sinon
Écrire (‘‘ le nombre est impair’’)
fsi
fin

3) Imbrication de si … alors et de/ si … alors… sinon

Lorsque l’on a plusieurs conditions à gérer il est possible d’utiliser plusieurs primitives si alors sinon
mais en les imbriquant.

Application 1

Ecrire un algo permettant de déterminer le signe de la somme de deux nombres.

MODULE ALGORITHME

8
Application 2

Ecris un algo permettant de calculer le prix a payé pour un certain nombre d’article affiché si le
montant des achats est supérieur a 20 000 alors réduction 5%.

Pour un montant de 10 000 réduction 2% dans le cas contraire pas de tva appliqué.

Taux de tva =18%

Ecrit une algo permettant de résoudre une équation de second degré dans R .

4) La structure de choix

Lorsque l’on a N conditions agrée il également possible d’utiliser la structure SELON (CHOIX)… FAIRE

Syntaxe :
Selon (choix) faire
Etiquette 1 : bloc
Etiquette 2 : bloc
|
Etiquette n : bloc n
Default : sinon : bloc défaut
Finselon

NB : l’étiquette peut-être un entier, un caractère, une chaine de caractère, un intervalle d’élément de


même type, une liste d’élément de même type. L’étiquette ne doit jamais être un réel.

II. LA STRUCTURE REPETITIVE OU ITERATIVE


1) La boucle pour … faire

Elle est généralement utilisée lorsque le nombre d’itération est connu.

Syntaxe :
Pour compteur allant de la valeur initiale à la valeur finale Pas faire
Début
Instruction1
Instruction 2
Fin
Fin pour.

Exemple : écrit un algorithme permettant de compter de un a cent.

MODULE ALGORITHME

9
Résolution

Algo compteur
Var
I : entier
Debut
pour i 1 à 100 faire
Afficher (i)
Fin pour
fin

si nous voulons les nombres impairs

Algo compteur
Var
I : entier
Debut
pour i 2 à 100 2 faire
Afficher (i)
Fin pour
fin

2) La boucle TANT QUE…FAIRE

Elle est généralement utilisée lorsque d’itération n’est pas connue ou exact.

Syntaxe :

Compteur – valeur initial

Tant que ( condition) faire


Debut
Instruction1
|
Instruction n
Fin
Fin.
Exemple : écrit un algo permettant de compter jusqu’à cent.

Tant que ( i˂=100) faire


Debut
ECRIRE (i)
i˂--i+1
Fin
Fin.

MODULE ALGORITHME

10
3) La structure répété jusqu’a

Elle est généralement utilisée lorsque le nombre d’itération n’est pas connu ou exact.

Syntaxe :
Compteur – valeur initial
Répéter
Début
Instruction1
|
Instruction n
Fin
Jusqu’à (condition)

Exo 1

Ecrit un algorithme permettant de déterminer la factorielle d’un nombre.

Exo 2

Ecrit un algo permettant de savoir si un nombre saisi par utilisateur est un nombre factoriel.

Exo 3

Ecrit un algorithme permettant de déterminer le PPCM deux nombres.

Exo 4
𝜋
Le développement limité de 4 = + +

Ecrit un algorithme permettant de déterminer la valeur de 𝜋

Exo5

Ecrit un algorithme permettant de convertir un nombre de la base 10 vers la base 2

Resolution

MODULE ALGORITHME

11
EXO 2
Var : i,n,fact : entier ;
Debut:
Ecrire (“Veuillez entrer le nombre”)
Lire(n)
Trouver ← faux
i←1 fact←1
tant que ( (trouve=faux) et (i ≤ n) ) faire
debut
fact ←fact*1
i←i+1
si ( fact=n) alors
touvé←vrai
i←i-1
fin
Fintantque
Si (trouvé = vrai) alors
Ecrire (n, ‘‘est nombre factoriel et il est le factoriel de :’’)
Sinon
Ecrire (n, n’est pas un nombre factoriel)
Fin
fin
Fin.

MODULE ALGORITHME

12
CHAPITRE III : les structures de données complexes

I- Définition

Un tableau est une structure de données pouvant contenir des éléments de même type. Sa taille est
connue à sa création et les éléments sont rangés de façon contiguë (les uns à la suite des autres)
dans …

Un tableau peut contenir les types suivant : entier, réel, caractère, booléen, chaine de caractère,
enregistrement, tableau.

Un tableau est caractérisé par :

 Son nom
 Son type
 Sa taille

Il existe des tableaux à une, 2, 3, n dimension

A- LE TABLEAU A DIMENSION

C’est un tableau qui est composé d’une seule ligne et de K colonne avec K≥1.

1) Déclaration d’un tableau a une dimension.

Syntaxe :
Nomtype= tableau(taille) de type
Var
Nomtableau : nomtype
Ou :
Var
Nomtableau : tableau(taille) de type

2) Indexation d’un tableau a une dimension

C’est accéder à une cellule quelconque du tableau. Cela est réalisé à l’aide d’une valeur de type
entier appelé indice du tableau.

Syntaxe :

Nomtableau (indice)

3) Parcourt d’un tableau à une dimension

Pour parcourir un tableau à une dimension il faut nécessairement ou obligatoirement une boucle

Exo : écrire un algo permettant de saisir la moyenne de 60 étudiants

Algo moyenne

Var

Tab : tableau (62) de réel


MODULE ALGORITHME

13
I : entier

Debut

Par i←1

4) Tri d’un tableau a une dimension

Pour trier un tableau à une dimension il faut utiliser deux boucles imbriquées.

Le compteur de la première boucle va de la première colonne jusqu’à l’avant dernière


colonne.

Le compteur de la 2eme boucle va de la position du compteur de la première boucle plus 1.

NB : la 2eme boucle est impliqué sur la première.

Exemple : soit Tab de 120 valeurs. Ecrire u algo permettant de trier ce tableau de la plus
petite valeur a la plus grande valeur

Algo tri
Var
Tab : tableaux (120) de réel
I,j : entier
Tmp :réel
Debut
Pour i ←1 à 119 faire
Pour j←(i+1) à 120 faire
Si (tab (i)˃ tab(j) alors
tmp←tab(i)
tab(i)←tab(j)
tab(j)←tab(tmp)
fsi
fpour
finpour
fin

EXERCICE :

Pour des raisons de statistique il est demandé d’élaborer un algo permettant des calculer la moyenne
de 75 étudiants d’une classe. Chaque étudiant a 3 notes. La direction des statistiques voudrait savoir :

- Le nombre d’étudiant ayant une moyenne supérieure a la moyenne de la classe.


- Le nombre d’étudiant ayant une moyenne comprise entre 12 et 15,5.
- Le nombre d’étudiant ayant une moyenne égale a 16
- La moyenne la plus élevée.
- Les notes de l’étudiant ayant la moyenne la plus basse.
- Le nombre d’admis
- Le taux d’échec
- L’algo doit pouvoir faire le classement de la classe.

MODULE ALGORITHME

14
Nb : moyenne d’admission à saisir et doit être comprit entre 10 et 15

B- Tableau a 2 dimensions
1- Déclaration d’un tableau a 2 dimensions

Var

Tab : tableau () () de réel

(120) (1)

2- Indexation d’un tableau à 2 Dimension

Syntaxe :

nom tableau(l ) (c ) exemple : t( 2) (3 )

3- Parcourt d’un tableau à deux dimensions

Pour parcourir un tableau deux dimensions il faut utiliser deux boucle :

La première boucle parcourt les lignes et la deuxième parcourt les colonnes ou la première parcourt
les colonnes et la deuxième les lignes.

Exemple

Ecrire un algorithme permettant de saisie la moyenne de 120 étudiants en utilisant le tableau à 2


dimensions.

II-

MODULE ALGORITHME

15
II- Enregistrement

Un enregistrement est une structure de donne pouvant contenir éléments de type diffèrent. Ces
éléments peuvent être des entiers, des réels, des caractères, des chaines de caractères, des
booléens, des tableaux, et même des enregistrements.

1- Création d’un enregistrement

Type
Nom (de l’enregistrement) = enregistrement
Champ 1 : type
|
|
Champ 1 : type

2- Déclaration d’une variable de type enregistrement


Syntaxe :
3- Accès aux champs d’enregistrement
Pour accéder aux d’un enregistrement on utilise la notation pointée
Syntaxe :
Nomvariable=nomchamps

Exemple
Lire(et.nom)
matricule←et.mat
âge←40_et.age
et.classe←’’licence3SI’’
écrire (et.nom)

Exo de maison
On désir gérer une de 70 articles. Chaque article est caractérisé par son code, sa désignation, son prix
unitaire et sa quantité stock. Les actions à réaliser sur la liste sont les suivantes :
- Ajouter un article à la liste
- Rechercher un article par rapport à son code afin de modifier sa quantité et son prix unitaire
ou le supprimer de la liste.
- Déterminer l’article le plus cher
- Déterminé l’article le moins cher
- Déterminer la valeur globale du stock

MODULE ALGORITHME

16
CHAPITRE IV : les sous-programmes

I- Définitions

 Un sous-programme est une fonction ou procédure qui sera utilisé par un programme
appelant.
 Une fonction est un ensemble d’instructions retournant un résultat.
 Une procédure est une fonction qui ne retourne pas de résultat.

II- Intérêt
Les sous-programmes sont très utiles lorsqu’un problème dans sa résolution est volumineux et
nécessite plusieurs taches. Chaque tache correspondra soit à une fonction soit à une procédure.
III- la démarche de l’approche sous-programme ou procédurale

Etape 1 : définition des étapes


Il s’agit de définir les différentes tâches à réaliser dans notre programme
Tâche : Description de la tâche
Fonction nomfonction (……) : type

Tâche n : Description
Procédure nomprocédure
Etape 2 : définition des données
 Données en entrée ou antécédent
 Données en sortie ou conséquent

Etape 3 : ordonnancement
Il s’agit de définir l’ordre des différentes tâches
Etape 4 : recette ou algorithme des tâches
Etape 5 : synthèse

IV- Structure d’un sous-programme

Un sous-programme est caractérisé par les aspects suivants :

 Son nom
 Ses arguments, le type de ses arguments et leur mode de transmission
 Sa partie déclarative
 Son corps (mot clé : début et fin)
MODULE ALGORITHME

17
V- Différence entre fonction et procédure

Une fonction : est un sous-programme permettant d’effectuer ou d’exécuter un ensemble


d’instructions bien spécifiques mais ramenant résultat unique contrairement à la Procédure qui ne
ramène pas de résultat. En effet lorsqu’un sous-programme doit ramener un résultat et que ce résultat
doit être utilisé directement à la suite par le programme, ce sous-programme doit être nécessairement
une fonction dans le cas contraire c’est forcément ne procédure.

 Syntaxe d’une fonction

Fonction nom fonction (argument1 : type, argumentn : type) : type retourné

Partie déclarative

Début

Retourne resultat

Fin

 Syntaxe d’une procédure

Procédure nom procédure (argument1 : type, argumentn : type)

Partie déclarative

Début

Fin

VI- Argument ou paramètre d’un sous-programme

Les arguments sont les variables externes des sous-programmes et sur lesquels il va agir afin d’avoir
un résultat escompté. Les arguments sont placés juste après le nom du sous-programme.

Il existe 2 types de paramètre ou argument

 Les paramètres formels

Ce sont des paramètres qui figurent dans le sous-programme au moment de sa définition. Ils sont fictifs
donc pas besoin de les déclarer dans une quelconque partie déclarative.

 Les paramètres effectifs

Ce sont des paramètres qui figurent dans le sous-programme au moment de son appel. Ce sont
généralement les variables déclarées dans la partie déclarative du programme ou le résultat retourne
pas une fonction.

 Passage de paramètre

C’est la façon avec laquelle le programme principal échange des données avec les sous-programmes.

Il existe 2 types de passages de paramètre :


MODULE ALGORITHME

18
 Passage de paramètre pas valeur

Lorsqu’un paramètre est passé par valeur il peut être modifié dans le sous-programme. Mais lorsque
l’on revient au programme appelant il retrouve sa valeur initiale comme si rien ne s’était passé.

Question : comment passer un paramètre par valeur ?

Réponse : En ne précèdent de rien le nom de variable

 Passage de paramètre pas adresse

Lorsqu’un paramètre est passé par adresse, lorsqu’il est modifié dans le sous-programme il est
également même lorsque l’on retourne au programme appelant.

Question : comment passer un paramètre par adresse

Réponse : En précèdent le nom de Var

VII- Variable globale et variable locale

Variable locale : ce sont des variables qui sont déclarées dans la partie déclarative du programme
principal.

Variable locale : ce sont des variables qui sont déclarées dans la partie déclarative des sous-
programmes.

 Porté des variables locales et des variables globales

Les variables globales sont utilisables : Partout, dans le programme principal y compris à l’intérieur
des sous-programmes. On dit que leur portée s’étant à tout le programme entier.

Les variables locales sont utilisables : Uniquement dans les sous-programmes ou elles ont été
déclarées, on dit que leur portée se limite au sous-programme.

VIII- Appel d’un sous-programme

Appeler un sous-programme c’est matérialiser l’intention d’exécuter le code qu’il renferme. L’appel
d’une fonction se fait par :

Syntaxe :

Nom variable <--------- nom fonction (arguments s’il existe)

IX- La récursivité d’un sous-programme

Un sous-programme est récursif lorsqu’il peut s’appeler soit même c’est-à-dire qu’il apparait dans sa
propre définition.

Dans un programme récursif il faut toujours préciser la condition d’arrêt sinon le programme ne
s’arrêtera jamais.

NB : c’est dans la partie déclarative du programme principal qu’on déclare les sous-programmes. Le
nombre de sous-programme dans un programme dépend du développeur. Egalement la nature des
MODULE ALGORITHME

19
sous-programmes (fonction et procédure) dépend du développeur même si parfois l’état logique du
programme vous l’impose.

MODULE ALGORITHME

20

Vous aimerez peut-être aussi