Académique Documents
Professionnel Documents
Culture Documents
COURS D’ALGORITHME
PROGRAMME D’ALGORITHME
I- Les tableaux
II- Les enregistrements
I- Les fonctions
II- Les procédures
MODULE ALGORITHME
1
CHAPITRE I: LES GENERALITES SUR 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).
_son identificateur : c’est le nom que l’on donne à l’algorithme. Le nom dépend du développeur mais
doit respecter les suivants :
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 :
CONST
Partie déclarative
VAR
Début
Instruction 1
--------------
-------------- Corps
--------------
--------------
Instruction n
Fin
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.
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
Exemple
Variable
MODULE ALGORITHME
3
Moyenne : réel ;
Age : entier ;
Sexe : 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
Exemple :
Const
Ag e= 18 ;
Sexe = ‘‘Masculin’’ ;
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 :
Elle permet d’afficher une information à l’écran pour que l’utilisateur puisse en prendre
connaissance.
Ecrire(nom_variable) ; afficher(nom_Variable) ;
Exercice d’application
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
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
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
Algo parite
var
n entier
debut
lire (n)
finsi
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
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
Lorsque l’on a plusieurs conditions à gérer il est possible d’utiliser plusieurs primitives si alors sinon
mais en les imbriquant.
Application 1
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é.
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
Syntaxe :
Pour compteur allant de la valeur initiale à la valeur finale Pas faire
Début
Instruction1
Instruction 2
Fin
Fin pour.
MODULE ALGORITHME
9
Résolution
Algo compteur
Var
I : entier
Debut
pour i 1 à 100 faire
Afficher (i)
Fin pour
fin
Algo compteur
Var
I : entier
Debut
pour i 2 à 100 2 faire
Afficher (i)
Fin pour
fin
Elle est généralement utilisée lorsque d’itération n’est pas connue ou exact.
Syntaxe :
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
Exo 2
Ecrit un algo permettant de savoir si un nombre saisi par utilisateur est un nombre factoriel.
Exo 3
Exo 4
𝜋
Le développement limité de 4 = + +
Exo5
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.
Son nom
Son type
Sa taille
A- LE TABLEAU A DIMENSION
C’est un tableau qui est composé d’une seule ligne et de K colonne avec K≥1.
Syntaxe :
Nomtype= tableau(taille) de type
Var
Nomtableau : nomtype
Ou :
Var
Nomtableau : tableau(taille) de type
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)
Pour parcourir un tableau à une dimension il faut nécessairement ou obligatoirement une boucle
Algo moyenne
Var
13
I : entier
Debut
Par i←1
Pour trier un tableau à une dimension il faut utiliser deux boucles imbriquées.
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 :
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
(120) (1)
Syntaxe :
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
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.
Type
Nom (de l’enregistrement) = enregistrement
Champ 1 : type
|
|
Champ 1 : type
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
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
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
Partie déclarative
Début
Retourne resultat
Fin
Partie déclarative
Début
Fin
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.
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.
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.
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é.
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.
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.
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.
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 :
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