0% ont trouvé ce document utile (0 vote)
17 vues106 pages

Algo Fyama

Le document traite de l'algorithmique et de la programmation, en expliquant la méthodologie de résolution de problèmes à travers l'analyse, la définition d'algorithmes, et la traduction en langage de programmation. Il aborde également les types de données, les expressions, les actions de déclaration, d'affectation, et les actions sélectives. Enfin, il présente des exemples d'algorithmes pour illustrer ces concepts.

Transféré par

printt410
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues106 pages

Algo Fyama

Le document traite de l'algorithmique et de la programmation, en expliquant la méthodologie de résolution de problèmes à travers l'analyse, la définition d'algorithmes, et la traduction en langage de programmation. Il aborde également les types de données, les expressions, les actions de déclaration, d'affectation, et les actions sélectives. Enfin, il présente des exemples d'algorithmes pour illustrer ces concepts.

Transféré par

printt410
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PPT, PDF, TXT ou lisez en ligne sur Scribd

Algorithmique

et
Programmation

1
Algorithmique et Programmation

1 Partie :
ère

Algorithmique

2
Algorithmique
0. Introduction
Un programme est un discours adressé à
l'ordinateur et a deux aspects : un contenu et une
forme, un sens et une grammaire. Il suffit que le
discours soit correct au niveau de la forme. En ce
moment, il effectue les manipulations qu'on lui
demande d'effectuer. Le contenu est pour
l'ordinateur purement syntaxique.
L'apprentissage de la programmation est donc
à ce niveau fortement dépendant du langage que l'on
utilise. Mais la cohérence du programme, c'est-à-dire
du contenu, n'est pas évaluée.
3
Algorithmique
0. Introduction
Cette cohérence et cette pertinence de
l'analyse du problème à traiter sont donc un
préalable à tout exercice de programmation.
On doit fixer l'objectif du programme, établir
la liste des données et des opérations à exécuter, et
les ordonner.
« La description de la suite des
opérations élémentaires ordonnées capables
de résoudre le problème posé constitue
l'algorithme ».
4
Algorithmique
1. Méthodologie de programmation
1.1. La démarche

5
Algorithmique
1. Méthodologie de programmation
1.1. La démarche
L'analyse d'un problème posé consiste à
définir les différentes étapes de sa résolution. C'est
la partie essentielle dans le processus de
programmation. Elle permet de définir le contenu
d'un programme en termes de données et
d’actions. Une démarche descendante permettrait
de décomposer le problème initial en « sous
problèmes », plus simples à résoudre. L'ensemble
de ces spécifications représente l'algorithme.

6
Algorithmique
1. Méthodologie de programmation
1.1. La démarche
La phase suivante consiste à traduire
l’algorithme dans un langage de programmation
donné. Ce travail, quoiqu’il semble facile, exige le
respect strict de la syntaxe du langage.
Lors de l’étape d’exécution, soit des erreurs
syntaxiques sont signalées, ce qui entraîne des
corrections en général simples à effectuer, soit des
erreurs sémantiques plus difficiles à déceler.

7
Algorithmique
1. Méthodologie de programmation
1.2. Définitions
 Un algorithme est une suite finie d'instructions
indiquant de façon précise l'ordre dans lequel
doit être effectué un ensemble d'opérations
pour obtenir la solution d’un problème.
 Un algorithme est une suite d'actions que devra
effectuer un automate (un ordinateur), en un
temps fini, pour arriver à un résultat, à partir
d'une situation donnée.

8
Algorithmique
2. Les éléments de base
2.1. Les données
Une donnée peut être considérée comme une
boîte, portant une étiquette (nom), d'une certaine
forme (type) et qui contient une information
(valeur).
Elle peut être soit une constante ; soit une
variable si sa valeur est susceptible de changer
durant l’exécution du programme.
Classification des données (selon la nature des
valeurs) :
les données numériques ;
les données alphanumériques ; et
les données logiques.
9
Algorithmique
2. Les éléments de base
2.1. Les données
2.1.1. Les types numériques
Ils caractérisent les valeurs entières ou réelles
(et parfois complexes).
Une variable est dite entière si elle prend ses
valeurs dans Z et qu'elle peut supporter les opérations
suivantes : addition (+) ; soustraction (-) ;
multiplication (*) ; division entière (div) ; division
modulo (mod). Elle est caractérisée par un nom
appelé identificateur et un contenu représentant
une valeur d'un type donné.
12 div 3 = 4 ; 13 div 3 = 4 ; 12 mod 3 = 0 ; 13 mod
3=1
10
Algorithmique
2. Les éléments de base
2.1. Les données
2.1.1. Les types numériques
Une variable est dite réelle si elle prend ses
valeurs dans  et qu'elle supporte les opérations : + ;
- ; * et /. Elle est caractérisée par un identificateur et
un contenu représentant une valeur d'un type donné.
Il existe deux représentations des réels :
la forme usuelle avec le point comme symbole
décimal (0.2467 ; 345.876 ; -12.1).
la notation scientifique ayant la forme suivante :
aE±b, où : a est la mantisse, qui s'écrit sous une
forme usuelle et b est l'exposant représentant un
entier relatif (247 = 2.47E2 = 0.247E+3 = 2470E-1
= ...).
11
Algorithmique
2. Les éléments de base
2.1. Les données
2.1.2. Les types alphanumériques
Le type alphanumérique caractérise les valeurs
caractère ou chaîne de caractères.
La valeur d’un Car est un caractère quelconque
Єant au domaine des chiffres de ‘0’ à ‘9’, des lettres de ‘A’
à ‘Z’, de ‘a’ à ‘z’ et des caractères spéciaux (‘+’ ‘-‘ ’,‘ ’;’
‘.’...). Un caractère est toujours noté entre apostrophes.
Les opérateurs sont : égal (=) ; différent (< > ou
≠) ; supérieur ou égal () ; supérieur (>) ; inférieur ou
égal () ; inférieur (<).
Les 4 dernières représentent un ordre entre les
caractères qui est : ‘ ‘ < ‘0’ < ... < ‘A’ < ... < ‘a’ < ... <
‘z’.
12
Algorithmique
2. Les éléments de base
2.1. Les données
2.1.2. Les types alphanumériques
La valeur d’une Chaîne est une suite finie de
caractères quelconques entre apostrophes.
'BONJOUR' ; 'CECI EST UN EXEMPLE'.
Les opérateurs définis sur les variables de
type Chaîne sont ceux des variables de type Car.
Chaîne A < Chaîne B si le mot contenu dans
Chaîne A est 'inférieur' à celui de Chaîne B dans le
sens du dictionnaire (inférieur : avant ; supérieur :
après).
'BAL' < 'BALLES' < 'BALLON' < 'BAR' < 'Bar' < 'bar'

13
Algorithmique
2. Les éléments de base
2.1. Les données
2.1.2. Les types alphanumériques
De plus,  un autre opérateur défini sur les
variables car ou chaîne, la concaténation (+ ou
||). Elle crée une nouvelle chaîne en juxtaposant
deux ou plusieurs mots. ‘TELE'+'VISION' =
'TELEVISION'
2.1.3. Le type logique
Une valeur logique (ou booléenne) est l'une
des deux valeurs « vrai » ou « faux ».
Les opérateurs sont la négation (non),
l'intersection (et) et l'union (ou).
14
Algorithmique
2. Les éléments de base
2.2. Les expressions
Combinaisons entre des variables et des
constantes à l'aide d'opérateurs.
2.2.1. Expressions arithmétiques
Var1*54.5/(2+pi)
La hiérarchie des opérateurs arithmétiques est :
± opérateur unaire ;
( ) parenthèses ;
^ puissance ;
* ou / multiplication ou division ;
+ ou - addition ou soustraction.

15
Algorithmique
2. Les éléments de base
2.2. Les expressions
2.2.1. Expressions arithmétiques
En cas de conflit entre 2 opérateurs de même
poids, on va de gauche à droite.
a+b-c : d'abord a+b, puis – c ; a/b*c :
d'abord a/b, puis * c.
Considérons ((3*a)-x^2)-(((c-d)/(a/b))/d)
1 2 4 5

3 7

8
16
Algorithmique
2. Les éléments de base
2.2. Les expressions

Soit l'expression algébrique suivante : 3 yx   4ac
2

2x  z
Sa forme algorithmique : ((3-y*x)^2-4*a*c)/(2*x-
z)
2.2.2. Expressions logiques
Combinaisons à l'aide d'opérateurs relationnels
(=, <, <=, >, >=, ≠) et/ou logiques (non, et, ou).
Usage des parenthèses et de la hiérarchie entres
les différents opérateurs pour résoudre les problèmes
de conflits.
17
Algorithmique
2. Les éléments de base
2.2. Les expressions
2.2.2. Expressions logiques
Hiérarchie des Hiérarchie des
opérateurs logiques opérateurs
relationnels
non >
et ≥
ou <

=
≠ 18
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.1. L'action de déclaration
Il est nécessaire d’annoncer toute donnée dans un
algorithme et de préciser son type avant son utilisation.
Une constante ou une variable est désignée par un
nom : l'identificateur. Celui-ci est une suite de
caractères alphanumériques, dont le 1er est une lettre
(on n'utilise que des lettres, des chiffres et du trait de
soulignement).
Ident1, A10, B ; mauvais identificateurs : 5ABC,
35, a+b
19
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.1. L'action de déclaration
VAR1 est identique à Var1 et à var1. Ceci
traduit la non sensibilité à la casse
Var liste des identificateurs : type;
Var
Réponse:booléen;
Chain1:Chaîne[30];
Rep:Car;
i,j:entier;
a,b,c:réel;
20
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.2. L'affectation ou l’assignation
Syntaxe  Ident:=expression où Ident un
identificateur ; := ou ← symbole d’affectation et
expression une valeur ou une variable ou
expression.
Dans l'affectation, l'élément à gauche de := est
une variable qui reçoit une valeur ou le contenu
d'une variable ou le résultat d'une expression (partie
de droite). A:=10 ; B:=A ; C:=C+1 ; Mauvais
exemples : a+1:=3 ; 3B:=A
21
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.2. L'affectation ou l’assignation
Soit à calculer la moyenne de 3 notes et de
l’afficher.
Algorithme Moyenne ;
Const Note1=12;Note2=7.5;Note3=14;
Var Som,Moy:réel;
Début
Som:=Note1;
Som:=Som+Note2;
Som:=Som+Note3;
Moy:=Som/3;
Afficher (‘La moyenne est de : ‘ , Moy);
Fin.
22
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.3. Lecture/Ecriture des données
Les actions d’Entrée/Sortie permettent
d’introduire des données dans un programme ou
d’afficher des résultats à partir de celui-ci.
Lire(A,B);
Afficher(‘Le résultat est : ‘, Moyenne);
Le message Le résultat est s’affichera suivi de
la valeur de la variable Moyenne.

23
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.4. Les actions simples et composées
Toute action de déclaration, d'affectation,
d'appel à une procédure, de Lecture, d’Ecriture, …
 Action simple
Var i1,i2,A,B:entier;
Som:=Som+1;
Lire(Age);
CALCUL(A,B);
Afficher(A,B);
Une action composée est un ensemble fini
d'actions simples (ou composées) encadrée par un
début et une fin.
24
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.4. Les actions simples et composées
Var A,B:réel ;

Début
Début
Action1 ; A:=B+1 ;
…; Lire(A,B) ;
Actionn ; CALCUL(A,B) ;
Fin; Afficher(A,B) ;
Fin;

25
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Les actions de sélection sont les suivantes :
1er Cas :
SI condition ALORS Action1
SINON Action2
FINSI
2ème Cas :
SI condition ALORS Action FINSI
26
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Supposons qu'on veut connaître le plus grand de
deux nombres a et b.
algorithme plusgrand(a,b);
Var a,b,pgran:entier;
début
Lire(a,b);
pgran:=a;
Si b>a alors pgran:=b
Finsi;
Afficher(‘Le plus grand entre ‘,a,‘ et ‘,b,’ ‘est’ : ‘,pgran);
fin.

27
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Ou encore :
algorithme plugrand(a,b) ;
Var a,b,pgran:entier;
début
Lire(a,b);
Si a>b alors pgran:=a
sinon pgran:=b
Finsi;
Afficher(‘Le plus grand entre ‘,a,‘ et ‘,b,’ :
‘,pgran);
fin.
28
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Le choix multiple est une variante de la sélective.
SELON variable Sélecteur
val1: Action1(s);
val2 : Action2(s);
Labels

…;
valn: Actionn(s);
SINON Action(s);
FINSELON

29
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Le choix multiple est une variante de la
sélective.
SELON variable Sélecteur
Labels

val1: Action1(s);
val2 : Action2(s);
…;
valn: Actionn(s);
FINSELON
30
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.5. L'action sélective
Remarques :
 Le Sélecteur doit être du type énuméré comme
c’est le cas du type Entier, du type Car, … Il peut
être aussi une expression.
 Les VALi peuvent soit une valeur, soit une suite
de valeurs qui se suivent séparées par des
virgules, soit un intervalle dont les deux bornes
sont séparées par deux points (..).
31
Algorithmique
Algorithme lestrimestres;
Var mois:entier;
Début
Afficher(‘Donner le mois’);
Lire(mois);
Selon mois
1:Afficher(‘C’’est le début de l’’année’);
1..3:Afficher(‘Le premier trimestre’);
4..6:Afficher(‘Le deuxième trimestre’);
7..9:Afficher(‘Le troisième trimestre’);
10,11,12:Afficher(‘Le quatrième trimestre’);
12:Afficher(‘C’’est la fin de l’’année’);
Sinon Afficher(‘Le mois entré est faux’)
Finselon
Fin.

32
Algorithmique
Algorithme lestrimestres;
Var mois:entier;
Début
Afficher(‘Donner le mois’);
Lire(mois);
Si (mois>=1) et (mois<=12) Alors
Selon mois
1..3:Afficher(‘Le premier trimestre’);
4..6:Afficher(‘Le deuxième trimestre’);
7..9:Afficher(‘Le troisième trimestre’);
10..12:Afficher(‘Le quatrième
trimestre’);
Finselon
Sinon Afficher(‘Il y a Erreur’);
Finsi
Fin.
33
Algorithmique
Algorithme leslettresmajusculesetminuscules;
Var lettre:car;
Début
Afficher(‘Taper un caractère ’);
Lire(lettre);
Selon lettre
‘a’..’z’:Afficher(‘Le caractère tapé est
une lettre minuscule’);
‘A’..’Z’:Afficher(‘Le caractère tapé est
une lettre majuscule’);
Sinon Afficher(‘Le caractère entré n’’est pas
une lettre’)
Finselon
Fin.
34
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
Structure d’une action itérative :
Boucle condition Contrôle de la
boucle

Action (simple ou composée) Corps de la
boucle

FinBoucle Fin de la boucle
 plusieurs manières d’exprimer cette action.
35
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
a) La boucle Tant que
Tant que Condition Faire
début
Action1;
…;
Actionn;
finTant que ou fin;
36
Algorithmique
Algorithme Moyen;
Var Note,Moyenne,Som:réel;nb:entier;
Début
Som:=0;
nb:=0;
Afficher(‘Entrer une note : ‘);
Lire(Note);
Tant que (Note>=0) faire
Début
nb:=nb+1;Som:=Som+Note;
Afficher(‘Entrer une note : ‘);
Lire(Note);
Fin;
Moyenne:=Som/nb;
Afficher(‘La moyenne des ‘,nb,‘ notes est de :
‘,Moyenne);
Fin.
37
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
b) La boucle Répéter
La boucle Répéter permet d’entrer dans la boucle
quelque soit la condition et réitère l’exécution jusqu'à ce que
la condition devienne vraie.

Répéter
Action1;
…;
Actionn;
Jusqu’à Condition ;

38
Algorithmique
Algorithme Moyenne;
Var Note,Moyenne,Som:réel;
nb:entier;
Début
Som:=0;nb:=0;
Répéter
Afficher(‘ Entrer une note : ‘);
Lire(Note);
nb:=nb+1;
Som=Som+Note;
Jusqu'à Note<0;
Moyenne=Som/nb;
Afficher (‘ La moyenne des ‘,nb,‘ notes est de : ‘,
Moyenne);
Fin.
39
Algorithmique
Algorithme Moyenne;
Var Note,Moyenne,Som:réel;nb:entier;
Début
Som:=0;nb:=0;
Répéter
Afficher (‘ Entrer une note : ‘);Lire (Note);
Si Note 0 Alors
Début
nb:=nb+1 ;
Som=Som+Note
Fin;
Jusqu'à Note<0;
Moyenne=Som/nb ;
Afficher (‘La moyenne des ‘,nb,‘ notes est de : ‘,
Moyenne);
Fin.
40
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
Remarques :
 Dans la 2ème forme, la boucle s’exécutera au moins
une fois alors que dans la 1ère, si la condition n’est
pas vraie dès le départ, la boucle ne s’exécutera
pas ;
 Dans ces deux formes, le nombre d'itérations n’est
pas connu à priori. Il dépend de la condition ;
 Dans le corps de la boucle, il doit exister une
variable – dite de contrôle – qui sera modifiée pour
faire évoluer l'état de la condition. En général, cette
variable doit être initialisée avant l'entrée dans la
boucle ;
41
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
c) La boucle Pour
Pour var_contrôle:=val_initiale à val_finale faire
Début
Action1;
…;
Actionn;
FinPour ou Fin;
Dans le corps de la boucle, il est interdit de
modifier la valeur du compteur var_contrôle bien
qu’on peut s'en servir.
42
Algorithmique
Algorithme Salaires;
Var Sal_annuel,Sal_mensuel:réel;
i:entier;
Début
Sal_annuel:=0;
i:=0;
Pour i:=1 à 12 faire
Début
i:= i+1;
Lire(‘Entrer le salaire mensuel :
’,Sal_mensuel);
Sal_annuel:=Sal_annuel+Sal_mensuel;
Fin;
Afficher (‘Le salaire annuel est de : ‘,Sal_annuel);
Fin.
43
Algorithmique
2. Les éléments de base
2.3. Les actions
2.3.6. L'action itérative
Rmq : Les imbrications
Boucle 1 Boucle 1

Boucle 2 Boucle 3
Boucle 3 Boucle 4

FinBoucle 3
FinBoucle 2 FinBoucle 3
Boucle 4
FinBoucle 4

Boucle 2

FinBoucle 4
FinBoucle 1 FinBoucle 1
FinBoucle 2
44
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.1. Les types construits
[Link]. Le type énuméré
Définition en extension de toutes les valeurs
que peuvent prendre les variables de ce type.
Type
Jour=(lundi,mardi,mercredi,jeudi,vendredi,same
di,dimanche);
Var j1,j2:jour; j1:=mardi; j2:=dimanche;
Les opérateurs relationnels (<,  , >,  , =, ≠)
s’appliquent et cela est fonction de l’ordre.
lundi<mardi<mercredi<jeudi<vendredi<samedi<dim
anche
45
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.1. Les types construits
[Link]. Le type intervalle
Définition en compréhension de toutes les valeurs
ordonnées que peuvent prendre les variables de ce
type. On ne précisera que le minimum et le maximum.
Chiffre=0..9;
Lettre=A..Z;
Jour_ouvrable=lundi..vendredi;
Remarque : Les valeurs Єnant à un intervalle sont
nécessairement de type déjà défini.

46
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
Il peut y avoir à traiter des lots de données
qui peuvent être toutes de même type (tableau) ou
de types différents (enregistrement). Elles sont
stockées alors dans une variable multiple à laquelle
on donne un nom (identificateur) qui désignera
l’ensemble des données et une autre information
permettra de désigner individuellement chacune
d’elles.

47
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
Supposons que l’on dispose des chiffres
d’inflation pour chaque mois. Pour calculer
l’inflation annuelle, il suffit de calculer la somme
des données mensuelles et la diviser par 12. Les
données seront stockées dans un tableau de 12
éléments. Soit Tab_Inflation.
1 Tab_Inflation
2 3 4 :5 6 7 8 9 10 11 12
0.0 0.1 0.6 0.7 -0.4 -0.2 0.2 0.8 0.6 0.4 0.3 -0.2
5
48
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
Pour définir un tableau, il faut préciser un nom
commun pour toutes ces données et un indice. Il faut
déclarer le type commun aux éléments du tableau et le
type de l’indice.
Type Identificateurdetype=TABLEAU(i..j) de
Type;
i et j sont les indices bornes avec i l’initial et j le final.
Ou alors :
Var Identificateurdevariable:TABLEAU(i..j) de Type;

49
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
Pour le cas du tableau d’inflation, la situation
se présente comme suit :
Type Tab=TABLEAU(1..12) de réel;
Var Tab_Inflation:Tab;
Ou alors :
Var Tab_Inflation=TABLEAU(1..12) de
réel;

50
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
Un tableau est caractérisé par sa taille. En
général, lorsque le nombre d’éléments n’est pas
connu, on prévoit une taille suffisamment grande
pour contenir tous les éléments.
Si le tableau contient une seule série de
données, on dira que sa dimension est égale à 1 (il
s’agit d’un vecteur ou tableau – colonne ou tableau
– ligne). S’il contient 2 séries, sa dimension est
égale à 2, c’est donc une matrice.
51
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
Considérons les chiffres mensuels de
l’inflation, du chômage et des prix à la
consommation. Ces trois séries de données seront
stockées dans une matrice (tableau à 2
dimensions)
1 2 3 : 4 5 6 7 8 9 10 11 12
0.05 0.1 0.6 0.7 -0.4 -0.2 0.2 0.8 0.6 0.4 0.3 -0.2
0.03 0.2 0.5 0.3 0.2 0.1 -0.3 0.1 0.1 0.2 0.1 0.3
0.1 0.00 0.03 0.2 0.1 0.07 0.03 0.3 0.2 0.4 0.3 0.3
5

52
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les tableaux
On aura besoin d’un premier indice i pour parcourir
les lignes du tableau (chaque série de données) et d’un
deuxième indice j pour les colonnes (chiffre du mois).
Type Tablo=TABLEAU(1..3,1..12) de réels;
Var Tab_chiffres:Tablo;
Ou : Var Tab_chiffres:TABLEAU(1..3,1..12) de réels;
Ex: Tab_Chiffres(1,9) (*pour le taux d’inflation du mois de
septembre*) ;

53
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Contrairement aux tableaux, ce type structuré
permet de regrouper des données de types
différents.
Exemple : Code
Titre
Ouvrage Auteur
Editeur
date
54
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Ouvrage est une variable de type
enregistrement ; chacune de ses cinq données
constitue un champ pouvant être simple ou structuré.
Type Ident_Enreg = Enregistrement
Champ1 : type ;
Champ2 : type ;
…;
Champn : type ;
Fin;
55
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
La variable Ouvrage se déclare ainsi :
Type Livre=Enregistrement
Code:entier;
Titre:Chaîne[20];
Auteur:Chaîne[40];
Editeur:Chaîne[25];
Date=Enregistrement
Mois=1..12;
Annee=1900..2008;
fin;
Var Ouvrage:Livre;

56
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Pour exprimer une date sous la forme ‘lundi 23
Septembre 1996’, la déclaration est la suivante :
Type Date=Enregistrement
Jour=(lundi,mardi,mercredi,jeudi,vendredi,samedi,
dimanche);
Quantieme=1..31;

Mois=(janvier,février,mars,avril,mai,juin,juillet,août,septe
mbre,octobre,novembre,décembre);
Annee=1900..2008;
fin;
57
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Pour utiliser un champ, on préfixe le nom de
celui-ci avec le nom de la variable de type
enregistrement auquel il (ce champs) appartient :
Var Dat1:Date;

[Link]:=lundi;
[Link]:=19;
[Link]:=Mai;
[Link]:=2008;
58
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Autre exemple :
Var Ouvrage:Livre;

[Link]:=‘V. Hugo‘;
[Link]:=Octobre;
[Link]ée:=1995;
Cette écriture peut être simplifiée en utilisant
l’instruction Avec dont la syntaxe est la suivante :

59
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Avec Ident Faire
Début
Instruction(s) ;
FinAvec ;
Où Ident est une variable de type
Enregistrement et l’(es) Instruction(s) utilisant
directement les champs de l’enregistrement.

60
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Var Dat1:Date;
… Var Dat1:Date;
Avec Dat1 Faire …
Début [Link]:=lundi;
Jour:=lundi;
Quantieme:=19; [Link]:=19;
Mois:=mai; [Link]:=mai;
Annee:=2008; [Link]:=2008;
FinAvec; …
61
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.2. Les types structurés
[Link]. Les enregistrements
Var Ouvrage:Livre;

Avec Ouvrage Faire
Début
Auteur:=‘V. Hugo‘
Avec Dat1 Faire
Début
Mois:=Octobre;
Annee:=1995;
FinAvec;
FinAvec;
62
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
Un fichier est un ensemble de données qui peut
servir soit à la lecture pour rentrer des informations,
soit à l’écriture pour sauvegarder les résultats obtenus.
Les fichiers sont caractérisés par deux notions :
le mode d’organisation et le mode d’accès.
Nous nous limiterons, par souci de facilité, aux
fichiers textes et aux fichiers d’enregistrements.
Ainsi, la syntaxe pour la déclaration d’un fichier
est la suivante :
63
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
Nom_du_fichier : FICHIER de Type ;
Où Type est le type des informations
contenues dans le fichier et Nom_du_fichier est le
nom interne du fichier qui doit être différent du nom
externe (effectif) du fichier. Ainsi, une
correspondance doit être établie entre les deux
noms de fichiers pour toute manipulation.
Toute manipulation d’un fichier nécessite trois
phases :
64
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
Ouverture du fichier :
OUVRIR(Nom_du_fichier)
Traitement du fichier :
LIRE(Nom_du_fichier, …) ;
ECRIRE(Nom_du_fichier, …) ;
AJOUT(Nom_du_fichier, …) ;
Fermeture du fichier :
FERMER(Nom_du_fichier)
65
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers texte
Les fichiers de type Texte sont des fichiers
séquentiels (et en mode d’organisation et en accès).
3 opérations sont définies sur ce type de fichiers :
La lecture ;
L’écriture ;
L’ajout (Le pointeur est positionné sur la marque de fin
de fichier (EOF) qui est décalée d’une position après
chaque rajout.

66
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers texte
Exemple :
Var Fich1 : Fichier de Texte ;
Pour i := 1 à 100 faire
Lire (Fich1, Tab(i)) ;
FinPour
Les données du fichier Fich1 sont lues et
stockées dans le tableau Tab.

67
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers texte
Ecrire (Fich1, Sal_Annuel) :
Ces informations sont stockées dans Fich1 à
l’endroit où se trouve le pointeur lors de cette
action.
Ajout (Fich1, Sal_Annuel) :
Ces informations sont rajoutées à la fin de
Fich1 et le pointeur reste sur la marque de fin de
fichier.
68
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers texte
Il n’y a que la fin du fichier qui est marquée
par un symbole repéré par la fonction
EOF(Nom_du_fichier), qui rend la valeur vraie si elle
le rencontre, la valeur faux sinon.
Un fichier séquentiel ne peut être ouvert qu’en
lecture ou en écriture. Après l’ouverture d’un fichier,
la première opération (Lire, Ecrire ou Ajout) indique
si le fichier est accessible en lecture ou en écriture.
69
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers texte
Ecrire et Ajout sont des opérations d’écriture ;
la seule différence est que pour Ecrire, le pointeur
se place en début du fichier, alors que pour Ajout, il
se place en fin du fichier.
Remarques :
La fonction EOF (Fich1) permet de tester si le pointeur est
sur la fin du fichier Fich1.
L’utilité des fichiers est la sauvegarde les données.
Il est préférable d’utiliser Ecrire à la place d’Afficher, quand
on utilise les fichiers.
70
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers d’enregistrements
C’est un ensemble d’enregistrements (ou
d’articles) de type structuré.

71
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers d’enregistrements
Type Etudiant=Enregistrement
Numero:entier;
NomPrenom:Chaîne[30];
Discipline:Chaîne[25];
Annee_Inscrip:1950..2008;
fin;
Var E1:Etudiant;
Fich_Etudiant:FICHIER de Etudiant;

[Link]:=134561;
[Link]:=’Mwenze Kasongo’;
[Link]:=’Sciences économiques’;
E1.Annee_Inscrip:=2006;
Ouvrir (Fich_Etudiant);
Ecrire (Fich_Etudiant,E1);
72
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers d’enregistrements
Type Etudiant=Enregistrement
Numero:entier; NomPrenom:Chaîne[30];
Discipline : Chaîne[25];Annee_Inscrip : 1950..2008;
fin ;
Var E1:Etudiant;
Fich_Etudiant:FICHIER de Etudiant;

Avec E1 faire
Début
Numero:=134561;NomPrenom:=’Mwenze Kasongo’;
Discipline:=’Sciences économiques’;
Annee_Inscrip:=2006;
FinAvec;
Ouvrir (Fich_Etudiant);
Ecrire (Fich_Etudiant,E1);
73
Algorithmique
2. Les éléments de base
2.4. Les autres types de données
2.4.3. Les Fichiers
[Link]. Les fichiers d’enregistrements
On peut traiter un fichier d’enregistrements de
manière séquentielle, mais son intérêt est de
permettre un accès direct aux données.
Lors de l’ouverture d’un tel fichier, le pointeur
est positionné sur le premier enregistrement. On peut
se déplacer directement sur n’importe quel
enregistrement avant une opération de lecture ou
d’écriture à l’aide de l’action :
Positionner (Nom_du_Fichier,
N°enregistrement)
Remarque : La taille d’un fichier de ce type est
déterminée par le nombre de ses enregistrements.
74
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
Dans la résolution d’un problème, on peut
constater qu'une suite d'actions revient plusieurs fois.
Dans ce cas, il serait judicieux de l'écrire une seule
fois, et de l'utiliser autant de fois que c'est
nécessaire, en effectuant des calculs avec des
données différentes.
Cette suite d'actions sera définie dans un sous
programme qui peut prendre soit la forme d’une
procédure, soit la forme d’une fonction.

75
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
D’autre part, on peut observer que certains
groupes d’actions se rapportent à des traitements
précis et différents. Il est souhaitable alors de
représenter chacun d’eux dans un sous programme,
ce qui permettra d’améliorer la conception du
programme et sa lisibilité.
On perçoit alors un programme comme un
ensemble de procédures/fonctions. La structuration
d’un programme par morceaux (modules) est la base
de la programmation structurée et modulaire.
76
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.1. La procédure
Une procédure est un sous programme qui peut
retourner 0, 1 ou plusieurs résultats.
[Link]. Définition de la procédure
Procédure nom_de_procédure (liste d’arguments :
type) ;
Début
Corps de la procédure ;
Fin ;
La première ligne s’appelle l’en-tête (ou la
signature) de la procédure. La liste d’arguments est
une suite de données à échanger avec d’autres
programmes.
77
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.1. La procédure
[Link]. Appel de la procédure
nom_de_la_procédure (liste
d’arguments) ;
Remarques :
Si une liste d’arguments apparaît dans la définition
d’un sous-programme, lors de l’appel à ce dernier,
elle doit également apparaître dans l’action d’appel ;
La liste d'arguments dans la définition d’un sous-
programme contient le type de chaque argument. Ce
n’est pas le cas de celle de l’appel.

78
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.1. La procédure
[Link]. Appel de la procédure
nom_de_la_procédure (liste
d’arguments) ;
Remarques :
Les listes d'arguments dans la définition d’un sous-
programme et dans son appel doivent correspondre.
C'est-à-dire, il doit y avoir le même nombre
d'arguments dans les deux listes. L’ordre
d’apparition des arguments dans les deux listes doit
être le même. Chaque argument d'une liste doit être
de même type que son homologue de l'autre liste.
79
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.1. La procédure
[Link]. Appel de la procédure
Exemple :
On veut écrire un algorithme qui calcule le
salaire des commerciaux d’une entreprise. Celui-ci
est composé d’un fixe différent d’un employé à un
autre et d’une prime d’intéressement de 10% du
chiffre d’affaire réalisé si celui-ci dépasse les 50000
F, de 3% sinon. On isolera la suite d'actions qui
permet de rentrer les salaires fixes de chacun ainsi
que leur chiffre d’affaire.

80
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.1. La procédure
[Link]. Appel de la procédure
Procédure Saisie (Var Sal,CA : entier) ;
Début
Lire (‘Entrer le salaire du commercial :‘,
Sal);
Lire (‘Entrer son chiffre d’affaire : ‘, CA) ;
Fin ;

81
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
Une fonction est un sous programme qui retourne
obligatoirement une valeur. Cette dernière sera stockée
dans une variable qui porte le même nom que la fonction.
[Link]. Définition de la fonction
Fonction nom_de_fonction (liste d’arguments : type) : type ;
Début
Corps de la fonction ;
Fin ;
Le nom de la fonction est utilisé comme
identificateur d’une variable, on déclare alors le type de
cette dernière.

82
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
Var:=expression (…nom_de_la_fonction (liste
d’arguments)…)
Exemple (suite) : De la même manière, on
isole les actions permettant de calculer la
commission de chaque commercial.

83
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
Fonction Commission (Montant : réel):réel;
Const plafond=50000;
Var taux:réel;
début
Si Montant≥plafond Alors taux:=0.1
Sinon taux:=0.03
FinSi;
Commission:=Montant*taux;
fin;
84
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
On peut construire un troisième sous
programme qui calculera le salaire de chacun.
Procédure Calcul_Salaire;
Var Salaire,Sal_fixe,Chif_Aff:réel;
début
Saisie (Sal_fixe, Chif_Aff);
Salaire:=Sal_fixe+Commission (Chif_Aff );
Afficher (‘Le salaire est de :’,Salaire);
fin;
85
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
Commentaires :
Les listes d’arguments sont optionnelles ;
La procédure Calcul_Salaire est le programme
appelant. La procédure Saisie et la fonction
Commission sont les programmes appelés ;
N’importe quel sous programme peut être
appelant ou appelé (il faut éviter les appels
circulaires) ;

86
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
Les arguments des procédures/fonctions appelées
sont les paramètres formels (ou fictifs). Ils peuvent
porter les mêmes noms (ou des noms différents) que
leurs correspondants des programmes appelant
qualifiés de paramètres réels (ou effectifs) ;
Dans la procédure Calcul_Salaire, à l’appel de la
procédure Saisie, les paramètres réels Sal_fixe,
Chif_Aff sont vides (ou contiennent plutôt n’importe
quoi). Au retour du sous programme, ils posséderont
respectivement le salaire et le chiffre d’affaire
réalisé ;
87
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.2. La fonction
[Link]. Appel de la fonction
Dans l’appel à la fonction Commission (action qui
calcule le salaire), le paramètre réel Chif_Aff
possède déjà la valeur du chiffre d’affaire retournée
par Saisie. Au retour de cette fonction, la variable
commission contiendra la valeur de la prime.

88
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.3. La portée des données
Les sous programmes communiquent entre
eux par des paramètres. Une Procédure/Fonction
peut avoir des variables internes qui ne sont pas
visibles par les autres. Il s’agit de variables locales.
Elles ne sont accessibles que par le sous­programme
où elles sont définies. Par conséquent, différents
sous-programmes peuvent avoir des variables
locales portant le même nom éventuellement.
Celles-ci n’auront pas la même signification pour
chacun d’eux. On dira également que la portée
d’une variable locale est le sous-programme où elle
a été définie.
89
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.3. La portée des données
Exemple : Sal_fixe et Chif_Aff sont des
variables locales à Calcul_Salaire.
Si une variable doit être accessible par tous
les sous-programmes, il faut la définir comme une
variable globale. Ce qui veut dire qu’elle est visible
par tout sous-programme et que sa valeur peut être
utilisée ou modifiée n’importe où. La portée d’une
variable globale est l’ensemble des sous-
programmes pouvant l’utiliser.

90
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.3. La portée des données
Remarques :
La déclaration des variables globales dépend du
langage de programmation utilisé. Certains les
définissent dans le programme principal
(programme d’appel aux Procédures/Fonctions) ;
d’autres dans une section spéciale.
La notion de portée s’applique également aux
constantes et aux types.
Exemple : Dans la fonction Commission, plafond est
une constante locale.
91
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.4. Le passage des paramètres entre sous-
programmes
Lors de l’échange de données entre sous-
programmes, on peut soit autoriser, soit interdire la
modification des valeurs.
Il existe deux modes de passage de paramètres :
passage par valeur : dans les sous-programmes
appelés, les valeurs des paramètres transmis sont
utilisées sans qu’il soit possible de les modifier. Les
paramètres formels contiennent une copie des valeurs
des paramètres réels.
Exemple : Dans la fonction Commission, la valeur
initiale du paramètre montant est conservée.
92
Algorithmique
2. Les éléments de base
2.5. La notion de sous-programmes
2.5.4. Le passage des paramètres entre sous-
programmes
passage par adresse : les sous-programmes appelés
peuvent modifier les valeurs des paramètres réels
transmis. Les paramètres formels contiennent
l’adresse des paramètres réels. Les modifications de
valeurs effectuées dans le programme appelé seront
effectives au retour dans le programme appelant.
Exemple : Dans la procédure Saisie, les valeurs
affectées aux paramètres formels Sal et CA seront
disponibles dans le programme appelant
Calcule_Salaire.

93
Algorithmique
3. Ordinogramme
3.1. Définition
Outil d’analyse de représentation graphique
de l’enchaînement logique des opérations.
3.2. Finalités
Visualiser une succession logique d’opérations ;
Faire apparaître des incohérences logiques ;
Aider à l’élaboration d’un processus ;
Représenter l’enchaînement des opérations ;
Analyser la logique de construction ;
Décrire et représenter l’enchaînement des
différentes tâches d'un processus.
3.3. Symboles
Pour la représentation de l’enchaînement des
opérations, on utilise les symboles suivants :
94
Algorithmique
3. Ordinogramme
3.3. Symboles
L’ovale représente le point de départ ou d’arrivée du
processus. Selon le cas, il y figurera le mot « Début » ou
le mot « Fin » dans le symbole.
Le rectangle représente une opération du processus,
dont la nature, résumée par une courte phrase
commençant par un verbe d’action, est indiquée à
l’intérieur du symbole.
Le losange représente un choix qui aboutit à des
opérations différentes selon qu’il est répondu « oui » ou
« non » à la question inscrite dans le symbole.

Le connecteur permet de relier un bloc à un autre situé


sur une autre page (ou à un autre emplacement).
Le parallélogramme permet l’entrer d’une information
(lecture) ou la sortie d’une information (écriture dans un
fichier ou afficher à l’écran).
Ce symbole est particulièrement utilisé pour la sortie
d’informations sur papier.
95
Algorithmique
3. Ordinogrammes
3.4. Les structures
Tout processus peut ainsi se décrire au
moyen de trois principales structures.
3.4.1. La structure consécutive
1 2 3

3.4.2. La structure alternative


? ?

1 2 1

Structure alternative réduite


96
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.3. Structure alternative multiple
(SELON)

10 11 12 13

20 20 20 20

97
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.4. Structure itérative
a) La structure Tant que

Oui Traitement
?

Non

98
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.4. Structure itérative
b) La structure répéter … jusque

No

Traitement
?

Oui

99
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.5. Règles de lisibilité
Un bon ordinogramme tient sur une ou deux
pages ;
Si un processus nécessite plusieurs pages pour être
décrit, il faut le décomposer en plusieurs sous-
processus ;
Les deux branches d’une alternative doivent être
symétriques ;
Les deux branches d’une alternative se rejoignent ;
On détermine un côté unique pour les remontées
de flux.
100
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.6. Exemple Début

Traitement

Traitement1 Traitement2

Fin

101
Algorithmique
3. Ordinogrammes
3.4. Les structures
3.4.7. Les avantages
une représentation claire et synthétique du
déroulement d’un processus ;
une approche précise d’un processus ;
une mise en évidence des incohérences.
3.4.8. Inconvénients
la lecture est parfois compliquée ;
il y a absence de quantification. Pour remédier à
cette situation, l’ajout d’une étiquette sous la tâche
est la seule possibilité de faire apparaître les
quantités ;
la dimension « QUI » (les acteurs) n’y figurent pas.
102
Algorithmique
4. Exercices
4.1. Faire un algorithme ainsi que le flowchart
correspondant qui affiche si un nombre donné est
parfait ou pas

103
Algorithmique
Algorithme parfait;
Var nombre,i,som:entier;
Début
Répéter
Aficher(‘Donner un nombre’);
Lire(nombre);
Jusqu’à nombre>1;
som:=0;
Pour i:=1 à (nombre div 2) faire
Si (nombre mod i)=0 Alors som:=som+i;
Si som=nombre Alors Afficher(nombre,’ est
parfait’)
sinon Afficher(nombre,’ n est pas parfait’);
Finsi;
Fin.
104
Algorithmique
Début

A
Afficher(‘Donner un nombre’)

Lire(nombre) V F
som=nombre

F
Nombre>1 Afficher(nombre, Afficher(nombre,
V ’ est Parfait’) ’ n’’est pas Parfait’)

Som←0

i←1
Fin
i<=(nombre div 2)

V
V F
(nombre mod i)=0

som←som+i

A
i←i+1

105
Algorithmique et Programmation

2 Partie :
ème

Introduction à
Python
106

Vous aimerez peut-être aussi