Vous êtes sur la page 1sur 98

Université Mahatma Gandhi

Licence 1 GI & MIAGE

Cours d’Algorithmique
Session: 2016-2017

Présenté par : Mr TENGUIANO Balla

1
I. Introduction à la programmation

Pour résoudre un problème donné par


l’informatique, l’utilisateur de l’ordinateur doit
mettre au point un programme et le faire exécuter
par la machine.

 L’ordinateur se chargera de traiter les


instructions du programme et restituer les
résultats demandés en fonction des données qui
lui sont fournies.

2
I. Introduction à la programmation

C’est quoi un programme en informatique ?

Un programme est une succession logique et


ordonnée d’instructions.

C’est quoi la programmation en informatique ?

La programmation est l’ensemble des taches


qui permettent d’élaborer un programme

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.

 Un programme c’est donc la traduction d'un


algorithme dans le langage de programmation
utilisé.

4
I. Introduction à la programmation
Démarche à suivre pour la résolution en
informatique est donc:

Analyse du
Traduction
problème

Problème Algorithme Programme

Recherche des outils


De l’algorithme dans un
de résolution et
langage compréhensible
décomposition en
par la machine
étapes élémentaires
5
I. Introduction à la programmation
C’est quoi un algorithme?
Un algorithme est un moyen de description des
étapes à suivre pour résoudre un problème.

Ce qu’il faut savoir d’un algorithme


1. L’ordre de ces opérations et leur enchaînement est très
important.

2. L’algorithme ne doit pas être confondu avec le langage


de programmation proprement dit.

6
I. Introduction à la programmation
Objectifs de l’algorithmique

L’objectif de l’algorithmique est de permettre


une bonne analyse du problème afin de proposer
une meilleure solution.

Celle-ci doit être correcte, rapide, et moins


couteuse en utilisant un ensemble de techniques
de programmation.

7
I. Introduction à la programmation
Environnement d’un algorithme
L’environnement d’un algorithme est constitué
de:

Des objets d’entrée (OE)


Des objets de sortie(OS)
Des objets constants(OC)
Des objets intermédiaires(OI)

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

Exemple1: Calcul de la quantité Q donnée


par la formule suivante:

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é:

D’un ensemble d’objets appelé environnement


de l’algorithme,

D’un ensemble d’actions agissant sur cet


environnement
Exemple 2: algorithme de calcul de la somme de
deux nombres réels.
12
II. Outils de base de l’algorithmique

Ordinateur ?

Un ordinateur est une machine constituée d’un


ensemble de composants électroniques destinés à
accepter des données, leurs faire subir certaines
transformations selon un cheminement bien
précis et restituer les résultats souhaités.

13
II. Outils de base de l’algorithmique
Schéma simplifié d’un PC

Une mémoire de données(MD)


Une mémoire d’instructions(MI)
Un compteur d’instructions(CI)
Une unité centrale(UC)
Un organe d’entrée(OE)
Un organe de sortie(OS)

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

NB: de préférence, le nom d’un identificateur est choisi


en rapport avec le rôle de l’objet pour faciliter la
lecture de l’algorithme.
Exemple: nombres d’employés d’une entreprise

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.

Variable: dans le cas contraire.

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:

Des lettres de l’alphabet(A…Z, a…b)


Des chiffres(0…9)
Un espace
Des codes d’opérations(+, -, *, /….)
Des caractères de ponctuations(,-;-.-…)
Des caractères spéciaux(&, #, {, [ , @....)
22
II. Outils de base de l’algorithmique
Exemple Type Texte
Chaines de caractères:
‘’bonjour à tous ’’ , ‘’a/b32’’, ‘’algorithmique ’’
Relation d’ordre
• ‘’A’’<‘’a’’: le code numérique lié à ‘’A’’ est inferieur au
code numérique lié à ‘’a’’.
• ‘’A’’ < ‘’C’’
• ‘’2003’’ > ‘’2002’’
• ‘’2006’’ < ‘’86’’ : le code numérique lié au premier
caractère ‘’2’’ de la chaine ‘’2002’’ est inferieur au code
numérique liée à ‘’8’’ de la chaine ‘’86’’.
23
II. Outils de base de l’algorithmique
Operateurs applicables au type texte
On peut appliquer plusieurs opérations sur les valeurs
texte. Parmi celles-ci, citons la plus utilisée: la
concaténation ( // ).
Exemple

‘’Bonjour ’’ // ‘’les étudiants’’ a pour résultat:


‘’Bonjour les étudiants’’

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)

Remarque: par convention, pour les valeurs de type


booléen: Faux<Vrai

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…

Commentaires: ce sont des textes explicatifs de certains passages


afin d’expliquer des traitements complexes et aider à la
maintenance de l’algo.
Les commentaires se présentent sous forme de texte mis entre les
deux symboles suivants: (* et *)

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.

Instruction d’entrée ou de sortie:


Entrée de donnée standard à partir de
clavier ou sortie de donnée standard vers
l’écran.

Sortie disque magnétique:


sortie de donnée non standard dans un
fichier dans la disquette ou le disque dur.

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: démarrage d’un traitement

Début

Fin: fin d’un traitement

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

Les instructions élémentaires en algorithmiques sont


au nombre de trois:

l’affectation

Les instructions d’entrée de données

Les instructions de sortie de données

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:

Une variable de même type que identificateur_objet


Exemple: V A

Une constante de même type que identificateur_objet


Exemple: V 6

Une expression dont l’évaluation produit un résultat final de


même type que identificateur_objet
Exemple: V 3*A+2*B-1
40
III. Les Instructions de base en Algorithmique
Conditions:
Une affectation est exécutable si et seulement si:
1. Le membre gauche de l’affectation (id_objet) est une variable
déclarée. Il doit correspondre à une case mémoire qui peut
recevoir une valeur.
Par conséquent les écritures suivantes n’ont pas de sens:
8 A; A+B C;
2. La partie droite de l’affectation représente une quantité bien
définie. C-à-d une structure possédant une valeur ou ayant une
évaluation qui fournit une valeur résultat.

Par conséquent la deuxième affectation dans l’exemple suivant


n’est pas exécutable:
A 6; … V 1/A; 41
III. Les Instructions de base en Algorithmique
3. Les types de deux parties de l’affectation sont les mêmes.

Par conséquent la deuxième affectation dans l’exemple suivant


n’est pas exécutable:

Var
A: entier;
C: caractère;
Début
A 6;

C A;
fin

42
III. Les Instructions de base en Algorithmique

Remarques:

 l’affectation détruit complètement et définitivement le contenu


précédent de la variable affectée si elle en avait un,

 La déclaration d’une variable n’affecte aucune valeur à la


variable.

43
III. Les Instructions de base en Algorithmique

Les instructions d’entrée/sortie


 Un algorithme doit en général acquérir des données sur un
périphérique et fournir en conséquence des résultats sur un
autre périphérique.

 Pour réaliser ces taches fondamentales en prog. On a donc


besoin de deux opérations distinctes: Lire & Ecrire

Lire(V): qui permet d’affecter à la variable(V), la valeur lue sur le


périphérique d’entrée.
Ecrire(V1): qui permet de transférer la valeur(V1) vers le
périphérique de sortie.

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);

 La valeur de (V1) peut être soit:


 Une variable déclarée: Exemple: Ecrire(A);
 Une Constante : Exemple: Ecrire(6);
 Une expression : Exemple: Ecrire(3*A+2*B-1);

 Un algorithme doit être interactif, c-à-d qu’il doit choisir le


langage qui va s’instaurer entre l’utilisateur et la machine.
Exemple: Algo de calcul de S=A+B;
45
III. Les Instructions de base en Algorithmique
Remarques:
 On peut avoir avec la même instruction ‘’Ecrire’’
l’affichage d’un ou plusieurs et d’une ou plusieurs
variables.

 Exemple:
Ecrire(‘la somme des deux nombres’, a, ‘et’ ,b, ‘est:’, S);

si a=2 et b=5, l’instruction ci-dessus s’exécutera ainsi:


la somme des deux nombres 2 et 5 est: 7

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.

Mais dans de nombreuses applications, on


exige une exécution par morceau ou des
répétitions d’un même bloc d’instructions.

C’est le rôle des primitives de base structurées.

47
IV. Instructions conditionnelles et alternatives

On distingue deux grandes familles de


primitives:

Les primitives de choix qui permettent de


choisir les instructions à exécuter selon les valeurs
courantes de certaines variables;

elles sont de 2 types:


 les instructions conditionnelles
 Les instructions alternatives
48
IV. Instructions conditionnelles et alternatives

Les primitives d’itérations qui sont utilisées


lorsque l’on souhaite exécuter plusieurs fois le
même traitement.
Note: les notions de choix et d’itération sont deux
fondamentales de l’algorithmique.

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:

Si ‘’il pleut’’ Alors


‘’je prends mon parapluie’’;
Finsi

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:

Ecrire un algo qui permet d’afficher la valeur absolue de la


différence entre deux nombres réels saisis au clavier.

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.

Il faut donc exprimer beaucoup de Si les un à la suite


des autres pour englober tous les cas.
 Un Si peut être exprimer à la suite d’un Alors d’un
autre Si et/ou à la suite de son Sinon

54
IV. Instructions conditionnelles et alternatives

Exemple 5:

Un moniteur d’auto-école veut apprendre à un candidat


au permis de conduire ce qu’il faut faire dans croisement
avec feu. Il y’a trois possibilités:

 Si le feu est vert, le candidat peut passer,


 Si le feu est orange, le candidat doit ralentir et préparer
pour s’arrêter
 Si le feu est rouge, le candidat doit s’arrêter.

Proposer un algorithme de résolution de ce problème.


55
IV. Instructions conditionnelles et alternatives
Instructions conditionnelles
4. La primitive ‘’ Cas’’
Etude de cas: algo afficher jour de la semaine ave si…
alors…sinon…

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

Valeur_1 Valeur_2 Valeur_N Sinon

Instru_1 Instru_2 …….. Instru_N Instru_PD

La machine aura le choix parmi N valeurs.


57
L’instruction qui sera exécutée es celle qui correspond à la valeur courante de la
variable testée.
IV. Instructions conditionnelles et alternatives
Remarques

Les choix sont exclusifs l’un de l’autre(une même valeur ne peut


entrainer deux traitements différents).
Par contre deux valeurs différentes peuvent entrainer un même
traitements.
Les valeurs peuvent se présenter sous forme d’intervalle.
Si la variable n’est égale à aucune des valeurs testées, c’est
Instruction_par_defaut qui est exécutée.
L’instruction par défaut n’est pas obligatoire.
La variable de sélection doit être déclarée, et ne doit avoir qu’un
type discret(entier ou caractère mais réel).

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:

Reprenons l’algo afficher jour.

60
V. Instructions répétitives( les boucles)

Les primitives itératives constituent des boucles qui


répètent l’exécution d’un même bloc d’instructions un
certains nombre de fois. Ce nombre est soit précisé à
l’avance soit il dépendra de l’évolution de l’action
algorithmique effectuée par le bloc répéter.

Pour que la structure d’une boucle soit correcte, il faut


qu’elle soit composée de quatre blocs élémentaires à
savoir:

61
V. Instructions répétitives( les boucles)

1. Bloc d’initialisation de la boucle: il sert de départ des


itérations,
2. Bloc de processus itératif ou corps de la boucle: il
contient toutes les instructions à répéter à chaque
itération,
3. Bloc de progression ou de régression de l’indice: c’est
un compteur qui fait évoluer la boucle.
4. Bloc de test de continuation: il effectue le contrôle
pour décider la continuation ou l’arrêt de la
récurrence.

62
V. Instructions répétitives( les boucles)
Instructions répétitives
En programmation, on distingue deux grands types de
boucles:

1. Cas où le nombre d’itération n’est pas connu à


l’avance :
Le nombre d’itérations du corps de la boucle n’est pas
connu à l’avance, mais il dépend de la réalisation d’une
certaine condition au cours du traitement.

63
V. Instructions répétitives( les boucles)

A-le nombre d’itération n’est pas connu à l’avance

On distingue deux types d’instructions:

1. Le teste de contrôle est effectué au début de la


boucle.
2. Le teste de contrôle est effectué à la fin de la boucle.

64
V. Instructions répétitives( les boucles)

L’instruction Tantque…faire…FinTantque
Syntaxe:
Tantque condition de continuation Faire
Actions(Instructions)
FinTantque

Les instructions seront exécutées tant que la condition


est vérifiée.

65
V. Instructions répétitives( les boucles)
Organigramme:

Non
CND

Oui

Instructions

Sortie de la boucle

Le test est effectué à l’entrée de la boucle, donc les instruction


peuvent être exécutées zéro fois si la condition est fausse à
l’entrée de la boucle. 66
V. Instructions répétitives( les boucles)

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

Les instructions délimitées par Répéter et Jusqu’à seront


exécutées jusqu’à ce que la condition soit vérifiée.

69
V. Instructions répétitives( les boucles)
Organigramme:

Instructions Le test est effectué à la fin de la


boucle, donc les instructions
sont exécutées au moins une
Non fois même si la condition est
CND
fausse dès l’entrée de la
Oui boucle.

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)

B- le nombre d’itération est connu à l’avance


Lorsque le nombre d’itération est connu à l’avance, on
utilise l’instruction :
Pour…Faire…FinPour
Pour variable de contrôle borne1 à borne2 Faire
Actions(Instructions);
FinPour

Lorsque borne1 est inferieur à borne2, il s’agit d’une


boucle progressive(incrémentation). Dans le cas contraire,
il s’agit d’une boucle régressive(décrémentation).

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,

2. La valeur de la variable de contrôle à la sortie de la


boucle est la valeur finale(borne2)

3. Le contenu de la variable de contrôle est exploité par


une instruction, mais celle-ci ne peut pas le changer.

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,

2. Comparaison de la variable de contrôle à borne2, si


elle est supérieure alors fin de la boucle,

3. Sinon exécution des instructions de la boucle,

4. Incrémentation de 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:

a) Écrire un algorithme qui calcule la somme des


nombres entiers de 0 à 50.
b) Écrire un algorithme qui calcule le produit des
nombres entiers de 1 à 7
c) Écrire un algorithme qui calcule la somme des 20
premiers nombres impairs.
d) Écrire un algorithme qui calcule la somme des 20
premiers nombres pairs.

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.

Mais, dans de nombreuses applications, nous aurons


besoins de regrouper plusieurs données dans une seule
variable et dans un ordre particulier.

79
VI. Les Variables Dimensionnées( Les tableaux)

Exemple1: Considérons 50 valeurs réelles(les notes des


élèves d’une classe par exemple). Pour loger ces valeurs
de même types, même nature et qui vont subir, sans
doute le même traitement, il faut déclarer 50 variables
différentes , ‘’dispersées’’ dans un ordre quelconque à
l’intérieur de la mémoire de l’ordinateur.

Supposons maintenant qu’on doit gérer les notes de


tous les étudiants de IUHEG.

Combien de variables il nous faudra ?????

80
VI. Les Variables Dimensionnées( Les tableaux)

Cette méthode présente des inconvénients à savoir:


 Difficultés d’accéder rapidement à la note d’un
étudiant donné.

 Pour lire ces 50 notes sur le clavier, il faut 50 lignes,


minimum, de programmation(lecture de données) ce
qui va rendre les algorithmes très longs et parfois
impossibles.

 La même chose pour les opérations d’écritures de ces


données sur l’écran.
…
81
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.

T[1] T[2] T[3] T[4] T[48] T[49] T[50]

14 12.5 13.50 10.25 11.5 18 15.25

50 82
VI. Les Variables Dimensionnées( Les tableaux)

Définition d’un tableau

Un tableau est une variable structurée, contentant


plusieurs composantes champs tels que tous les champs
sont de même type.

83
VI. Les Variables Dimensionnées( Les tableaux)

Tableau à une dimension


Une donnée de type tableau est constituée d’un
nombre de données élémentaires de même type de base
ou type d’éléments.

Chaque élément est directement accessible au moyen


d’un indice.

La déclaration d’un tableau doit donc préciser le type


d’éléments T2 et le type d’indice T1.

84
VI. Les Variables Dimensionnées( Les tableaux)

Syntaxe:
Var
T:tableau[T1] de T2

On a ainsi déclaré une variable T d’un nouveau type


appelé type tableau. Cette variable contiendra un certain
nombre de cases de type T2(quelconque). Ce nombre est
défini par type T1

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.

La Variable A est un tableau de 20 cases destinées pour


accepter des nombres 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]);
Y3*A[i]+1;
Cas général:
Var
T:tableau[borne_Inf..borne_sup] de réels;

Le tableau T contient(borne_sup-borne_inf+1) éléments.

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

(* Affichage des éléments du tableau*)


Pour i  1 à 5 Faire
Afficher(‘l élément N°’, i, est:’, V[i]);
FinPour

Ecrire(‘la somme des éléments du tableau est’, S);

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

• T: la variable tableau à deux dimension


• T1: type indice de la première dimension(lignes) c-à-d
le nombre de ligne.
• T3: type indice de la deuxième dimension(colonne)
c-à-d le nombre de colonne.
• T2: type de base des éléments du tableau 91
VI. Les Variables Dimensionnées( Les tableaux)

Exemple:
Var
T: tableau[1..3, 1…4] d’entiers;

T sera donc un variable tableau à deux dimensions de 3


lignes et 4 colonnes.

i/j 1 2 3 4
1 3 2 5 2
2 1 7 4 8

4 6 5 3 2

Remarque: les tableaux à deux dimensions ont une


Structure de tableau à deux lignes appelé: matrice. 92
VI. Les Variables Dimensionnées( Les tableaux)
Effets de la déclaration et utilisation

1. La déclaration d’un tableau implique la réservation


de la mémoire nécessaire.
2. Les tableaux sont stockés en mémoire ligne par ligne.
3. L’accès à un élément du tableau à deux dimensions
est obtenu en précisant l’identificateur de la variable
et les deux indices entre crochets: T[i,j]; i pour la
ligne et j pour la colonne. Dans l’exemple précédent:
T[2, 3] vaut 4.

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

Vous aimerez peut-être aussi