Beruflich Dokumente
Kultur Dokumente
LA
PROGRAMMATION
STRUCTUREE
page n° 1
Programmation structurée
SOMMAIRE
CARACTERISTIQUES GENERALES DE LA METHODE DE PROGRAMMATION STRUCTUREE..5
1APPARITION DE L'INFORMATIQUE.....................................................................................................6
1.1Définition de l'Informatique......................................................................................................................6
1.2Rôle de l'Informatique...............................................................................................................................7
1.3Spécificité de l'Informatique......................................................................................................................8
2 LE SYSTEME INFORMATIQUE............................................................................................................9
2.1Définition d'un système informatique........................................................................................................9
2.2Caractéristiques d'un système informatique.............................................................................................9
2.3Le programme ...........................................................................................................................................9
2.3.1Définition d'un programme...............................................................................................................................9
2.3.2Définition d'une instruction...............................................................................................................................9
2.3.3Représentation du système informatique........................................................................................................10
2.3.4Exemple de programme...................................................................................................................................10
2.3.5La programmation...........................................................................................................................................10
3CARACTERISTIQUES DE LA METHODE DE PROGRAMMATION STRUCTUREE.........................11
3.1 schéma de résolution d'un problème......................................................................................................11
3.2 Les phases de résolution d'un problème................................................................................................11
3.3Détail de la phase d'analyse....................................................................................................................11
3.3.1La démarche retenue.......................................................................................................................................12
3.3.2Principe de décomposition..............................................................................................................................13
3.3.3Détail de la méthode descendante...................................................................................................................13
3.3.4 Détail de la méthode Analyse ascendante .....................................................................................................14
3.3.5Les méthodes dirigées par les données...........................................................................................................14
3.3.6L'algorithme....................................................................................................................................................15
3.3.7Les tests...........................................................................................................................................................16
4 LA NECESSITE D'UNE METHODE.....................................................................................................17
4.1Caractéristiques et conséquences de la programmation sans méthode.................................................17
FORMALISME DE L'ENVIRONNEMENT D'UN PROBLEME.................................................................18
5NOTION DE PROCESSEUR ET D'ENVIRONNEMENT........................................................................19
6NOTION D'ACTION ET DE PRIMITIVE...............................................................................................20
6.1Définition d'une Action............................................................................................................................20
6.2Définition d'une Primitive.......................................................................................................................20
6.3Nouvelle approche de la notion d'Algorithme........................................................................................21
7NOTION D'OBJET..................................................................................................................................22
7.1Définition d'un objet................................................................................................................................22
7.2Caractéristiques d'un objet......................................................................................................................22
8NOTION DE CONSTANTE ET DE VARIABLE....................................................................................24
8.1 Intérêt des constantes.............................................................................................................................24
8.2Intérêt des variables................................................................................................................................24
9LES TYPES D'OBJET ET LEURS OPERATEURS ASSOCIES..............................................................25
9.1Le type entier...........................................................................................................................................25
9.2Le type réel..............................................................................................................................................25
9.3Le type booléen........................................................................................................................................25
9.4 Le type caractère....................................................................................................................................26
9.5Le type chaîne..........................................................................................................................................26
9.6Le type enregistrement............................................................................................................................26
9.7Le type pointeur.......................................................................................................................................26
10LES EXPRESSIONS ET LA PRIORITE DES OPERATEURS..............................................................27
10.1 Composition d'opérations élémentaires : Expressions........................................................................27
10.2Tableau des opérateurs par ordre de priorité décroissante.................................................................27
11LES PRIMITIVES DE BASE EN ALGORITHMIQUE..........................................................................28
11.1Notion de lecture...................................................................................................................................28
11.2Notion d'affectation...............................................................................................................................29
11.3Notion d'initialisation............................................................................................................................31
page n° 2
Programmation structurée
page n° 4
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
CARACTERISTIQUES
GENERALES DE LA METHODE
DE PROGRAMMATION
STRUCTUREE
page n° 5
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
1 APPARITION DE L'INFORMATIQUE
Depuis la nuit des temps l'homme cherche des solutions aux problèmes qu'il
rencontre.
REFLEXIO
PROBLEME SOLUTION
N
L'espèce humaine en évoluant a fait de plus en plus appel à des outils, des savoir-
faire et des modèles qu'elle inventait pour résoudre ses problèmes et modifier son
environnement.
Si l'on se réfère à la préhistoire, on peut citer, à titre d'exemples l'apparition des
outils en pierre taillée ,en pierre polie, puis en bronze et en fer.
On peut également trouver des exemples similaires dans des périodes plus
"contemporaines" comme l'apparition des mathématiques, de la règle à calcul, de la machine
à calculer etc...
Dans le cadre de cette perpétuelle évolution, les années d'après guerre ont vu
l'apparition d'un nouvel outil : l'informatique.
Le premier véritable ordinateur a été créé en 1942 à BERLIN : il s'agissait du Z3.
En 1946 on construit l'ENIAC qui suit le modèle inventé par Mr Von Neumann,
considéré comme le fondateur de l'informatique. Il comporte 800 km de fils, 18000 lampes,
50000 commutateurs et pèse 30 tonnes.
L'académie française l'a pour sa part défini en 1966 dans les termes suivants:
page n° 6
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
(INFORMATIQUE)
DONNE TRAITEMENT
E N°2
C
Les données B et C sont le résultat du traitement N°1 mais se sont également les
données initiales des traitements N°2 et 3
page n° 7
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
Un traitement
Un traitement est le déroulement systématique d'une suite d'opérations.
Une opération
Une opération est une action définie qui, appliquée à toute combinaison permise de
données, en effectue le transfert ou engendre une nouvelle donnée.
Un transfert
Un transfert est un déplacement de données sans modification de leur valeur.
EXEMPLES :
Opération arithmétique Opération le plus petit
ADDITION des nombres 3 + 5 = 8 de 3 et 5
Une opérande
Une opérande est une donnée à laquelle s'applique une opération.
Un opérateur
Un opérateur (dans le cas présent) est un symbole indiquant la nature de l'opération à
effectuer.
Ce qui fait sa spécificité c'est qu'elle est capable de traiter des quantités énormes de
données en très peu de temps.
En dehors de cela tout ce qui est réalisable par l'informatique peut l'être par d'autres
moyens (en y mettant le temps...).
page n° 8
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
2 LE SYSTEME INFORMATIQUE
SYSTEME
DONNEES RESULTATS
INFORMATIQUE
page n° 9
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
DONNEES
MEMOIRE
RESULTATS
UNITE de
TRAITEMENT
PROGRAMME
Entrez la Donnée1
Entrez la Donnée2
Faire Résultat = Donnée1 + Donnée2
Ecrire Résultat
On comprend le rôle joué par un programme dans le cadre du travail d'un ordinateur.
La réalisation d'un tel programme s'appelle la programmation.
2.3.5 La programmation
page n° 10
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
3 CARACTERISTIQUES DE LA METHODE DE
PROGRAMMATION STRUCTUREE
DONNEES
PROBLEME ORDINATEUR RESULTATS
PROGRAMME
ANALYSE CODAGE
page n° 11
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
Le but est d'obtenir des résultats, qui seront sous différentes formes: papier, fichier
magnétique, écran ... Ces résultats sont les sorties du programme.
PROGRAMME SORTIES
Pour produire ces résultats, tout programme utilise des données en entrée:
ENTREES PROGRAMME
Ces données doivent être définies, et le programmeur doit savoir où les trouver, ou
comment les fabriquer. C'est l'étude de:
L'ENSEMBLE DES DONNEES A UTILISER (E.D.U.)
C'EST L'ETUDE DU AVEC QUOI
Lorsque l'on sait ce que l'on veut obtenir et ce que l'on dispose pour arriver à ces fins,
il ne nous reste plus qu'à voir comment.
C'EST L'ETUDE DU COMMENT (ou UT unité de traitement)
page n° 12
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
ENTRE PROGRAMME
SORTIE
E
PROBLEME GLOBAL
AI1 AE AI3 AE
AE3
2 4
page n° 13
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
Pour atteindre le niveau de décomposition suivant, chaque action non élémentaire est
divisée en plusieurs sous-actions ou actions intermédiaires. Du point de vue de
l'environnement, ceci conduit à l'apparition de nouveaux éléments.
page n° 14
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
3.3.6 L'algorithme
page n° 15
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
3.3.7.1 Intérêt
En programmation, il n'est pas concevable de livrer un programme qui "marche
presque dans tous les cas". Aussi la phase de test est impérative avant de délivrer "l'Aptitude
au service" pour un programme.
Seuls ces tests nous permettrons d'être sûr de la qualité de notre produit.
3.3.7.3 La trace
La trace est un tableau représentant le déroulement séquentiel du jeu d'essai. Elle ne
constitue en aucun cas une preuve de correction de l'algorithme mais permet de concrétiser
son déroulement, et par là même de faciliter sa compréhension.
page n° 16
Programmation structurée Caractéristiques générales de la méthode de programmation structurée
page n° 17
Programmation structurée Formalisme de l’environnement d’un problème
FORMALISME DE
L'ENVIRONNEMENT D'UN
PROBLEME
Page n° 18
Programmation structurée Formalisme de l’environnement d’un problème
Dans le cas des énoncés EXI et EXII une personne sachant lire et disposant des
ustensiles nécessaires, peut être un processeur convenable.
Pour qu'un processeur puisse mener à terme la tâche qui lui a été confiée, il faut
mettre à sa disposition les outils et matériaux indispensables.
Dans l'exemple I, les ustensiles seront : des pommes de terre, un couteau, une
friteuse, de l'huile.
Pour exécuter son travail, le processeur va, à l'aide des outils, mesurer et modifier les
matériaux et, par conséquent, modifier son environnement.
page n° 19
Programmation structurée Formalisme de l’environnement d’un problème
On appelle ACTION tout événement de durée finie dans le temps qui examine ou
modifie l'environnement.
Ou encore
On constate que si les actions 1 et 2 sont réalisables telles qu'elles par la personne, il
n'en est pas de même pour l'action 3 qui doit être décomposée pour être réalisée.
Pour un processeur, une action est primitive si l'énoncé de cette action est à lui seul
suffisant pour que le processeur puisse l'exécuter sans information supplémentaire.
page n° 20
Programmation structurée Formalisme de l’environnement d’un problème
Toute action à exécuter par un processeur doit être décomposée en utilisant les
primitives de ce processeur.
Nous avons vu qu'un algorithme est la description dans un langage universel des
opérations nécessaires pour résoudre un problème.
Il est possible d'aborder cette notion d'une autre manière en considérant qu'un
algorithme du problème est une succession d'actions qui permet de faire passer
l'environnement de l'état initial donné à l'état final désiré, succession telle que chaque action
soit :
- une primitive,
- ou bien un algorithme déjà connu et décrit.
page n° 21
Programmation structurée Formalisme de l’environnement d’un problème
7 NOTION D'OBJET.
Exemple : Pour effectuer l'action "Clouer deux planches", le menuisier a besoin des
objets PLANCHE - MARTEAU - POINTE.
On constate donc la nécessité de citer la nature des objets que l'on veut manipuler et
de ne pas les utiliser n'importe comment.
Le fait que ces éléments aient des noms distincts permet de les distinguer sans
ambiguïté.
Conseil :Le choix du nom est très important, il doit évoquer le plus clairement
possible le rôle joué par l'objet afin d'assurer la lisibilité de l'algorithme. Ne pas se laisser
tenter par la facilité qui consiste à choisir des identificateurs courts et vite écrits car leur
valeur mnémotechnique est faible voire nulle.
Chaque objet est destiné à une utilisation bien particulière et les utilisations ne sont
pas interchangeables (on ne peut pas impunément planter un marteau avec une pointe).
Pour marquer ces particularités nous dirons que les objets sont de TYPES différents.
page n° 22
Programmation structurée Formalisme de l’environnement d’un problème
Le TYPE d'un objet détermine l'ensemble dans lequel l'objet prend ses valeurs.
Modalité de déclaration :
- Pour décrire des objets de même nature et admettant les mêmes opérateurs, il
suffit d'avoir décrit le type une fois pour toutes et d'annoncer que tel ou tel objet est de tel ou
tel type.
☞On dispose d'un moyen pour détecter un certain nombre d'erreurs sans
exécuter le programme, simplement par l'examen des opérations effectuées sur les objets et en
contrôlant qu'elles sont licites.
Exemple : On pourrait définir le type PEINTURE par l'énoncé des états possibles
suivants : (FRAICHE - SECHE - MOLLE - DURCIE).C'est l'ensemble des états qui constitue
la définition du type.
Un objet de TYPE PEINTURE pourrait prendre l'un des quatre états ci-dessus.
Le type d'un objet est un attribut de cet objet invariable dans le temps.
La VALEUR d'un objet indique son état à un moment bien déterminé et est variable
dans le temps.
page n° 23
Programmation structurée Formalisme de l’environnement d’un problème
Rappel : tout algorithme se compose d'une suite d'actions à exécuter ( ces actions
sont encore appelées instructions).
L'intérêt d'une variable est de nommer un objet dont la valeur peut évoluer au cours de
l'algorithme pour aboutir à un résultat final.
Ainsi la variable apparaît comme une "boîte" ou "casserole" dont le contenu peut être
modifié au cours du déroulement de l'algorithme. A tout moment, le contenu de cette boite,
est appelé valeur de la variable. Il suffit de citer le nom de la variable pour accéder à la valeur
qu'elle contient.
page n° 24
Programmation structurée Formalisme de l’environnement d’un problème
Les valeurs sont des nombres réels en notation anglo-saxonne pour la virgule ( le
séparateur est le point).
Les opérations associées sont les mêmes que pour les nombres entiers.
Les opérateurs associés sont les opérateurs logiques NON, OU, ET ainsi que les
opérateurs de comparaison: = (égal) , # ou < > (différent), < (inférieur), > (supérieur),
< = (inférieur ou égal à ), >= ( supérieur ou égal à ).
page n° 25
Programmation structurée Formalisme de l’environnement d’un problème
Pour éviter de confondre une chaîne de caractères avec le nom d'une variable, on la
représente toujours entre deux apostrophes. Comme avec les caractères, ces deux apostrophes
délimitent le début et la fin de la chaîne et ne sont pas à considérer comme faisant partie de la
chaîne.
Comme pour le type caractère, les opérateurs associés sont les opérateurs d'égalité et
de comparaison.
Ce type étant modulable à volonté il faudra le définir avec précision chaque fois que
l'on voudra l'employer.
9.7 Le type pointeur.
Cité pour mémoire.
page n° 26
Programmation structurée Formalisme de l’environnement d’un problème
Une expression peut être définie comme une combinaison d'objets de base et
d'opérateurs pris parmi ceux qui correspondent au type d'objet concerné.
Exemple : Soient A, B, C, D de type ENTIER
A + B * C / D est une expression
Pour lever toute ambiguïté, à chaque opérateur est associé une priorité permettant de
classer les opérateurs entre eux.
Les règles suivantes représentent l'ordre des calculs
− Une opération, est à évaluer en premier, si sa priorité est plus forte que celle des
opérations adjacentes.
− En cas d'égalité des priorités, l'évaluation a lieu de gauche à droite.
− Le parenthèsage force l'ordre d'évaluation.
page n° 27
Programmation structurée Formalisme de l’environnement d’un problème
Il peut arriver qu'une valeur ne fasse pas partie de l'environnement d'un travail : pour
pouvoir enregistrer cette valeur, il sera nécessaire de la faire entrer dans l'environnement.
L'instruction de lecture permet donc d'affecter à une variable une valeur saisie au
clavier ou une valeur lue dans un fichier. On précise l'endroit où se fait la lecture.
Les valeurs doivent alors être rentrées dans l'ordre de leur affectation et être du
même type que chaque identificateur auquel elles correspondent.
Conventions :
page n° 28
Programmation structurée Formalisme de l’environnement d’un problème
On considérera que par défaut l'instruction lire se fait à partir du clavier. Il ne sera
donc pas nécessaire dans ce cas le spécifier.
Dans un environnement donné, pour attribuer à une variable une valeur qui provient
de ce même environnement, nous conviendrons d'utiliser la notation suivante:
Ident ← Val
− une constante,
Il est important de bien noter que les deux entités qui, dans une affectation,
apparaissent de part et d'autre du signe ← , doivent toujours être du même type ou de
type compatible
page n° 29
Programmation structurée Formalisme de l’environnement d’un problème
L'affectation de valeur à une variable peut-être effectuée autant de fois que l'on veut
au cours du programme. La valeur de la variable sera alors modifiée à chaque affectation.
Exemples :
A) Note1 ← 12 Note1 ← 13
L'action A affecte à la variable Note1 la valeur numérique 12, puis écrase cette
valeur avec 13.
B) Prenom ← 'Pierre'
C) Total ← Somme
L'action C représente une affectation dans laquelle la valeur à affecter est indiquée
par une variable. Les deux variables Total et Somme doivent bien sûr être de même type.
Exemple : les variables Total et Somme ont respectivement pour valeur 124 et 18
avant l'instruction d'affectation. Après exécution de l'opération d'affectation, elles auront
toutes les deux la valeur 18.
L'action D affecte à la variable Somme le résultat d'un calcul arithmétique. Les trois
variables concernées doivent être du même type.
page n° 30
Programmation structurée Formalisme de l’environnement d’un problème
Lorsque l'on utilise une variable dans une expression ou une instruction, il est
absurde d'effectuer un traitement sur cette variable si son contenu est inconnu. Il faut donc
avant toute utilisation initialiser cette variable, c'est à dire lui donner une première valeur.
Cette initialisation est d'autant plus importante qu'une variable qui n'a pas été
initialisée contient une valeur aléatoire qui faussera tous les calculs que l'on pourrait
effectuer sur cette variable avant son initialisation.
A retenir
Après la déclaration d'une variable, l'état initial de sa valeur n'ayant pas été précisée,
celle-ci est indéterminée.
page n° 31
Programmation structurée Formalisme de l’environnement d’un problème
Conventions :
On considérera que l'instruction écrire se fait par défaut sur l'écran. Il ne sera donc
pas nécessaire de le spécifier dans ce cas.
En résumé
L'action Lire (Val) affecte une nouvelle valeur à Val, l'action Ecrire (Val) ne
modifie en rien la valeur de la variable.
11.5 Les Commentaires
page n° 32
Programmation structurée
Page n° 33
Programmation structurée Structure générale d’un algorithme
Un algorithme du problème est une succession d'actions qui permet de faire passer
l'environnement de l'état initial donné à l'état final désiré, succession telle que chaque action
soit :
- une primitive,
- ou bien un algorithme déjà connu et décrit (encore appelé par abus de langage
sous-programme).
Dans tout programme écrit en langage de description ou autrement dit dans tout
algorithme, on distingue une première méthode d’écriture qui se compose de trois parties:
- la partie déclaration ,
- la partie définition des arguments,
- la partie instructions.
Et une deuxième méthode qui elle ne se compose que de deux parties :
- la partie déclaration ,
- la partie instructions ( identique dans les deux méthodes ).
page n° 34
Programmation structurée Structure générale d’un algorithme
La partie déclaration rassemble la liste descriptive des constantes et des variables que
le programmeur se définit pour écrire son algorithme. Ces objets sont donc déclarés UNE
SEULE FOIS en début d'algorithme.
Cette déclaration se fait sous la forme d'un tableau comportant pour les variables :
Après avoir écrit le nom de l’algoritme on écrira simplement sur la ligne suivante :
VARIABLES
Nom_de_la_variable : son_type
Nom_de_la_variable : son_type
Nom_de_la_variable : son_type
page n° 35
Programmation structurée Structure générale d’un algorithme
CONSTANTES
NOM_DE_LA_CONSTANTE = valeur
NOM_DE_LA_CONSTANTE = valeur
NOM_DE_LA_CONSTANTE = valeur
Les variables utilisées en paramètres d'un algorithme sont décrites sous la forme d'un
tableau. On distingue les paramètres données, des paramètres résultats.
DONNEES : V1, V2
RESULTATS : V3,V4
( SERA DETAILLE PLUS LONGUEMENT DANS LE CHAPITRE NOTION DE
SOUS_PROGRAMME )
13.4 Définition des paramètres méthode n°2 :
ALGORITHME Nom_de_l'algorithme()
Le bloc d’instructions est délimité par le terme DEBUT avant la première instruction
et le terme FIN après la dernière.
page n° 36
Programmation structurée Structure générale d’un algorithme
14 EXERCICE RECAPITULATIF
METHODE N°1
Déclaration des variables
DONNEES :
RESULTATS :
Instructions
ALGORITHME MOYENNE ( )
DEBUT
Moyenne ← Somme / 2
ECRIRE (Moyenne)
FIN
page n° 37
Programmation structurée Structure générale d’un algorithme
METHODE N°2
ALGORITHME MOYENNE ( )
VARIABLES
note1 : entier
note2 : entier
somme : entier
moyenne : réel
DEBUT
moyenne ← somme / 2
ECRIRE (moyenne)
FIN
page n° 38
Programmation structurée
L'ORDONNANCEMENT
Page n° 39
Programmation structurée L’ordonnancement
Jusqu'à présent nous nous sommes contentés de décrire une démarche permettant en
théorie de résoudre un problème. Mais notre but est bien de faire effectuer le travail par un
ordinateur. Or l'organe central de l'ordinateur (le processeur) travaille séquentiellement, c'est-
à-dire en effectuant une opération après l'autre. Il faut donc lui préciser l'ordre dans lequel on
veut qu'il effectue ces opérations : c'est l'objectif de l'ordonnancement.
Page n° 40
Programmation structurée L’ordonnancement
La cafetière est prête à fonctionner (elle est branchée), seuls manquent l'eau, le café,
et le filtre (ce sont les objets manipulés ou données du problème).
Eau
CAFETIERE Café liquide
Café
Filtre
EDO et EDU
Ce schéma global reste vague, et donc trompeur : en effet si nous mettons de l'eau,
du café, un filtre dans la cafetière dans n'importe quel ordre, nous avons peu de chance
d'obtenir quelque chose de buvable.
L'étude des données ( ou résultat) à obtenir ainsi que celle des données à utiliser sont
triviales et ne nécessitent aucune précision supplémentaire dès lors que l'énoncé du problème
a été correctement exposé.
page n° 41
Programmation structurée L’ordonnancement
Dans un premier temps nous considérerons ces actions suffisamment simples pour
être traitées sans décomposition supplémentaire.
Nous avons donc déterminé les différentes actions nécessaires pour faire du café.
On peut considérer que la décomposition est suffisante pour que l'on puisse effectuer chacune
des actions sans difficulté.
Jusqu'à présent on ne s'est pas soucié de l'ordre dans lequel vont s'effectuer les
traitements. La méthode a été déroulée de manière statique.
Il est néanmoins évident que ces différentes actions ne peuvent être effectuées dans
un ordre quelconque. Il ne faut pas mettre la charrue avant les boeufs.
16.4 Nécessité et caractéristiques de l'ordonnancement
Ces actions doivent maintenant être ordonnancées pour être exécutées
séquentiellement par l'ordinateur.
Cet exemple étant tiré de la vie courante, il est bien évident que l'ordonnancement
relève ici du simple bon sens et correspond à la chronologie des actions que vous devez vous
même adopter (en tant que processeur manuel) lorsque vous voulez faire du café.
page n° 42
Programmation structurée L’ordonnancement
Il ne faut cependant pas perdre de vue que pour un ordinateur, rien ne relève de
l'évidence et donc que tout doit lui être clairement défini.
Les actions seront exécutées une seule fois et séquentiellement c'est-à-dire les unes après
les autres dans l'ordre normal de la lecture.
Nous pouvons remarquer, qu'en toute logique, seules certaines actions peuvent être
permutées sans introduire de changement dans le déroulement de la fabrication du café.
- 2) Mettre un filtre.
page n° 43
Programmation structurée L’ordonnancement
17 EN RESUME
L'utilisation de la méthode permet de hiérarchiser le découpage de notre problème en
éléments simples que nous savons traiter. Cependant cette hiérarchisation ne nous donne
qu'une vue statique de note résolution.
Cette vision n'est pas suffisante pour écrire correctement l'algorithme qui correspond
à notre problème.
Il est pour cela nécessaire d'ordonnancer nos éléments afin de définir l'ordre dans
lequel ils devront être exécutés. Nous aboutissons ainsi à l'écriture d'une structure
séquentielle.
page n° 44
Programmation structurée Application de la méthode aux alternatives et itérations
APPLICATION DE LA METHODE
AUX ALTERNATIVES ET
ITERATIONS
page n° 45
Programmation structurée Application de la méthode aux alternatives et itérations
T1
Les structures fondamentales utilisées pour écrire les algorithmes sont au nombre de 3.
e1
s2
page n° 46
Programmation structurée Application de la méthode aux alternatives et itérations
SI Condition
ALORS T1 condition
SINON T2
FINSI
T1 T2
Condition désigne une expression booléenne dont la valeur est VRAI ou FAUX.
T1 et T2 désignent une suite d'instructions (pouvant elles mêmes être des structures
alternatives).
La structure alternative est une structure parenthésée, chaque partie étant délimitée par les
symboles SI, ALORS, SINON et FINSI.
Le traitement T2 est facultatif.
Exemple :
ALGORITHME MAXIMUM_DE_DEUX_NOMBRES
VAR
A, B : ENTIER DCO les deux nombres à comparer FCO
MAX : ENTIER DCO le plus grand FCO
DEBUT
ECRIRE('Entrez le premier nombre :')
LIRE(A)
ECRIRE('Entrez le deuxième nombre :')
LIRE(B)
SI A >= B
ALORS MAX ← A
SINON MAX ← B
FINSI
ECRIRE('le maximum de ', A,' et de ',B,' est : ',MAX)
FIN
page n° 47
Programmation structurée Application de la méthode aux alternatives et itérations
La notion d'itération est l'une des notions fondamentales de l'algorithmique. Elle est utilisée
lorsque l'on doit exercer plusieurs fois le même traitement sur un même objet.
Si le nombre de répétitions est grand, il serait fastidieux de réécrire n fois le même algorithme
et même impossible si n était inconnu.
Théorème : Tout programme propre peut être ramené à l'un de ces trois types de
structures.
page n° 48
Programmation structurée Application de la méthode aux alternatives et itérations
18.5 Exercices
La solution des exercices qui suivent se trouve en fin de ce chapitre.
page n° 49
Programmation structurée Application de la méthode aux alternatives et itérations
Expression
T1 T2 T3 T4
page n° 50
Programmation structurée Application de la méthode aux alternatives et itérations
En pseudo-langage, on écrira
Au CAS expression =
valeur1 : T1
valeur2 :
DEBUT
T21
T22
FIN
valeur3 : T3
valeur4 : T4
AUTRE
T_autre
FIN CAS
19.2 La répétition
e
On effectue le traitement T.
Si la condition est FAUX,
on recommence le traitement T.
L'itération se terminera lorsque T
la condition (de sortie) sera VRAI.
condition
FAUX
s VRAI
REPETER
T
JUSQU'A condition
page n° 51
Programmation structurée Application de la méthode aux alternatives et itérations
Exercice :
Traduire le schéma suivant :
T1
VRAI
condition
FAUX
T2
page n° 52
Programmation structurée Application de la méthode aux alternatives et itérations
Un article est vendu 12,5 Frs l'unité si la quantité demandée est inférieure à 100. Il
est vendu 40 % moins cher si la quantité demandée est supérieure ou égale à 100 unités.
On souhaite écrire un programme qui affiche le prix unitaire à payer ainsi que le
montant global de la facture en fonction d'une quantité achetée, saisie au clavier.
Ecriture de l'algorithme
ALGORITHME FACTURE ()
CONSTANTE
PU = 12,5
VARIABLES
qte : entier
prix_ven : réel
DEBUT
ECRIRE ("Quantité achetée?")
LIRE(qte)
ECRIRE ("FACTURE")
ECRIRE ("Quantité achetée", qte)
ECRIRE ("Prix de vente unitaire", prix_ven)
ECRIRE ("Total facture", prix_ven * qte)
FIN
On peut ici entrevoir l'utilité de la déclaration de constante. Si le prix unitaire varie,
il n'est pas nécessaire de parcourir tout le programme pour changer la valeur 12,5 chaque fois
qu'on l'a utilisée. Il suffit de la changer une fois et une seule dans le pavé de déclaration des
constantes.
page n° 53
Programmation structurée Application de la méthode aux alternatives et itérations
SIMPLIFICATION DE LA CONDITION
On aurait pu affecter arbitrairement le prix unitaire de référence au prix de
vente et changer ce prix uniquement si la quantité commandée était supérieure ou égale à 100.
ALGORITHME FACTURE ( )
DEBUT
prix_ven PU
ECRIRE ("Quantité achetée?")
LIRE(qte)
SI Qté > = 100
ALORS
prix_ven PU * 0,6
FINSI
ECRIRE ("FACTURE")
ECRIRE ("Quantité achetée", qte)
ECRIRE ("Prix de vente unitaire", prix_ven)
ECRIRE ("Total facture", prix_ven * qte)
FIN
Cette façon de faire nous fait découvrir une structure simplifiée de l'alternative
SOIT SOIT . Elle peut se résumer sous la forme :
SI condition ou booléen
ALORS
Instruction 1
Instruction 2
FINSI
page n° 54
Programmation structurée Application de la méthode aux alternatives et itérations
Ecrire un algorithme qui affiche en clair un mois à l'écran à partir de son numéro
saisi au clavier.
L’algorithme sera traité dans un premier temps, avec une structure ‘’SOIT
SOIT’’, dans un deuxième temps avec une structure "AU CAS OU".
Ecriture de l'algorithme
Résolution en utilisant des alternatives "SOIT SOIT" imbriquées.
ALGORITHME MOIS ()
VARIABLE
num_mois : entier
DEBUT
ECRIRE ("Entrez le numéro du mois")
LIRE(num_mois)
SI num_mois = 1
ALORS
ECRIRE("Janvier")
SINON
SI num_mois = 2
ALORS
ECRIRE("Février")
SINON
SI num_mois =3
ALORS
ECRIRE("Mars")
SINON
SI num_mois =4
ALORS
ECRIRE("Avril")
SINON
..........................
..........................
FINSI
FINSI
FINSI
FINSI
FIN
page n° 55
Programmation structurée Application de la méthode aux alternatives et itérations
ALGORITHME MOIS ( )
VARIABLE
num_mois : entier
DEBUT
LIRE(num_mois)
AU CAS num_mois =
01: ECRIRE("Janvier")
02: ECRIRE("Février")
03: ECRIRE("Mars")
04: ECRIRE("Avril")
05: ECRIRE("Mai")
06: ECRIRE("Juin")
07: ECRIRE("Juillet")
08: ECRIRE("Août")
09: ECRIRE("Septembre")
10: ECRIRE("Octobre")
11: ECRIRE("Novembre")
12: ECRIRE("Décembre")
FIN CAS
FIN
page n° 56
Programmation structurée Application de la méthode aux alternatives et itérations
Enoncé de l'exercice n° 3
Ecrire un algorithme qui permet l'affichage des 9 tables de multiplication, avec une
ligne blanche entre chaque table.
Ecriture de l'algorithme
ALGORITHME TABLES_MULTI ()
VARIABLES
i, j : entier
DEBUT
FAIRE
FAIRE
FINFAIRE
SAUT DE LIGNE
FINFAIRE
FIN
page n° 57
Programmation structurée Application de la méthode aux alternatives et itérations
Enoncé de l'exercice n° 4
Ecrire un algorithme qui lit un entier N strictement positif au clavier et qui, si N est
pair, effectue la somme des N premiers entiers et l'affiche.
Ecriture de l'algorithme
ALGORITHME CALCUL ( )
VARIABLES
nbre , i , somme : entier
DEBUT
somme 0
REPETER
ECRIRE(‘Entrez un nombre entier strictement positif’)
LIRE (nbre)
JUSQU’A nbre > 0
Si nbre MOD 2 = 0
ALORS
SINON
ECRIRE (‘Le nombre : ‘, nbre, ‘ n’est pas pair’)
FINSI
FIN
page n° 58
Programmation structurée Application de la méthode aux alternatives et itérations
ALGORITHME VIN ( )
CONSTANTES
TAUX = 0.1
PORT_NUL = 500
PORT_MINI = 10
TVA = 1,196
VARIABLES
q : entier
p , port , p_ht : réel
DEBUT
dco Initialisation du port à zéro fco
port 0
FIN
page n° 59
Programmation structurée Application de la méthode aux alternatives et itérations
EXERCICE ‘Facture E. D. F
ALGORITHME FACTURE_EDF ( )
CONSTANTES
BORN1 = 100
BORN2 = 500
TAR_1 = 0.5
TAR_2 = 0.4
TAR_3 = 0.35
LOC = 250
TVA = 1,196
VARIABLES
Rel_M_1 , Rel_M , Conso: entier
Prix_HT : réel
DEBUT
REPETER
page n° 60
Programmation structurée Application de la méthode aux alternatives et itérations
ALGORITHME JEU_OIE ()
VARIABLES
Place , Nbre_coup , Score : entier
DEBUT
dco Initialisation des variables fco
Place 0
Score 0
Nbre_coup 0
REPETER
dco Boucle pour la vérification de la valeur des deux dés comprise entre 2 et 12
fco
REPETER
page n° 61
Programmation structurée Application de la méthode aux alternatives et itérations
dco Vérification si la place est égale à 58, et si oui retourner à la case départ fco
SI Place = 58
ALORS
Place 0
FINSI
JUSQU'A Place = 66
page n° 62
Programmation structurée Notion de sous-programmes
NOTION DE SOUS-PROGRAMME
Page n° 63
Programmation structurée Notion de sous-programmes
21 LE SOUS-PROGRAMME
Un programme est une suite ordonnée d'instructions établie en vue d'un traitement par
un ordinateur.
Lorsque des séquences d'instructions se répètent plusieurs fois dans des programmes, il
est intéressant de ne les écrire qu'une seule fois et de mettre au point des méthodes
permettant de les utiliser à volonté.
C'est le but des sous-programmes.
- un NOM d'appel,
- des paramètres.
21.3 Les paramètres
Page n° 64
Programmation structurée Application de la méthode aux alternatives et itérations
PROGRAMME PRINCIPAL ( )
S-PROG financement ( )
FIN
FIN
page n° 65
Programmation structurée Fonctions et procédures
FONCTIONS ET
PROCEDURES
Page n° 66
Programmation structurée Fonctions et procédures
22 NOTION DE PARAMETRE.
Ecriture de l'algorithme.
ALGORITHME FACTURE ()
CONSTANTE
PU = 12,5
VARIABLES
qte : entier
prix_ven , total_fac : réel
DEBUT
ECRIRE ("Quantité achetée?")
LIRE(qte)
ALORS
prix_ven ### PU * 0,6
SINON
prix_ven ### PU
FINSI
Page n° 67
Programmation structurée Fonctions et procédures
Pour simplifier ces opérations et afin de ne pas avoir dans chacun des
programmes à réécrire l'algorithme, nous allons paramètrer l'algorithme afin de
lui permettre de travailler directement sur les variables utilisées par les
différents utilisateurs.
CONSTANTE
PU = 12,5
VARIABLES
prix_ven : réel
DEBUT
ALORS
prix_ven ### PU * 0,6
SINON
prix_ven ### PU
FINSI
page n° 68
Programmation structurée Fonctions et procédures
Un paramètre effectif est une variable utilisée dans un appel à la place d'un
paramètre formel.
page n° 69
Programmation structurée Fonctions et procédures
Calcul(2,3,U)
2, 3 et U sont les paramètres effectifs de l'appel.
Le résultat de cet appel affecte à U la valeur 6.
− Les paramètres-données
− Les paramètres-résultats
− z un paramètre-résultat
page n° 70
Programmation structurée Fonctions et procédures
Dans un passage par valeur, c'est la valeur du paramètre et non son nom qui est
transmis au sous-programme.
page n° 71
Programmation structurée Fonctions et procédures
a E01 2
Programme
b E02 3
Passage par appelant
valeur (copie c E03
de la valeur)
E04
Passage E05
par adresse E06 Redirection du résultat
(copie de l’adresse)
E07
x E08 2
y E10 3 Programme
z appelé
E11 E03
E12
page n° 72
Programmation structurée Fonctions et procédures
Les variables locales, déclarées dans les parties Déclaration des différents
sous-programmes, ne sont accessibles que par celles-ci, c'est à dire qu'elles ne peuvent
être utilisées que dans les instructions du sous-programme où elles sont déclarées.
23.1 Intérêts
23.2 Caractéristiques
page n° 73
Programmation structurée Fonctions et procédures
Une fonction possède des arguments qui correspondent aux informations qui
lui sont transmises afin qu'elle fournisse un résultat principal (unique et simple). Ce
résultat est désigné par le nom même de la fonction ou par le mot réservé resultat.
Toute procédure qui ne comporte qu'un paramètre résultat peut être remplacée
par une fonction.
page n° 74
Programmation structurée Fonctions et procédures
23.6 EXERCICE N° 5
Enoncé de l’exercice n° 5
Ecrire un programme qui permette, après avoir saisi 3 entiers, de les afficher
dans l'ordre croissant.
Ecrire une fonction MAX qui permette de retourner le plus grand de deux
entiers passés en paramètres.
Ecrire une fonction MIN qui permette de retourner le plus petit de deux entiers
passés en paramètres.
Ecrire une fonction GRAND qui permette de retourner le plus grand de trois
entiers passés en paramètres, en utilisant la fonction MAX.
Ecrire une fonction PETIT qui permette de retourner le plus petit de trois
entiers passés en paramètres, en utilisant la fonction MIN.
Ecrire une fonction MOYEN qui permette de retourner l'élément du milieu
entre trois entiers passés en paramètres, en utilisant les fonctions précédemment
étudiées.
page n° 75
Programmation structurée Fonctions et procédures
Ecriture de l'algorithme
Instructions
Algorithme Principal
DEBUT
SI a > b
ALORS
Resultat ← a
SINON
Resultat ←b
FINSI
FIN
DEBUT
SI a < b
ALORS
resultat ← a
SINON
Resultat ← b
FINSI
FIN
page n° 76
Programmation structurée Fonctions et procédures
DEBUT
Resultat ← MAX(a,MAX(b,c))
FIN
DEBUT
Resultat ← MIN(a,MIN(b,c))
FIN
DEBUT
Resultat ← PETIT(MAX(a,b),MAX(b,c),MAX(a,c))
PROCEDURE TRI ( )
VARIABLES
x, y, z : entier
DEBUT
ECRIRE("Entrez trois entiers:")
LIRE(x,y,z)
ECRIRE("Les voici en ordre croissant:",PETIT(x,y,z),
MOYEN(x,y,z),GRAND(x,y,z))
FIN
DEBUT
DCO UTILISATION DE LA PROCEDURE TRI FCO
FIN
page n° 77
Programmation structurée
Page n° 78
Programmation structurée Les structures de données statiques
24 LES TABLEAUX
Lorsqu'on regroupe des objets, il est fréquemment utile de pouvoir faire un accès direct à
un objet particulier du groupe, sans avoir à considérer séquentiellement tous ceux qui le
précédent dans le groupe. La notion de table et ses réalisations sous forme de tableau et de fichier
à accès direct répondent à ces besoins.
24.2 Caractéristiques
Un tableau est une collection finie et ordonnée d'éléments de même nature, accessibles
directement, en utilisant un ou plusieurs indices.
Définition formelle
Un tableau est un ensemble d'informations, tel qu'à chaque information soit associé un
nom et un seul (clé ou indicatif).
8 13 6 14 29 17 3 9
algorithme Le_Vecteur
VARIABLES
Mon_Vecteur : tableau de 1 à 10 de entier
Voici un autre exemple de déclaration d’un vecteur, dans lequel un type a été défini
préalablement.
page n° 79
Programmation structurée Les structures de données statiques
algorithme Le_Vecteur
TYPE
Ttablo = tableau de 1 à 10 de entier
VARIABLES
Mon_Vecteur : Ttablo
Matrice carrée
Matrice diagonale
1 2 3 4
1 X
2 X
3 X
4 X
Matrice triangulaire
1 2 3 4
1 A
2 B C
3 D E F
4 G H I J
Matrice partiellement remplie ou éparse
Matrice qui contient plusieurs éléments nuls répartis un peu partout dans la matrice.
Il n'existe pas de définition précise pour identifier une matrice éparse, nous le
reconnaissons de façon intuitive.
page n° 80
Programmation structurée Les structures de données statiques
24.2.2.3 Multidimensionnel
Les matrices à plus de deux dimensions sont généralement regroupées sous le terme de
matrices multidimensionnelles.
Les tableaux sont des structures à accès direct, c'est-à-dire que nous pouvons accéder
directement à l'information en utilisant des indices.
Les données individuelles sont donc repérées par un sélecteur que l'on nomme indice du
tableau
Contrairement aux fichiers séquentiels, il n'existe qu'une primitive d'accès aux éléments
d'un vecteur : l'opération d'indiçage.
On accède à l’Ième élément de T par l'opération d'indiçage que l'on note T[I].
page n° 81
Programmation structurée Les structures de données statiques
24.3.1.2 La recherche
Recherche séquentielle
Les éléments sont dans un vecteur et l'ordre n'a pas d'importance. Lors de la recherche,
on compare l'élément recherché avec tous ceux du vecteur en commençant par l'indice 1.
Exemple :
1 2 3 4 5 6 7 8 9 10
8 13 6 14 29 17 3 9
Si des éléments sont recherchés plus souvent, il est bon de les placer en tête du vecteur
et d'avoir un vecteur ordonné selon la fréquence d'utilisation décroissante ; ceci réduit le temps
de recherche.
Si le vecteur est trié de façon ascendante, on arrête la recherche dès que l'on trouve une
valeur supérieure à celle recherchée (et bien sûr inférieure si le tri est descendant).
Recherche binaire
page n° 82
Programmation structurée Les structures de données statiques
Les éléments du vecteur doivent être classés par ordre croissant ou décroissant.
Exemple :
1 2 3 4 5 6 7 8 9 10
8 12 19 24 29 33 38 42
a°) Les éléments du vecteur doivent être triés pour faire une recherche binaire.
Si aucune position n'est libre dans le vecteur alors l'insertion est impossible.
Nous gardons en mémoire l'indice du dernier élément et nous ajoutons après le dernier
élément.
page n° 83
Programmation structurée Les structures de données statiques
Si le vecteur est trié, on peut ajouter l'élément à la fin du vecteur et le trier à nouveau
(Habituellement plus long).
1 2 3 4 5 6 7
A B C D E F G
1 2 3 4 5 6 7
A B C E F G
page n° 84
Programmation structurée Les structures de données statiques
24.3.1.5 La copie
La copie d'un vecteur sur un autre ne présente aucune difficulté dès lors que les
dimensions sont compatibles.
24.3.1.6 Le tri
Plusieurs méthodes de tri sont envisageables. La méthode dite du TRI A BULLES est
présentée dans l’exemple ci-après.
page n° 85
Programmation structurée Les structures de données statiques
Constante IMAX = 10
TYPE Ttab = tableau de 1 à IMAX de entier
VARIABLES
borne , i : entier
permut : booléen
tampon : entier
DEBUT
borne IMAX -1
permut VRAI
FIN FAIRE
borne borne – 1
FIN FAIRE
FIN
page n° 86
Programmation structurée Les structures de données statiques
25 LES ENREGISTREMENTS
Un enregistrement est une structure constituée d'un nombre fixe de composants appelés
champs. Les champs peuvent être de différents types et chaque champ comporte un
identificateur de champ permettant de le sélectionner.
Exemple:
TYPE
T_ABONNE = ENREGISTREMENT
NOM : CHAINE
PRENOM : CHAINE
AGE : ENTIER
SALAIRE : REEL
FIN
VARIABLE
ABONNE1 : T_ABONNE
page n° 87
Programmation structurée Les structures de données statiques
26 EXERCICES
Enoncé de l’ exercice n° 6
Ecriture de l'algorithme
Instructions
Algorithme Principal
CONSTANTE
IMAX = 100
TYPE
Ttab = tableau de 1 à IMAX de entier
VARIABLES
i : entier
DEBUT
i ←1
le traitement ci-contre peut être écrit
TANT QUE i < = IMAX également ainsi :
DEBUT
FAIRE Pour i variant de 1 à IMAX
FAIRE
Vect2[ i ] ← Vect1[ i ] Vect2[i] ← Vect1[i]
FINFAIRE
i ←i + 1 FIN
FINFAIRE
FIN
DEBUT
DCO UTILISATION DE LA PROCEDURE COPIE FCO
FIN
page n° 88
Programmation structurée Les structures de données statiques
Enoncé de l’exercice n° 7
Ecriture de l'algorithme
Instructions
Algorithme Principal
CONSTANTE
IMAX = 25
TYPE
Ttab = tableau de 1 à IMAX de entier
VARIABLES
i : entier
DEBUT
i ←1
FAIRE
LIRE(Clavier,vect[ i ] )
i ← i+1
FINFAIRE
FIN
DEBUT
DCO UTILISATION DE LA PROCEDURE SAISIE FCO
FIN
page n° 89
Programmation structurée Les structures de données statiques
Enoncé de l’exercice n° 8
Affichage de IMAX valeurs entières stockées dans un vecteur.
Ecriture de l'algorithme
Instructions
Algorithme Principal
CONSTANTE
IMAX = 25
TYPE
Ttab = tableau de 1 à IMAX de entier
VARIABLES
i : entier
DEBUT
FAIRE
ECRIRE(Ecran,vect[ i ] )
FINFAIRE
FIN
DEBUT
DCO UTILISATION DE LA PROCEDURE AFFICHE FCO
FIN
page n° 90
Programmation structurée
Page n° 91
Programmation structurée Notion sur les fichiers
Nous verrons comment sont organisés les ensembles d'informations sur leur support
ainsi que les opérations de traitement usuelles:
28 NOTION DE FICHIER
Les informations que le processeur peut avoir à traiter se trouvent soit sur des unités
périphériques, soit en mémoire centrale. Seules celles qui sont en mémoire sont directement
accessibles à la machine.
Les informations qui sont sur des unités périphériques sont rangées en "fichier".
Le fichier est un concept fondamental qui apparaît dans toutes les applications de
gestion (entre autres). Un fichier contient un ensemble d'informations, concernant des
individus ou des objets de même nature.
Ex: Le fichier des licenciés d'un club sportif ou encore : Une discothèque.
page n° 92
Programmation structurée Notion sur les fichiers
L'ensemble P est dit à accès direct lorsqu'il suffit de connaître le rang n de l'élément
"e" pour y accéder, sans passer par les autres éléments de P.
28.3 Les éléments du fichier
L'enregistrement est une suite de caractères dont on connaît la composition, c'est à dire
la description ou le format.
Les enregistrements sont écrit les uns à la suite des autres et lors des traitements, on lit
un enregistrement, puis un autre, etc.
page n° 93
Programmation structurée Notion sur les fichiers
Ex: Sur une cassette pour que la tête de lecture lise le quatrième morceau il faut avoir
déroulé la bande jusqu'à la fin du troisième, ou lu les trois premiers morceaux.
Une rubrique est la plus petite unité logique d'un article à laquelle on puisse faire
référence dans un programme.
!1 ARTICLE DE 17 CARACTERES! !
RUBRIQUES
N° DU CANDIDAT
!NOM
NOTE 1
NOTE 2
NOTE 3!
// = LABEL DE DEBUT OU DE FIN DE FICHIER
/ = SEPARATEUR ENTRE DEUX ARTICLES
La zone contenant le numéro de l'élève sur deux positions pourrait avoir comme nom
de rubrique: NO-ELV ou encore NUMELEVE ...
page n° 94
Programmation structurée Notion sur les fichiers
Un caractère est le plus petit élément de donnée dans une rubrique. On peut dire que
c'est le plus petit groupement de bits contigus significatifs.
ACCES SEQUENTIEL
- Soit en entrée et / ou sortie pour un fichier en
ACCES DIRECT
Exemples :
page n° 95
Programmation structurée Notion sur les fichiers
Exemples :
FERMER (FENTRE)
On peut fermer tous les fichiers en même temps quelque soit leur mode d’ouverture.
page n° 96
Programmation structurée Notion sur les fichiers
Nous avons vu que les informations que le processeur peut avoir à traiter se trouvent
soit sur des unités périphériques, soit en mémoire centrale. Seules celles qui sont en mémoire
sont directement accessibles à la machine.
A notre niveau nous nous contenterons de voir le schéma de principe de transfert des
données.
page n° 97
Programmation structurée Notion sur les fichiers
Fichiers
en entrée
ZONE DE TRAVAIL
Mémoire
centrale
Fichiers
en sortie
page n° 98
Programmation structurée Notion sur les fichiers
En effet toutes les informations utilisées sont rangés dans des fichiers sur des unités
périphériques. Ces informations ne sont exploitables que lorsqu'elles ont été transférées en
mémoire. Il est donc fondamental de comprendre et de savoir manipuler ces fichiers.
page n° 99
Programmation structurée Notion sur les fichiers
31 EXERCICES
Enoncé de l’exercice n° 9
Ecrire une fonction qui, dans un fichier séquentiel contenant uniquement des
entiers positifs, retourne la plus grande valeur du fichier. On considère que le fichier peut-être
vide.
Ecriture de l'algorithme
Algorithme Principal
TYPE
Tenreg = ENREGISTREMENT
Nb : entier
FIN
DEBUT
OUVRIR en lecture (FIC)
LIRE (FIC, val)
valmax ← 0
SINON
TANT QUE NON FIN DE FICHIER (FIC)
FAIRE
SI valmax < val
ALORS
valmax ← val
FINSI
FINFAIRE
FINSI
Resultat ← valmax
FERMER (FIC)
FIN
DEBUT
DCO UTILISATION DE LA FONCTION MAX FCO
FIN
page n° 100
Programmation structurée Notion sur les fichiers
Enoncé de l’exercice n° 10
Ecrire un prédicat qui permet la suppression du premier élément de valeur Valref
dans un fichier séquentiel. (on obtient dans ce cas un nouveau fichier qu'il faut définir)
Lorsque la suppression est effective le prédicat retourne VRAI, et FAUX inversement.
Ecriture de l'algorithme
Algorithme Principal
TYPE
Tenreg = ENREGISTREMENT
Nb : entier
FIN
VARIABLES
Val : entier
Trouve : booléen
DEBUT
trouve ← FAUX
ALORS
trouve ←VRAI
SINON
ECRIRE (FNOUV, val)
FINSI
page n° 101
Programmation structurée Notion sur les fichiers
FINFAIRE
Resultat ← trouve
FIN
DEBUT
DCO UTILISATION DU PREDICAT SUPPVAL FCO
FIN
page n° 102
Programmation structurée Notion sur les fichiers
Enoncé de l’exercice n° 11
Ecrire une procédure qui permet le chargement des douze mois de l'année en clair
dans un vecteur à partir d'un fichier séquentiel.
Chaque mois devra occuper le poste qui correspond à son rang dans l'année.
Ecriture de l'algorithme
Algorithme Principal
CONSTANTE
IMAX = 12
TYPE
MM = ENREGISTREMENT
Nu_mois : entier
Clair_mois : chaîne de caractères
FIN
Tfic = fichier de MM
Ttab = tableau[ IMAX ] de chaîne de caractères
VARIABLES
Val : MM DCO variable contenant un enregistrement du fichier FCO
DEBUT
OUVRIR (F1) en lecture
LIRE ( F1 , Val)
FINFAIRE
FERMER (F1)
FIN
DEBUT
DCO UTILISATION DE LA PROCEDURE CHARG_MOIS FCO
FIN
page n° 103
Programmation structurée
ANNALES
page n° 104
Programmation structurée Annales
Une manière originale pour calculer le carré d’un nombre entier positif N est d’effectuer la somme des N
premiers nombres impairs.
Exemples :
4 = 1 + 3 +5 + 7 = 16
5=1+3+5+7+9 = 25
Ecrire un algorithme permettant de calculer le carré d’un nombre entier positif saisi par l’utilisateur en utilisant
la méthode ci-dessus.
Le Cercle Mixte désire mettre en place un logiciel permettant de gérer la réservation des chambres. Les
chambres seront obligatoirement réservées avant utilisation.
Pour cela, on utilisera 2 fichiers :
Un fichier CHAMBRES.DAT existant contenant les caractéristiques des différentes chambres :
Un fichier RESERVAT.DAT qui n’existe pas actuellement, qui contiendra les renseignements suivants :
Le TypeDate permet la comparaison immédiate entre 2 dates et ne nécessite pas de primitives particulières pour
la lecture et l’écriture.
Travail demandé :
1. Décrire les différentes variables, structures ou enregistrements nécessaires au traitement.
2. Ecrire l’algorithme d’une procédure permettant de réserver une chambre d’une date de début à une date de
fin pour un nouveau client. On n’oubliera pas de vérifier la possibilité de réservation à une date donnée.
3. Ecrire l’algorithme d’une procédure permettant de visualiser les taux d’occupation de toutes les chambres
utilisables pour une période donnée.
page n° 105
Programmation structurée Annales
CORRIGE :
Calcul d’un carré d’un nombre positif
DONNEES :
RESULTATS :
PROCEDURE CARRE ( )
DEBUT
Efface écran
Répéter
Ecrire (‘Entrez un nombre positif : ‘)
Lire (N)
Jusqu’à N >= 0
J 1
T 0
POUR I variant de 1 à N
FAIRE
T T + J
J J + 2
FIN FAIRE
Ecrire (‘carré de ‘ , N , ‘ = ‘ , T)
FIN
page n° 106
Programmation structurée Annales
DONNEES :
RESULTATS :
page n° 107
Programmation structurée Annales
PROCEDURE PRINCIPALE ( )
DEBUT
Ouvrir en entrée ( F1 )
Ouvrir en sortie ( F2 )
Répéter
FIN FAIRE
page n° 108
Programmation structurée Annales
DCO Vérification de la rupture de la boucle FCO
SI resa = 0
ALORS
Ecrire (‘Rien à louer’)
SINON
Ecrire (‘Réservation effectuée’)
FIN SI
FIN
page n° 109
Programmation structurée Annales
DCO Vérification si fichier vide FCO
SI fin de fichier (F2)
ALORS
Indic 1
DCO Recherche si la chambre est libre FCO
SINON
TANT QUE non fin de fichier (F2) ET trouve = 2
FAIRE
DCO Recherche sur l’égalité de la chambre et si les dates sont différentes FCO
SI ch = enreg2.num
ALORS
c enreg2.datdeb
d enreg2.datfin
SI (a < c ET b < c) OU (a > d ET b > d)
ALORS
indic 1
SINON
indic 0
trouve 0
FIN SI
DCO Les chambres n’ont pas le même numéro FCO
SINON
indic 1
FIN SI
Lire (F2, enreg2)
FIN FAIRE
FIN SI
DCO Mise à jour de la variable trouvé pour la suite du traitement FCO
SI indic = 1
ALORS
trouve 1
SINON
trouve 0
FIN SI
FIN
page n° 110
Programmation structurée Annales
DCO Préparation de l’enregistrement FCO
Efface écran
enreg2.num ch
enreg2.datdeb a
enreg2.datfin b
Ecrire (‘Entrez le nom de l’occupant : ’)
Lire (enreg2.nom)
FIN
DONNEES :
RESULTATS :
page n° 111
Programmation structurée Annales
PROCEDURE OCCUPATION ( )
DEBUT
DCO Initialisation des variables FCO
cpt 0
nbre 0
DCO Boucle pour la recherche du nombre chambres à louer dans F1 FCO
Ouvrir F1 en entrée
Lire (F1, enreg1)
TQ non fin de fichier (F1)
FAIRE
SI enreg1.serv
ALORS
nbre nbre + 1
FIN SI
Lire (F1, enreg1)
FIN FAIRE
Fermer (F1)
DCO Saisie de la période d’occupation des chambres FCO
Efface écran
Ecrire (‘Entrez la date de début de période d’occupation’)
Lire (s1)
Ecrire (‘Entrez la date de fin de période d’occupation’)
Lire (s2)
DCO Boucle pour la recherche des chambres occupées pour la période donnée FCO
Ouvrir F2 en entrée
Lire (F2, enreg2)
TQ non fin de fichier (F2)
FAIRE
DCO Chargement des dates de début et fin (F2) pour les chambres occupées FCO
dd enreg2.datdeb
df enreg2.datfin
DCO Recherche sur la date d’occupation des chambres FCO
Si dd <= s2 ET df => s1
ALORS
Si dd < s1
ALORS
dd s1
SINON
SI df > s2
ALORS
df s2
FIN SI
FIN SI
cpt cpt + (df - dd)
FIN SI
Lire (F2, enreg2)
FIN FAIRE
Fermer (F2)
DCO Calcul et affichage du résultat FCO
Efface écran
Ecrire (‘Taux d’occupation pour la période du : ‘ s1 ‘au : ‘ s2,
( cpt * 100) / (nbre * (s2 - s1)), ‘ % ‘)
FIN
page n° 112
Programmation structurée Annales
Evaluation......................................: E5
Domaine.........................................: M.S.I.
Filière.............................................: Toutes filières
Durée.............................................: 3 heures 30mn
2 Exercice 2 : Le cinéma
2.1 Présentation du problème
Le PDG d’une société de distribution de films qui possède environ 2000 salles de cinéma, étudie
chaque année leur bilan financier.
Pour ce faire, il a besoin d’un programme récapitulant, pour chaque salle, le montant annuel des
ventes ainsi que son rendement (le taux de remplissage moyen de la salle au cours de l’année).
Et c’est à vous, que le directeur informatique demande de concevoir l’algorithme permettant de
répondre au problème.
2.2 Description du fichier en entrée
Vous disposez en entrée d’un fichier nommé “ventes” qui liste les ventes de toutes les séances de
toutes les salles au cours de l’année passée. Pour chaque séance, le fichier comprend un enregistrement
de la forme :
Pour une salle donnée, il peut y avoir plusieurs séances le même jour, plusieurs jours dans l’année
mais les enregistrements sont triés par salle. Le fichier a été vérifié et ne contient aucune erreur.
page n° 113
Programmation structurée Annales
2.3 Travail à effectuer
Vous devez écrire un algorithme en programmation structurée, qui effectuera les travaux suivants :
♦ Calculer et afficher, pour chaque salle, les informations suivantes :
− Son code
− Le montant total des ventes sur l’année
− Son rendement
♦ Ecrire dans un fichier nommé “ mauvais ” toutes les salles dont le rendement est inférieur à 60 %.
Les informations qui devront apparaître sont :
− Le code de la salle
− Le rendement de la salle
Formule permettant de calculer le rendement R :
R = (N/M) * 100
N : Nombre total de places vendues dans l’année
M : Nombre maximum de places théoriquement vendables
( = nombre de séances de l’année * nombre de places dans la salle)
page n° 114
Programmation structurée Annales
PREPARATION à L’EA2/FS du BSTAT 2001
Evaluation............................................: E5
Domaine..............................................: M.S.I.
Filière..................................................: Toutes filières
Durée...................................................: 3 heures 30mn
C) PROGRAMMATION STRUCTUREE
ALGORITHME SUITE
DEBUT
DCO SAISIE DU NOMBRE DE TERMES DE LA SUITEFCO
page n° 115
Programmation structurée Annales
2. Corrigé exercice « Cinéma »
ALGORITHME BILAN
page n° 116
Programmation structurée Annales
DEBUT
DCO CETTE BOUCLE EST EFFECTUÉE UNE FOIS POUR CHAQUE SALLE FCO
TANT QUE NON FIN DE FICHIER (Ventes)
FAIRE
DCO INITIALISATION DES VARIABLES, UNE FOIS POUR CHAQUE SALLE FCO
Code_salle Seance.code
Nb_seances 0
Montant_ventes_total 0
Nb_ventes_total 0
FINFAIRE
FIN
page n° 117
Programmation structurée Annales
NB :
Tout le personnel n’a pas participé à l’épreuve, par contre certaines personnes extérieures à
l’entreprise ont couru (et se trouvent donc dans le fichier des résultats).
Les fichiers fournis ont été contrôlés : ils ne contiennent aucune erreur (d’aucune sorte).
Les personnes inscrites sur le fichier imprimante doivent l’être dans l’ordre des performances
(ordre croissant des temps). Leur nombre peut être < 6 (voire être nul)
C célibataire
2] description des fichiers
M D divorcé
Fichier des personnels Ou V veuf
C:\employes.edi F M marié
Organisation séquentielle
Trié en croissant sur : numéro employé
Numéro Temps
P.S (algorithme en Français) dossard (en secondes)
7 carac. Entier sur 5 carac.
Alpha-
Date du jour numériques
Date limite
page n° 118
Programmation structurée Annales
3] travail
Vous devez écrire l’algorithme (présenté sous la forme d’un pseudo code indenté écrit en Français)
permettant d’obtenir l’état imprimé décrit ci-dessus à partir des fichiers fournis.
Vous pouvez utiliser un tableau de (..) éléments pour stocker les différents résultats intermédiaires.
Le type TDATE qui pourrait être utilisé pour manipuler les dates du jour et de naissance est un type
enregistrement contenant les champs aaaa, mm, jj représentant les années, mois et jour.
On supposera existante une primitive LIREDATESYS(Date_Du_Jour) permettant de récupérer la date
du jour du type TDATE.
page n° 119
Programmation structurée
Annales
ALGORITHME CROSS_ENTREPRISE
DCO les 2 fichiers sont triés sur le même critère à savoir
- Numéro employé pour c:\employes.edi
- Numéro dossard pour c:\resucros.edi
ces données étant identiques pour un personnel de l’entreprise.FCO
TYPE
DCO le type TDate FCO
TDate = ENREGISTREMENT
Annee : entier DCO FORMAT AAAA FCO
Mois : entier DCO FORMAT MM FCO
Jour : entier DCO FORMAT JJ FCO
FIN
page n° 120
Programmation structurée
Annales
CONSTANTE
AN_25 : TDate = (Annee :0025 , Mois :00 , Jour :00)
DCO procédure de tri du tableau contenant les personnels ayant participé au cross.
le tri se fait en croissant sur le temps mis en secondes.
méthode de tri : TRI A BULLES. FCO
VARIABLE
borne , i : entier
permut : booléen
tampon : Tcellule
DEBUT
page n° 121
Programmation structurée
Annales
DCO procédure de stockage des info. dans la dernière cellule(n° IMAX + 1) du tableau
puis appel de la procédure de tri qui classera la personne parmi les IMAX meilleurs
si son temps est meilleur que les précédents déjà stockés FCO
DEBUT
SI personnel.Date_nais > DateLimite
ALORS
tab[IMAX + 1].Num_employe personnel.Num_employe
tab[IMAX + 1].Nom personnel.Nom
tab[IMAX + 1].Prenom personnel.Prenom
tab[IMAX + 1].Grade personnel.Grade
tab[IMAX + 1].temps dossard.temps
trier_tableau(tab)
FINSI
FIN
page n° 122
Programmation structurée
Annales
page n° 123
Programmation structurée
Annales
DCO fermeture des fichiers FCO
FERMER (employe)
FERMER (resucros)
DCO lorsqu’il n’y a pas de coureur stocké dans le tableau (chose normalement
impossible)
il faut prévoir d’imprimer un message d’avertissement FCO
SI tab[1].temps = 99999
ALORS
ECRIRE(‘ETAT NEANT’) ;
SINON
DCO impression du titre de l’état FCO
ECRIRE (Imprimante,‘à Rennes le ’, Date_Du_Jour.Jour,’-‘ ,
Date_Du_Jour.Mois,’-‘, Date_Du_Jour.Annee ,’ liste des ‘ , IMAX ,
‘ meilleurs coureurs(nés après le’ , DateLimite.Jour, ‘ ‘ , DateLimite.Mois , ‘
‘ , DateLimite.Annee,’)’)
i i +1
FINFAIRE
FINSI
FIN
page n° 124