Académique Documents
Professionnel Documents
Culture Documents
Cours d’Algorithmique
Session: 2016-2017
1
I. Introduction à la programmation
2
I. Introduction à la programmation
3
I. Introduction à la programmation
C’est quoi un langage de programmation?
Un langage de programmation est un
ensemble d'instructions et de règles syntaxiques
compréhensible par l'ordinateur.
4
I. Introduction à la programmation
Démarche à suivre pour la résolution en
informatique est donc:
Analyse du
Traduction
problème
6
I. Introduction à la programmation
Objectifs de l’algorithmique
7
I. Introduction à la programmation
Environnement d’un algorithme
L’environnement d’un algorithme est constitué
de:
8
I. Introduction à la programmation
Environnement d’un algorithme
Objets Constants
(OC)
Objets Objets de
d’Entrée ALGORITHME Sortie
(OE) (OS)
Objets Intermédiaires
(OI)
9
I. Introduction à la programmation
a-b
Q=
2.c+b
10
I. Introduction à la programmation
Qu’est ce qu’un bon algorithme ?
Un bon algorithme est un schéma de résolution
possédant les caractéristiques suivantes:
Correct
Précis
Rapide
Efficace
Clair et lisible
Résistant
11
I. Introduction à la programmation
Conclusion:
Un algorithme est constitué:
Ordinateur ?
13
II. Outils de base de l’algorithmique
Schéma simplifié d’un PC
14
II. Outils de base de l’algorithmique
Notion d’objets
On a vu qu’un algo est constitué d’un ensemble fini
d’objets appelé environnement, d’un ensemble d’actions
permettant de traiter ces objets.
Différentes formes d’un objet:
Objet constant
Objet variable
Caractéristiques d’un objet:
Son identificateur
Sa valeur
Son type
15
II. Outils de base de l’algorithmique
Identificateur d’un objet
Un identificateur est un nom symbolique que
attribuons à l’objet. Il est représenté par une suite
quelconque de caractères et doit obéir aux exigences
suivantes:
Il doit commencer obligatoirement par une lettre
La suite des caractères peut être composée soit de
lettres non accentuées(a…z, A…Z), soit de chiffres(0…9),
soit du caractère de soulignement (_).
Il ne doit contenir ni espace ni caractères spéciaux
16
II. Outils de base de l’algorithmique
Exemples d’identificateur
Identificateurs corrects:
• Temps, calcul_vectoriel, mois1, a23a2
Identificateurs incorrects:
• 1temps, calcul vectoriel, a23/a2
17
II. Outils de base de l’algorithmique
Valeur d’un objet
C’est le contenu courant d’un objet. Ce contenu peut
être:
Constant: s’il ne peut être modifier par les
instructions de l’algorithme tout au long de son
exécution.
18
II. Outils de base de l’algorithmique
Type d’un objet
Le type d’un objet constitue la nature de l’objet. C’est
l’ensemble des valeurs qui peuvent être prises par cet
objet.
Types de données en programmation
En programmation, on peut classer les types de
données en trois grandes familles:
Les booléens
Les numériques
Les textes
19
II. Outils de base de l’algorithmique
Type booléen
Le type booléen correspond à un ensemble de deux
états logiques(vrai, faux).
Operateurs applicables au type booléen
L’ensemble des operateurs qu’on peut appliquer à ces
valeurs logiques est:
ET
OU
NON
Pour simplifier la représentation, on assimile à vrai la
valeur (1) et faux la valeur(0).
20
II. Outils de base de l’algorithmique
Type Numérique
Le type numérique correspond à des intervalles de
l’ensemble des entiers relatifs(Z) et l’ensembles des
nombres réels( R).
Operateurs applicables au type numérique
Operateurs Signification Exemple
+ Addition R=a+b
- Soustraction R=a-b
* Multiplication R=a*b
/ Division R=a/b si b!=0
^ Evaluation en puissance Y=a^n
DIV Division entière 7 DIV2 = 3
MOD Reste d’une division 13 MOD 5 = 3
ENT Partie entière d’un réel ENT(15,36) = 15 21
II. Outils de base de l’algorithmique
Type Texte
Le type texte correspond à l’ensemble des chaines de
caractères.
Une chaines de caractère est constituée de caractères
de différents types qui peuvent être:
24
II. Outils de base de l’algorithmique
Operations de relation entre les objets
On peut appliquer entre deux objets de même type
une opération de relation dont le résultat est une valeur
booléenne: vrai ou faux.
Operations Symbole
Strictement inferieur à <
Strictement supérieur à >
Inferieur ou égal à <=
Supérieur ou égal à >=
Egal à =
Différent de <>
25
II. Outils de base de l’algorithmique
Exemple
X, Y : deux valeurs entières.
La valeur de X est 32, celle de Y est 25
•Les expressions suivantes donnent un résultat vrai:
(Y<X), (X>=Y), (X<>Y)
•Les expressions suivantes donnent un résultat faux:
(Y=X), (X<Y)
26
II. Outils de base de l’algorithmique
Structure d’un algorithme
Un algorithme comprend 2 parties:
• Une partie déclaration de tous objets utilisés par
l’algorithme,
• Une partie exécutable contenant toutes les
instructions permettant d’agir sur ces objets.
Tous les objets constants sont décrits par leurs noms et
leurs valeurs et précédés d’un mot réservé ‘’CONST’’
Tous les objets variables sont décrits ensuite par leurs
noms et types et précédés d’un mot réservé ‘’VAR’’
27
II. Outils de base de l’algorithmique
Exemple
CONST
Annee_cours=2015;
Taille_min=1.65;
Reponse=‘’oui’’;
VAR
Nom, prenom : chaînes de caractères;
Age : entier
Etat_civil : booléen
28
II. Outils de base de l’algorithmique
Présentation d’un algorithme
Algorithme nom_algorithme;
(*Declaration*)
Const
nom_de_const=valeur_de_const;
Var
Nom_var : nom_type_var;
Début
(*Corps de l’algorithme*)
(*Actions*)
Fin
29
II. Outils de base de l’algorithmique
Remarques
Mots réservés: les algorithmes utilisent un certain nombre de
mots réservés. Le programmeur ne peut pas les utiliser comme
identificateurs.
Exemple: algorithme, const, var, début, fin, lire, ecrire, si, alors,
sinon, cas, tantque, faire, répéter, jusqu’à, pour, procédure, fonction,
tableau…
30
II. Outils de base de l’algorithmique
Remarques
Séquentialité: Dans un algo, les instructions sont exécutées
séquentiellement dans l’ordre de leurs saisies. Cette ‘’séquentialité’’
est assurée par le point virgule qui doit se placer à la fin de chaque
instruction.
31
II. Outils de base de l’algorithmique
Organigramme
Un organigramme est une représentation schématique d’un
algorithme mettant en valeur sa structure. Il permet de mieux
présenter les différents modules de traitement et d’expliquer la
succession des opérations d’un travail.
32
II. Outils de base de l’algorithmique
Symbole Signification
Séquence:
Marque le passage d’une action à une
autre.
Test et décision:
Marque un choix conditionnel d’une
action à exécuter suivant que la
condition CND est vérifiée ou non
Oui Non
CND
Variante de l’alternative:
Selon la valeur de la variable sélecteur,
Sélecteur on va se brancher vers l’exécution de
l’instruction correspondante.
33
II. Outils de base de l’algorithmique
Symbole Signification
Opération calcul:
Modifie une variable par l’affectation d’une
X=… nouvelle valeur.
34
II. Outils de base de l’algorithmique
Symbole Signification
Sortie Listing:
sortie de donnée non standard : document
sur listing en utilisant une imprimante.
Début
Fin
35
II. Outils de base de l’algorithmique
Exemple: traduction schématique de l’algorithme de
Calcul du périmètre d’un cercle.
Début
Lire(R)
P=2*3.14*R
Ecrire(P)
Fin
36
2
III. Les Instructions de base en Algorithmique
l’affectation
38
III. Les Instructions de base en Algorithmique
l’affectation
L’opération affectation permet d’assigner une valeur à
un objet.
Elle est représentée en algorithmique par une flèche
orientée de droite vers le gauche.
Syntaxe
identificateur_objet valeur
39
III. Les Instructions de base en Algorithmique
Possibilités:
Le membre droit d’une affectation(valeur) peut être soit:
Var
A: entier;
C: caractère;
Début
A 6;
…
C A;
fin
42
III. Les Instructions de base en Algorithmique
Remarques:
43
III. Les Instructions de base en Algorithmique
44
III. Les Instructions de base en Algorithmique
Remarques:
L’identificateur(V) doit être une variable déclarée.
Par conséquent les écritures suivantes n’ont pas de sens:
lire(6);
lire(A+B);
Exemple:
Ecrire(‘la somme des deux nombres’, a, ‘et’ ,b, ‘est:’, S);
46
IV. Instructions conditionnelles et alternatives
Introduction
Tous les algo que l’on a vu jusqu’à présent, ont
un enchainement d’exécution des instructions
séquentiel et linéaire du début à la fin.
47
IV. Instructions conditionnelles et alternatives
49
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
1. L’instruction Si…Alors…Finsi
Syntaxe:
Si condition Alors
instruction(ou suite d’instructions);
Finsi
Organigramme:
L’instruction sera exécutée si et
oui seulement si la condition est
Condition
vérifiées.
non
Instruction
50
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
Exemple 1:
Exemple 2:
Valeur absolue d’un nombre réel: X
Algo + Organigramme
51
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
2. L’instruction Si…Alors…Sinon…Finsi.
Syntaxe:
Si condition Alors
instruction1;
Sinon
instruction2;
Finsi
Organigramme:
oui non
Condition
Instruction1 Instruction2
L’instruction1 est exécutée si la condition est vérifiée si non c’est l’instruction2 qui
52
sera exécutée.
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
Exemple 3:
Si ‘’il fait beau’’ Alors
‘’vous pouvez sortir en pique-nique’’;
Sinon
‘’Vous restez chez vous’’;
Finsi
Exemple 4:
53
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
3. Imbrication de Si
Dans de nombreuses applications, on peut avoir
plusieurs cas d’exécution selon différentes conditions.
54
IV. Instructions conditionnelles et alternatives
Exemple 5:
Syntaxe:
Cas variable
valeur_1: instruction_1;
valeur_2: instruction_2;
………. : ……………….;
valeur_N: instruction_N;
Sinon
Instruction_par_defaut; 56
Fincas
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
4. La primitive ‘’ Cas’’
Organigramme:
Variable
58
IV. Instructions conditionnelles et alternatives
Exemple:
Algorithme salut;
Var
heure : entier;
Début
lire(heure);
cas heure
6, 7, 8, 9, 10, 11,12 : Ecrire(‘Bonjour’);
13…18 : Ecrire(‘Bon après-midi’);
sinon
Ecrire(‘Bonsoir’);
Fincas
Fin
59
IV. Instructions conditionnelles et alternatives
Exemple:
60
V. Instructions répétitives( les boucles)
61
V. Instructions répétitives( les boucles)
62
V. Instructions répétitives( les boucles)
Instructions répétitives
En programmation, on distingue deux grands types de
boucles:
63
V. Instructions répétitives( les boucles)
64
V. Instructions répétitives( les boucles)
L’instruction Tantque…faire…FinTantque
Syntaxe:
Tantque condition de continuation Faire
Actions(Instructions)
FinTantque
65
V. Instructions répétitives( les boucles)
Organigramme:
Non
CND
Oui
Instructions
Sortie de la boucle
Remarque
Dans le corps de la boucle(instructions), au moins une
instruction doit obligatoirement faire évoluer les valeurs
des variables testées dans la condition.
Sinon la boucle sera infinie(C-à-d qu’elle ne s’arrête
jamais).
Exemple 1: Algorithme Boucle_infinie;
Var
A:réel;
Début
A 6;
Tantque A< 10 Faire
Ecrire(A);
FinTanque
Fin 67
V. Instructions répétitives( les boucles)
Exemple 2:
Ecrire un algorithme permettant de lire une suite de
nombres réels sur le clavier. Le dernier élément à lire est
Zéro.
L’algorithme doit afficher le plus petit élément de la
suite ainsi que la somme des éléments.
Algo + Organigramme
68
V. Instructions répétitives( les boucles)
L’instruction Répéter…jusqu’à
Syntaxe:
Répéter
Actions(Instructions);
Jusqu’à condition
69
V. Instructions répétitives( les boucles)
Organigramme:
Sortie de la boucle
70
V. Instructions répétitives( les boucles)
Exemple 2:
Ecrire un algorithme permettant de calculer la somme et
la moyenne des N premiers nombres entiers.
S = 1+2+3+4+…+N
71
V. Instructions répétitives( les boucles)
72
V. Instructions répétitives( les boucles)
Organigramme:
I B1 à B2
Les instructions seront
répétées un nombre connu
de fois .
Instructions
Sortie de la boucle
73
V. Instructions répétitives( les boucles)
Remarques
1. La variable de contrôle doit être déclarée,
74
V. Instructions répétitives( les boucles)
Etapes d’exécution de la boucle Pour
1. Affectation de borne1 à la variable de contrôle,
5. Aller à l’étape 2.
75
V. Instructions répétitives( les boucles)
Organigramme Début
des étapes:
I=B1
Oui
I>B2
Non
Instructions
I=I+1
Fin 76
V. Instructions répétitives( les boucles)
Exemple
Ecrire un algorithme permettant de calculer le factoriel
d’un nombre entier positif N.
N!=1*2*3*…*N
Algo + Organigramme
77
V. Instructions répétitives( les boucles)
Exercices d’application:
78
VI. Les Variables Dimensionnées( Les tableaux)
Introduction et problématique
On a utilisé, jusqu’à présent, dans les chapitres
précédents que les variables qui prennent un
emplacement unique dans la mémoire de types
standards.
79
VI. Les Variables Dimensionnées( Les tableaux)
80
VI. Les Variables Dimensionnées( Les tableaux)
Solution
On a la possibilité de réunir toutes ces valeurs dans une
seule variable dite structurée et composée de 50 cases
juxtaposées et de même ‘’dimension’’ car elles vont
recevoir des données de même type. Cette variable
s’appelle: un tableau qu’on peut représenter par le
schéma le suivant.
50 82
VI. Les Variables Dimensionnées( Les tableaux)
83
VI. Les Variables Dimensionnées( Les tableaux)
84
VI. Les Variables Dimensionnées( Les tableaux)
Syntaxe:
Var
T:tableau[T1] de T2
85
VI. Les Variables Dimensionnées( Les tableaux)
Exemple2:
Var
A:tableau[1…20] de réels;
Dans cet exemple:
la taille est un intervalle d’entiers allant de 1 à 20.
Le type représente les réels.
86
VI. Les Variables Dimensionnées( Les tableaux)
On accède à un élément via son indice.
Exemple3:
A[3]23.50;
Afficher(A[6]);
Ecrire(A[8]);
Y3*A[i]+1;
Cas général:
Var
T:tableau[borne_Inf..borne_sup] de réels;
87
VI. Les Variables Dimensionnées( Les tableaux)
Exemple 4:
Ecrire un algorithme permettant d’entrer cinq valeurs
réelles au clavier, les stocker dans un tableau, calculer
leur somme et les afficher avec leur somme à l’écran.
Algorithme tableau_somme;
Var
V: tableau[1…5] de réels;
S : réel;
i: entier;
Début
(*Lecture des elements du tableau*)
Pour i 1 à 5 Faire
Afficher(‘Entrer élément N°’, i);
Ecrire(V[i]);
Finpour i 88
VI. Les Variables Dimensionnées( Les tableaux)
(* Calcul de la somme des éléments du tableau*)
S 0;
Pour i 1 à 5 Faire
S S + V[i] ;
FinPour
Fin
89
VI. Les Variables Dimensionnées( Les tableaux)
Quelques Algorithmes de traitement de Tableau
à une dimension
1. Ecrire un algorithme permettant de saisir et d’afficher
les N éléments d’un tableau.
2. Ecrire un algorithme permettant de faire la somme, le
produit et la moyenne des éléments d’un tableau.
3. Ecrire un algorithme permettant de trouver le
minimum des éléments d’un tableau.
4. …
90
VI. Les Variables Dimensionnées( Les tableaux)
Tableaux à deux dimensions
Un tableau à deux dimension peut être représenter
comme une grille ayant un certain nombre de lignes
(première dimension) et un certain nombre de colonnes
(seconde dimension).
Syntaxe:
T: tableau[T1, T3] de T2
Exemple:
Var
T: tableau[1..3, 1…4] d’entiers;
i/j 1 2 3 4
1 3 2 5 2
2 1 7 4 8
4 6 5 3 2
93
VI. Les Variables Dimensionnées( Les tableaux)
Exemple d’application
Ecrire un algorithme permettant de saisir les données
d’un tableau à deux dimensions(10, 4) de faire leur
somme, produit et moyenne et de leur afficher avec les
résultats de calcul à l’écran.
Algorithme Tableau_deux_Dim
Var
T: tableau [1..10, 1..4] de réels;
i, j : entiers;
S,P,M : réels;
Début
(*Saisie des éléments du tableau*)
Pour i 1 à 10 Faire
Pour j 1 à 4 Faire
Afficher(‘Entrer l élément T[ ‘ ,i’, ‘j,’]=‘);
Ecrire(T[i,j]);
FinPour j 94
FinPour i
VI. Les Variables Dimensionnées( Les tableaux)
(*Calcul de la somme, produit, et moyenne*)
S 0;
P 1;
Pour i 1 à 10 Faire
Pour j 1 à 4 Faire
S S+T[i, j];
P P*T[i,j];
FinPour j
FinPour i
M S/40;
(*Affichage des éléments du tableau et des résultats*)
Pour i 1 à 10 Faire
Pour j 1 à 4 Faire
Ecrire(‘ L élément T[ ‘ ,i’, ‘j,’]=‘ T[i, j]);
FinPour j
FinPour i
Ecrire(‘la somme des éléments du tableau est:’, S);
Ecrire(‘Le produit des éléments du tableau est:’, P);
Ecrire(‘la moyenne des éléments du tableau est:’, M);
FIN
95
Procédures et Les Fonctions
96
VII. Les Structures
1-Definition
Contrairement au tableau une structure est un regroupement logique de plusieurs
emplacements mémoire de même type ou de type différents subissant les mêmes
traitements
2-Declaration
Une structure étant un nouveau type Exemple
crée par l’utilisateur elle est construite Type Rectangle=structure
via le mot clé type, la syntaxe est la Long:entier;
suivante Larg:entier;
Type nom_Structure=structure Fin_Rectangle;
Champ1:type1;
Champ2:type2;
Champ3:type3;
Champn:typen;
Fin_Structure;
97
3-Accès aux champs d’une structure
Pour accéder au champ d’une structure il faut au
préalable déclarer une variable structurée et utiliser
la notation pointée pour accéder aux champs en se
servant de la syntaxe suivante.
Variable structurée.Nomchamp;
Exemple :
Var R:Rectangle;
R.Long ,R.Larg pour la lecture, l’affichage et les
calcul. Début
Exercice d’application Affiche(‘’Donner la longueur et la largeur’’);
En considérant la structure rectangle Ecrire(R.long,R.Larg);
précédemment définie, calculer le périmètre Peri (R.Long+R.Larg)*2;
et la surface du rectangle. Surf R.Long*R.Larg;
Algo geometrie; Afficher(‘’le perimètre est ‘’,peri);
Type Rectangle=structure; Afficher(‘’la surface est ‘’,surf);
Long: réel; Fin.
Larg: réel;
Var
R:Rectangle;
Peri, Surf: réel;
98