■ ■ ■ SOMMAIRE DU BILLET ■ ■ ■
- Organisation hiérarchique des données
- L’informaticien
- Lois du traitement rationnel des données
- Démarche hiérarchique
- Les lois de subdivision
- Exercice N° 1
- Structure répétitive simple
- Introduction
- Structuration des données de Sortie
- Structuration des données de d’Entrée
- Structuration du programme
- Règles et Algorigrammes
- Exercice N° 2
- Organisation détaillée
- Généralités
- Instructions du PGM
- Contrôle du programme par les sorties
- Structure alternative simple
- Présentation et définition
- Structuration des données de sortie
- Structuration des données d’entrée
- Structuration du PGM
- Organisation détaillée
- Groupe Alternatif de Données (GAD)
- Structure complexe répétitive et mixte
- Introduction
- Structure Répétitive Complexe
- Structure Complexes Mixtes
- Conclusion
- Un informaticien est un organisateur de données
- Exercice N° 3 (Exercice d'application)
- Les phases de traitement
- Introduction
- Exemple N° 1
- Définition d’une phase de traitement
- Exemple N° 2
- Règles
- Cas d’apparition des données de phase
- Cas du changement de page
- La Structure Alternative Complexe (SAC)
- Introduction
- Cas des actions disjointes ou incluses
- Actions en intersections. Alternatives consécutives
■ ■ ■ ANNEXES ■ ■ ■
- Lois, Règles et Principes
- Sigles - Lexique
- Quelques liens très utiles
- Notions sur les ensembles
[TUTORIEL] LOGIQUE DE CONSTRUCTION DES PROGRAMMES.pdf (54 pages Word)
§ ■ Avant-propos
Ce tutoriel assainit un support de cours LCP réalisé avec les moyens de l’époque (années 70) et publié en 2000-2006 par M. Tourneur sur son site internet :
Un premier paragraphe du support de cours original aborde des NOTIONS SUR LES ENSEMBLES pour expliquer le recours à certaines références pédagogiques. Ce paragraphe utilisant les caractères spéciaux liés aux Ensembles, il n’a pas pu être repris dans ce tutoriel mais il fait l’objet d'un fichier PDF joint en annexe au présent tutoriel.
Le parallèle LCP/Ensembles est certainement intéressant mais pas franchement indispensable. Ce support de cours décrit la méthodologie LCP à peu près dans les mêmes termes que cet autre support de cours de 140 pages d’Yves LEROY du Centre de Formation CII (1971), synthétisé dans ce Billet de Blog :
Certaines lois et règles édictées par ces deux supports de cours s’inspirent de technologies devenues obsolètes comme l’utilisation de fichiers plats. Le socle méthodologique LCP reste toujours actuel mais nécessite d’être adapté à l’utilisation des Systèmes de Gestion des Bases de Données. C’est un peu l’objectif de ce Billet de Blog :
La grande différence entre les fichiers plats et les Bases de Données dans le traitement du FLE (Fichier Logique en Entrée), c’est que les fichiers plats étaient constitués indépendamment du programme à développer via un ou plusieurs programmes spécifiques. Avec les Bases de Données, le programme constitue lui-même le FLE dont il a besoin avant de l’exploiter.
Ce qui change avec les BDD, c’est que ce n’est plus le FLE issu des fichiers plats qui structure le raisonnement mais ce sont les traitements qui préalablement à la programmation de la procédure, structurent le FLE nécessaire, à partir des tables de la Base de Données. Ainsi, FLE et Procédure se structurent mutuellement par décompositions hiérarchiques successives des traitements, du plus global vers le plus détaillé, sur la base des actions.
La construction du FLE fait appel à une logique séquentielle, la programmation de la procédure à une logique combinatoire.
En se référant à la théorie des Ensembles, ce support de cours ajoute en fait de la complexité inutile à la démarche qui se veut pourtant pédagogique. Faute d’être commentées oralement, les annotations en caractères rouges se référant aux Ensembles, bien qu’intéressantes, peuvent être ignorées.
Ce support de cours n’est pas une recette. On n’apprend pas LCP, on le comprend, on se l’approprie, on enregistre le message dans sa mémoire procédurale et on oublie la pédagogie de ce cours. Le message est simple : Penser par traitements et non par conditions. Mais changer son processus de pensée formaté par conditions n’a rien d’évident. Rééduquer ses neurones pour « raisonner sur la base des actions et non sur celle des conditions » nécessite un effort mental important car il faut résister au déviationnisme satisfaisant ses vieux réflexes.
Un raisonnement par conditions, c’est le comment faire, qui dépend du langage et de la mémoire immédiate volatile obsédée par l’incertitude du développement non maitrisé dans sa globalité.
Un raisonnement par traitements, c’est structurer le quoi faire, c’est libérer sa mémoire immédiate, c’est aborder la problématique dans sa globalité. Le comment faire devient une certitude, une évidence rassurante ; le code est là où il doit être, programmé comme il doit l’être. Les traitements sont des référents stables ; un programme structuré par traitements reste toujours maintenable.
Pas vraiment un tutoriel pour autodidacte, ce support de cours sans son formateur transmet plutôt bien le message LCP à ceux qui souhaitent véritablement s’approprier la démarche.
Les exemples proposés ne se réfèrent qu’à des états de sortie, plus faciles à visualiser. Mais LCP s’applique à tous les traitements, pas seulement aux impressions.
§ Chapitre I
ORGANISATION HIÉRARCHIQUE DES DONNÉES
- L'informaticien
Traiter les données c’est programmer.
- L'informaticien traite les informations, les organise et les automatise.
- Il obéit à des règles logiques ou à des formes de règles logiques.
Les relations entre données et programmes sont ignorées.
- La partie logique de l’informaticien
- Organiser les données à traiter.
- Organiser les résultats à obtenir.
- Organiser les programmes.
- Écrire les programmes, les corriger et les modifier.
La mise au point des programmes peut-être coûteuse selon la logique utilisée.
- Logique ordonnée et structurée
- Toute collection d’éléments ou de données constitue un Ensemble au sens mathématique du terme.
- Tout programme constitue un ensemble de données destinées à exécuter des fonctions.
- Il existe une logique pour organiser les données et une logique pour l’organisation des programmes.
- Caractéristique essentielle de la Logique de Construction des Programmes
- On ne s’attache pas au déroulement des instructions.
- On part du Général vers le Particulier et de l’Ensemble vers l’Élément.
- Les instructions sont regroupées en séquences logiques.
- Un programme est considéré comme un ensemble structuré de séquences logiques.
- Séquence Logique (SL)
- C’est un ensemble ordonné d’instructions exécuté le même nombre de fois au même endroit du programme.
- La méthode pour élaborer une séquence logique considère comme les éléments d’un ensemble :
- Les données en sortie du programme,
- les données d’entrées utiles au programme,
- et les instructions du programme.
- Elle organise ces éléments hiérarchiquement les uns par rapport aux autres.
- Lois du traitement rationnel des données
Loi n° 1
Tout ensemble doit être défini en compréhension. |
Loi n° 2
Tout ensemble doit être rigoureusement défini. |
Loi n° 3
Les relations entre les différents sous-ensembles doivent être rigoureusement définies. |
Loi n° 4
Toute correspondance entre deux sous-ensembles doit être une application. |
- Démarche hiérarchique
- Aller du général au particulier.
- Partir de l’ensemble au plus haut niveau dans sa forme générale.
- Subdiviser cet ensemble en sous-ensembles à l’aide d’une loi qui doit être explicite.
- Subdiviser à nouveau par itération jusqu’au niveau le plus bas autorisé par la loi utilisée.
- Subdiviser de nouveau en utilisant d’autres lois.
- Les lois de subdivision
Loi n° 1
On subdivise un ensemble de données s’il comprend des sous-ensembles qui peuvent s’y trouver présents un nombre de fois différent de 1. |
Loi n° 2
On énumère dans leur ordre d’écriture les rubriques composant l’ensemble non sub-divisible, s’il y a lieu. |
- Exercice N° 1 (chapitre I)
On veut obtenir un état statistique des ventes d’une société.
- Schéma du programme

- Données de sortie

- Données d'entrée (1 article par mouvement)
Le fichier Entrée est classé sur le N° de secteur et dans un secteur par le N° de client. Il peut y avoir plusieurs mouvements par client et plusieurs clients par secteur.
- Définition des traitements (règles de gestion)
On doit cumuler les mouvements d’un même client pour obtenir le total.
On doit cumuler les clients pour obtenir le total général.
- En se référant aux ensembles : on a 4 ensembles indépendants du traitement
- 1 ensemble État (ensemble U)
- 1 ensemble Clients
- 1 ensemble Mouvements
- 1 ensemble Ligne
- Ensemble Des Données concernant l’État : EDD FLS (1 fois)
Représentation des Ensembles De Données sous forme de patatoïdes :
┌───────────────────────────────────────────────────────────────────────────────────┐
│ EDD FLS (ensemble universel) │
│ ┌───────────────────────────────────────────────────────────────────────────────┐ │
│ │ EDD CLIENT (c fois) (Niveau 1) │ │
│ │ ┌───────────────────────────────────────────────────────────────────────────┐ │ │
│ │ │ EDD MOUVEMENT (m fois) (Niveau 2) │ │ │
│ │ │ ┌───────────────────────────────────────────────────────────────────────┐ │ │ │
│ │ │ │ EDD LIGNE (1 fois) (Niveau 3) │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ │ N° MOUVEMENT │ │ │ │
│ │ │ │ LIBELLÉ │ │ │ │
│ │ │ │ MONTANT │ │ │ │
│ │ │ └───────────────────────────────────────────────────────────────────────┘ │ │ │
│ │ └───────────────────────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────────────────────┘
Représentation de ces mêmes Ensembles De Données à l'aide d’un diagramme avec des accolades :
┌ ┌ ┌
│ │ │
│ │ N° CLIENT (1) │ N° MOUVEMENT (1)
│ │ │
EDD FLS (1)◄┤ EDD CLIENT (c) ◄┤ EDD MOUVEMENT (m) ◄┤ LIBELLÉ (1)
│ │ │
│ TOTAL GENERAL (1) │ TOTAL CLIENT (1) │ MONTANT (1)
│ │ │
└ └ └
Niveau : Niveau 1 Niveau 2 Niveau 3
Référentiel : CLIENT MOUVEMENT LIGNE
Remarques :
À chaque niveau de référence on repart avec un nouveau référentiel.
À partir d’un certain niveau de subdivision on ordonne les sous-ensembles dans l’ordre où ils apparaissent, dans un ordre « spatio-temporel ».
Il existe des sous-ensembles répétitifs, il est donc important de faire apparaître cette caractéristique grâce aux cardinaux. Ces cardinaux peuvent être appelés aussi facteurs d’occurrences.
La démarche hiérarchique fait apparaître la correspondance entre les différents sous-ensembles.
La loi de correspondance appliquée ici est l’Application :
À un élément de l’ensemble de niveau inférieur (N° Client) correspond un élément de l’ensemble de niveau supérieur l’incluant. Il y a donc application.
On dit qu’il y a application de A sur B si quel que soit a de A il existe un seul élément b de B. |
- L’ensemble de niveau inférieur est pris comme ensemble de départ.
- L’ensemble de niveau supérieur est pris comme ensemble d’arrivée.
§ Chapitre II
STRUCTURE RÉPÉTITIVE SIMPLE
- Introduction
Pour résoudre un problème informatique il faut :
- Déterminer les sorties (les résultats à obtenir).
- Déterminer les entrées.
- Déterminer les calculs et les conditions pour pouvoir transformer les entrées en sorties.
Pour cela il existe 4 étapes à franchir :
- Dresser le tableau hiérarchique des sorties :
- FLS : Fichier Logiques des Sorties
- DLS : Données Logique de Sortie
- EDO : Ensemble des Données à Obtenir
- Dresser le tableau hiérarchique des entrées :
- FLE : Fichier Logique des Entrées
- DLE : Données Logiques des Entrées
- EDU : Ensemble des Données à Utiliser
- Valider le FLS par le FLE :
- Vérifier que toutes les données de Sortie sont obtenues par des données d’Entrée.
- Structurer le programme.
- Structuration des données de Sortie
Dans l’exercice N° 1 (chapitre I) :
- L’ensemble est structuré hiérarchiquement.
- Le FLS est structuré.
- On a deux ensembles répétitifs (Client et MVT).
- Au niveau Client, il y a un sous-ensemble répétitif EDD 1 Mouvement SEUL.
- Au niveau de l’État, il y a un sous-ensemble répétitif SEUL EDD 1 Client.
- Ces deux structures sont des Structures Répétitives Simples.
Règle
Un ensemble de Structure Répétitive est un ensemble dans lequel on utilise plusieurs sous-ensembles de données de même nature. |
- Structuration des données d’Entrée
Remarque :
En sortie il y a des infos PRÉSENTES.
En entrée il y a des infos UTILES.
Règle
La construction d’un programme se fait à partir du FLE. |
Lors de la structuration du FLE certaines données peuvent ne pas apparaître si elles ne génèrent aucun traitement.
Validation :
Supprimer les secteurs ne générant aucun traitement.
Dans notre exemple nous aurions :
┌ ┌ ┌
│ EDD │ EDD │ N° CLIENT (1)
EDD FLE ◄┤ CLIENT (c’) ◄┤ MOUVEMENT (m’) ◄┤
│ │ │ MOUVEMENT (1)
└ └ └
Niveau 1 Niveau 2 Niveau 3
CLIENT MOUVEMENT ITEM
- Structuration du programme
La structuration du programme (PGM) se déduit de celle du FLE.
PROG
Début
Instructions de traitement concernant 1 CLIENT : exécuter c’ fois
Fin
T-CLIENT
Début
Instructions de traitement des données concernant 1 MOUVEMENT : exécuter m’ fois
Fin
┌ ┌
│ 010 D-PROG (1) │ 020 D-MOUVEMENT (1)
│ │
PROG ◄┤ T-CLIENT (c’) ◄┤ 030 MOUVEMENT (m’)
│ │
│ 050 F-PROG (1) │ 040 F-MOUVEMENT (1)
└ └
Nous retrouvons la même structure hiérarchique que celle du FLE.
On souligne les traitements non décomposés qui feront chacun l’objet d’une séquence logique.
On numérote les traitements soulignés, de 10 en 10, de la gauche vers la droite. Selon le langage (COBOL, par exemple), ces numéros entreront dans la composition des étiquettes logiques référençant les séquences logiques.
- Règles et Algorigrammes
Loi de structuration N° 1 du PGM
À toute structure répétitive à l’entrée, correspond une structure répétitive du programme, et une seule. |
Règle d’application
L’ensemble « Programme de structure répétitive » comprend toujours :
- un début à exécuter 1 fois
- un sous-ensemble répétitif à exécuter n fois
- une fin à exécuter 1 fois. |
Algorigramme
┌─────────────┐
010 │ D-PROG │
└──────┬──────┘
│◄─────────────────────┐
┌──────┴──────┐ │
020 │ D-CLIENT │ │
└──────┬──────┘ │
│◄──────────────────┐ │
┌──────┴──────┐ │ │
030 │ T-MVT │ │ │
└──────┬──────┘ │ │
●───────────────────┘ │
┌──────┴──────┐ │
040 │ F-CLIENT │ │
└──────┬──────┘ │
●──────────────────────┘
┌──────┴──────┐
050 │ F-PROG │
└─────────────┘
- Exercice N° 2 (chapitre II)
On désire imprimer l’état des ventes mensuelles par client…
- Schéma du programme (Fig. II-1)

- Données de sortie Fig. II-2)

- Données d'entrée
Fichier séquentiel des commandes
Trié de majeur en mineur sur les critères suivants : N° Mois, N° Client, N° Commande, N° Produit
Pour 1 article :
- n° de mois
- n° de client
- n° de commande
- n° de produit
- Quantité commandée
- Code pays de la commande (E = Étranger, F = France)
- Prix unitaire
Note :
Les prix unitaires et les montants des commandes à l’étranger sont exprimés par leurs contre-valeurs en Euros.
Le Fichier Commandes ne contient qu’un seul article par produit.
- Traitements :
MT-PROD = PU X QTE
- Pour une commande : MT-CDE = Ʃ MT-PROD
- Pour un client : TOT-CLI = Ʃ MT-CDE
- Pour un mois : TOT-MOIS = Ʃ TOT-CLI
- Démarche
- Structurer le FLS
- Structurer le FLE
- Valider le FLS par le FLE
- Structurer le PGM
┌ ┌ ┌ ┌ ┌
│ │ │ │ │
│ │ N° MOIS (1) │ N° CLIENT (1) │ N° CDE (1) │ N° PROD (1)
│ EDD │ EDD │ EDD │ EDD │
FLS ◄┤ MOIS (m) ◄┤ CLIENT (c) ◄┤ CDE (x) ◄┤ PROD (p) ◄┤ PU PROD (1)
État │ │ │ │ │ QTE (1)
│ │ TOT MOIS(1) │ TOT CLIENT (1)│ TOT CDE (1) │ MONTANT (1)
│ │ │ │ │
└ └ └ └ └
Niveau 1 Niveau 2 Niveau 3 Niveau 4 Niveau 5
MOIS CLIENT CDE PROD LIGNE
┌ ┌ ┌ ┌ ┌
│ │ │ │ │ N° MOIS (1)
│ │ │ │ │ N° CLIENT (1)
│ │ │ │ │ N° CDE (1)
FLE ◄┤ MOIS (m’) ◄┤ CLIENT (c’) ◄┤ CDE (x’) ◄┤ PROD (p’) ◄┤ N° PROD (1)
│ │ │ │ │ QTE (1)
│ │ │ │ │ PAYS (1)
│ │ │ │ │ P.U. (1)
└ └ └ └ └
- Règles de gestion
- Montant produit = PU X QTE (réf. Produit) Niveau Produit
- Total commande = Total commande + Montant Produit (réf. Commande) Niveau PROD
- Total client = Total client + Total Cde (réf. Client) Niveau CDE
- Total mois = Total mois + Total client (réf. Mois) Niveau CLIENT
- Validation
- On a le même nombre de niveaux
- On a la même structure répétitive simple au même niveau
- Les ensembles sont cohérents
FLS = Φ
┌ ┌ ┌ ┌
│ D-PGM (1) │ D-MOIS (1) │ D-CLIENT (1) │ D-CDE (1)
│ │ │ │
│ │ │ │
PGM ◄┤ T-MOIS (n) ◄┤ T-CLIENT (n) ◄┤ T-CDE (n) ◄┤ T-PROD (1)
│ │ │ │
│ │ │ │
│ F-PGM (1) │ F-MOIS (1) │ F-CLIENT (1) │ F-CDE (1)
└ └ └ └
Niveau 1 Niveau 2 Niveau 3 Niveau 4
MOIS CLIENT CDE PROD
- Remarques
- On souligne les traitements de la structure du PGM qui ne sont pas décomposés et qui feront l’objet d’une Séquence Logique dans le logigramme puis le programme.
- Une variable d’occurrence traduit :
- En sortie, la présence de l’information.
- En entrée, l’utilisation de l’information.
- Dans le PGM, l’exécution.
- Synthèse
- Deux séquences logiques sont obligatoirement séparées par une jonction ou un branchement.
- Deux jonctions ou deux branchements sont toujours séparés par une séquence logique.
NB : Une séquence logique qui ne comprend aucunr instruction est appelée une séquence vide, que l'on note "Φ" dans la séquence logique de l'algorigramme.
- Algorigramme
On numérote les séquences Logiques hiérarchiquement de 10 en 10 et de la gauche vers la droite.
┌─────────────┐
010 │ D-PGM │
└──────┬──────┘
│◄───────────────────────┐
┌──────┴──────┐ │
020 │ D-MOIS │ │
└──────┬──────┘ │
│◄───────────────────┐ │
┌──────┴──────┐ │ │
030 │ D-CLIENT │ │ │
└──────┬──────┘ │ │
│◄───────────────┐ │ │
┌──────┴──────┐ │ │ │
040 │ D-CDE │ │ │ │
└──────┬──────┘ │ │ │
│◄───────────┐ │ │ │
┌──────┴──────┐ │ │ │ │
050 │ T-PROD │ │ │ │ │
└──────┬──────┘ │ │ │ │
●────────────┘ │ │ │
┌──────┴──────┐ │ │ │
060 │ F-CDE │ │ │ │
└──────┬──────┘ │ │ │
●────────────────┘ │ │
┌──────┴──────┐ │ │
070 │ F-CLIENT │ │ │
└──────┬──────┘ │ │
●────────────────────┘ │
┌──────┴──────┐ │
080 │ F-MOIS │ │
└──────┬──────┘ │
●────────────────────────┘
┌──────┴──────┐
090 │ F-PGM │
└─────────────┘
- Ensemble de données d’entrée exécuté plusieurs fois
Le nombre de sous-ensembles de données en entrée génèrent le nombre de sous-ensembles de traitement du PGM.
Un sous-ensemble présent en entrée peut être exécuté plusieurs fois dans le programme.
§ Chapitre III
ORGANISATION DÉTAILLÉE
- Généralités
- Organiser en séquences logiques de manière ordonnée.
- Organiser en tant que suite ordonnée d’instructions.
C’est ce qu’on appelle l’organisation détaillée.
But : Ordonner les instructions par niveau et par séquence logique.
Règle
Une instruction correspond à une séquence logique si elle est exécutée le même nombre de fois au même endroit du programme. |
Remarques
- Si une instruction correspond à plusieurs séquences logiques elle sera programmée plusieurs fois.
- Si un groupe d’instructions correspond à plusieurs séquences logiques, ces instructions pourront être structurées comme un véritable programme, n’apparaissant qu’une seule fois mais exécutées plusieurs fois.
- Instructions du PGM
Elles sont réparties en 4 groupes.
- Introduction de données
Introduire des données, c’est les rendre accessibles aux traitements.
Lecture (INTRO).
Le nombre d’instructions d’introduction de données est égal au nombre d’enregistrements contenus dans le fichier à traiter, + 1, ce dernier ordre étant destiné à repérer la fin de fichier (FF) ou (EOF).
Combien de fois et quand lire ?
Recherche de la séquence logique dans laquelle tous les enregistrements du fichier sont utilisés + une lecture dans une séquence logique qui est celle de début du PGM.
- Préparation des branchements ou fixation des référentiels
Combien de fois et quand fixe-t-on un référentiel ?
Règle
Le traitement d’un ensemble de données ne doit commencer que lorsque le critère d’identification des éléments de cet ensemble a été fixé et rangé. |
- Préparation des calculs et calculs
Combien de fois et quand préparer les calculs ou les faire ?
Les calculs seront exécutés au niveau correspondant (validation : règle de gestion).
MEI : Mise à l’État Initial des zones de mémoires dans lesquels se font les calculs
- Total Commande sera MEI à zéro en début Cde.
- Total Client sera MEI à zéro en début Client.
- Total Mois sera MEI à zéro en début Mois.
- Préparation des sorties
MEP : Mise En Page des données à sortir effectuée à chaque fois que la donnée à éditer apparaîtra.
Éditer (EDIT) lorsque le besoin s’en fait sentir.
Combien de fois et quand préparer les sorties à éditer ?
Le FLS répond de lui même.
MEI les zones qui auront servies à l’édition.
Construction du programme (démarche)
Placement des lectures (INTRO).
PRÉDICATS / Niveau
Prédicat : « Ce qui est affirmé d’un sujet. Une affirmation, ou la définition d’une relation ».
Exemples
SI « prédicat »
Alors
Sinon
FINSI
TANT QUE « prédicat »
Répéter
FINTANQUE
RÉPÉTER
Jusqu’à « prédicat » FF.
- Pseudocode
Représenter un algorithme.
C’est formaliser dans une langue connue les actions nécessaires à l’exécution du PGM avant le codage dans un langage de programmation.
Le pseudocode du programme sera construit niveau par niveau.
- Contrôle du programme par les sorties
Avant la mise au point sur la machine, un PGM doit être contrôlé pour en obtenir dès les premiers essais des résultats satisfaisants.
Il existe 4 grandes possibilités d’erreurs :
- Sortie intempestive d’une donnée non demandée.
- Absence d’une donnée qui aurait dû être présente.
- Sortie répétitive d’une donnée qui n’aurait dû l'être qu’une fois.
- Sortie aléatoire d’une donnée qui doit être toujours présente.
Vérifier à l’aide du FLS que chaque sortie est programmée dans la séquence appropriée.
Une séquence logique est exécutée au bon endroit le même nombre de fois.
Rapprocher le pseudo code du FLS pour vérifier que toutes les sorties ont été programmées.
Jeu d’essai
Il doit permettre de dérouler toutes les séquences logique du PGM au moins une fois et toutes les structures répétitives au moins deux fois.
Pseudo code
Le pseudo code se dirige niveau par niveau.
Dans l’exemple du chapitre III le pseudo code serait :
Niveau 1 PGM
D-PGM SL 010
REPETER T-MOIS
JUSQU'A FF Cde
SL 090 F-PGM |
Niveau 2 T-MOIS
D-MOIS SL 020
RÉPÉTER T-CLIENT
JUSQU’À mois différent ou FF Cde SL 080
F-MOIS |
Niveau 3 T-CLIENT
D-CLIENT SL 030
RÉPÉTER T-CDE
JUSQU’À mois différent ou client différent ou FF Cde
SL 070 F- CLIENT |
Niveau 4 T-CDE
D-CDE SL 040
RÉPÉTER T-PRODUIT
Jusqu'à Cde différente, client différent ou mois différent ou FF Cde SL 060
T-PRODUIT SL 050
F-CDE |
§ Chapitre IV
STRUCTURE ALTERNATIVE SIMPLE
- Présentation et définition
Un ensemble de données comportant à son 1er niveau de subdivision un sous-ensemble dont la présence est aléatoire est dit de Structure Alternative.
Ce sous-ensemble est dit de Structure Alternative Simple (SAS) :
- S’il n’y a pas de structure répétitive
et s’il y a :
- Soit un seul sous-ensemble aléatoire,
- soit plusieurs sous-ensembles aléatoires tel que la présence de l’un exclu celle de l’autre.
- Structuration des données de sortie
Résultats exclusifs les uns des autres
N° Compte (1)
┌ ┌
│ │
│ │ Solde débiteur (0,1)
│ │
FLS ◄┤ COMPTE (c) ◄┤ OU Exclusif
│ │
│ Ʃ Crédits (1) │ Solde Créditeur (0,1)
│ Ʃ Dédits (1) │
└ └
Niveau 1 Niveau 2
COMPTE SOLDE
NB : Impossibilité pour un solde d’être CR et DB à la fois
Résultats aléatoires
┌ ┌ ┌
│ │ │
│ │ │ N° CLIENT (1)
│ │ │
FLS ◄┤ SECTEUR (s) ◄┤ CLIENT (c) ◄┤ CA (1)
│ │ │
│ │ TOT CA (1) │ REMISE (0,1)
│ │ TOT REMISE (1) │
└ └ └
Niveau 1 Niveau 2 Niveau 3
SECTEUR CLIENT LIGNE
- Structuration des données d’entrée
- Présence + la valeur du critère.
- Quand la valeur d’un code doit être testée dans le PGM, cette valeur doit être prise en compte dans la structure du FLE.
Principe :
Lorsqu’un code est utilisé une fois dans un ensemble et qu’il peut prendre deux valeurs A et A’ testées au cours du PGM, on peut écrire l’ensemble de la manière suivante :
Ens. { code [= X, 0,1 fois] |
- Structuration du PGM
Loi de structuration N° 2 du PGM
À toute structure Alternative des données à l’entrée correspond une structure Alternative du PGM et une seule. |
Règle
Un ensemble de PGM de structure Alternative comprend toujours :
- Un sous-ensemble Début exécuté 1 fois
- Deux sous-ensembles exécutés 0 ou exclusif 1 fois à l’exclusion l'un de l'autre
- Un sous-ensemble Fin exécuté 1 fois
|
Algorigramme
┌─────────────┐
│ Début (1) │
└──────┬──────┘
┌─────────●─────────┐
┌──────┴──────┐ ┌──────┴──────┐
│ Trait (0,1) │ │ Trait (0,1) │
└─────┬───────┘ └─────┬───────┘
└──────────┬────────┘
┌──────┴──────┐
│ Fin (1) │
└─────────────┘
- Organisation détaillée
Dans une Structure Répétitive Simple les branchements sont conditionnels.
Dans une Structure Alternative Simple les branchements peuvent être systématiques : On dit alors qu’ils sont inconditionnels.
Deux règles sont à noter :
- Une Structure Alternative Simple comporte un branchement conditionnel et un seul. Il est placé à la fin de la séquence début de l’alternative.
SI code = « F » faire tel traitement
- Toute Structure Alternative comporte autant de branchements systématiques qu’il y a de branches à l’alternative moins un.
SINON faire tel autre traitement
Remarque :
Dans l’édition d’une Facture ou d’un Avoir on utilise la valeur d’un code F ou A, chacune générant un traitement.
Si seul le total des factures est demandé le code F seul est traité ; mais systématiquement l’autre branche doit figurer vide d’instructions en vue des maintenances futures.
Algorigramme
┌─────────────┐
│ D-TRAIT │
└──────┬──────┘
Code = A ┌─────────●─────────┐ Code = F
┌──────┴──────┐ ┌──────┴──────┐
│ Φ │ │ T-FACTURE │
└─────┬───────┘ └─────┬───────┘
└──────────┬────────┘
┌──────┴──────┐
│ F-TRAIT │
└─────────────┘
- Groupe Alternatif de Données (GAD)
Un sous-ensemble peut être présent :
- 1 fois (1)
- n fois (n)
- 0 ou 1 fois (0,1)
Mais il peut arriver qu’un sous-ensemble soit présent 0 ou n fois.
Il n’y a pas de notation (0,n)
Il faut ramener ce cas à ceux connus
Définition
Dans un référentiel donné, un GAD est un ensemble de Structure Alternative Simple comprenant à son premier niveau de subdivision un sous-ensemble de Structure Répétitive Simple et un seul.
§ Chapitre V
LES STRUCTURES RÉPÉTITIVES COMPLEXES ET MIXTES
- Introduction
Structure Répétitive et Structure Alternative sont des Structures Élémentaires.
- Définition
Un ensemble de données de Structure Complexe est un ensemble dans lequel on rencontre au premier niveau de subdivision de l’ensemble pris comme référentiel plusieurs structures élémentaires.
- Types de structures
- Structure Répétitives Complexe (SRC)
- Structure Alternative Complexe (SAC)
- Structure Complexe Mixte (SCM)
- Structure Répétitive Complexe
Exemple
À partir des fichiers Commandes et Factures on désire établir un État comparatif annuel par Client des commandes reçues et des Factures envoyées par l’entreprise.
Fichiers en entrée
Commandes
Il comporte N articles par Client (N étant différent de 0), classés par ordre croissant des N° de Client.
- N° Client
- N° Commande
- Montant
Factures
Il comporte N articles par Client (N étant différent de 0), classés par ordre croissant des N° de Client.
- N° Client
- N° Facture
- Montant
Traitement
On calcule le Total des Montants Commandes et le Total des Montants Factures pour chaque Client.
On imprime une ligne par Commande, ou par Facture pour chaque Client.
Structuration des données Sortie
┌ ┌
┌ │ N° CLIENT │ N° CDE (1)
│ │ EDD CDE (cd) ◄┤
│ │ TOT CDE (1) │ MONTANT (1)
│ EDD │ └ Niveau 3
FLS ◄┤ CLIENT (c) ◄┤ LIGNE CDE
│ │ ┌
│ │ │ N° FACTURE (1)
│ │ FACTURE (f) ◄┤
└ │ TOT FACTURE (1)│ MONTANT (1)
└ └ Niveau 3
LIGNE FACTURE
Niveau 1 Niveau 2 Niveau 3
CLIENT CDE/FACTURE LIGNE
Nous avons une Structure Répétitive Complexe (SRC) puisqu’il existe plus d’un sous-ensemble de Structure Élémentaire au Niveau Client.
Structuration des données Entrée
┌ ┌
┌ │ │ N° CLIENT (1)
│ │ EDD CDE (cd) ◄┤ N° CDE (1)
│ │ │ MONTANT (1)
│ EDD │ └
EDD FLE ◄┤ CLIENT (c’) ◄┤
│ │ ┌
│ │ EDD │ N° CLIENT (1)
│ │ FACTURE (f) ◄┤ N° FACTURE (1)
└ │ │ MONTANT (1)
└ └
Niveau 1 Niveau 2 Niveau 3
CLIENT CDE/FACTURE ITEM
Structuration du PGM
À Structure Répétitive des données d’Entrée correspond une Structure Répétitive des données du PGM, donc à SRC des données d’Entrée correspond une SRC du PGM.
┌
┌ │ D-CLIENT (1)
│ D-PGM (1) │ D-CDE (1)
│ │ T-CDE (cde’)
│ │ F-CDE (1)
EDD PGM ◄┤ T-CLIENT (cli’) ◄┤ INTER-21 (1)
│ │ D-FACTURE (1)
│ │ T-FACTURE (fac’)
│ F-PGM (1) │ F-FACTURE (1)
└ │ F-CLIENT (1)
└
Algorigramme
┌─────────────┐
010 │ D-PGM │
└──────┬──────┘
│◄────────────────┐
┌──────┴──────┐ │
020 │ D-CLIENT │ │
└──────┬──────┘ │
│◄───────────┐ │
┌──────┴──────┐ │ │
030 │ T-COMMANDE │ │ │
└──────┬──────┘ │ │
●────────────┘ │
┌──────┴──────┐ │
040 │ INTER-21 │ │
└──────┬──────┘ │
│◄───────────┐ │
┌──────┴──────┐ │ │
050 │ T-FACTURE │ │ │
└──────┬──────┘ │ │
●────────────┘ │
┌──────┴──────┐ │
060 │ F-CLIENT │ │
└──────┬──────┘ │
●─────────────────┘
┌──────┴──────┐
070 │ F-PGM │
└─────────────┘
Notion de Séquence Logique Intermédiaire
Définition :
Une Séquence Logique Intermédiaire est une séquence d’un ensemble de Structure Complexe du PGM qui remplit à la fois la fonction de Fin de la Structure Élémentaire qui précède et de Début de la Structure Élémentaire qui suit.
Règle :
Une Structure Complexe comprend deux Structures Élémentaires ou plus ; le nombre de Séquences Logiques Intermédiaires est égal au nombre de Structures Élémentaires du Niveau considéré moins 1. |
Synthèse
Une Structure Répétitive Complexe est un ensemble dans lequel on trouve plusieurs sous-ensembles de Structure Répétitive Simple.
Numérotation des Séquences Logiques Intermédiaires (INTER)
1er chiffre = N° du Niveau ou elle apparaît
2ème chiffre = N° d’ordre dans le Niveau
- Structure Complexe Mixte
Exemple
À partir de deux fichiers, Factures et Remises, on désire dresser la liste des factures adressées à chaque client avec éventuellement le Montant de la Remise qui lui a été accordée.
Fichiers en Entrée :
- Fichier Factures
Il comporte N Articles classés par ordre croissant des numéros de Client. (N différent de 0)
- Fichier Remise
Il comporte 0 ou 1 Article par Client. Les Articles sont classés par numéro de Client.
Structuration des données de Sortie
┌ ┌
│ │ N° CLIENT
│ │
│ EDD │ EDD FACTURE (f)
EDD FLS ◄┤ CLIENT (c) ◄┤
│ │ Total MONTANT (1)
│ │
│ │ REMISE (0,1)
└ └
Niveau 1 Niveau 2
CLIENT FACTURE
Au niveau Client il y a une Structure Complexe Mixte puisqu’il y a une SRS ET une SAS.
Structuration des données d’Entrée
┌
┌ ┌ EDD │ N° CLIENT (1)
│ │ FACTURE (f’) ◄┤
│ │ │ MONTANT (1)
│ EDD │ └
EDD FLE ◄┤ CLIENT (c’) ◄┤
│ │ ┌
│ │ EDD │ N° CLIENT (1)
│ │ REMISE (0,1) ◄┤
└ └ │ MONTANT REMISÉ (1)
└
Niveau 1 Niveau 2 Niveau 3
CLIENT FACTURE ITEM
Structuration du PGM
┌
│ 020 D-CLIENT (1)
┌ │
│ 010 D-PGM │ 030 T-FACTURE (f’)
│ │
│ │ 040 INTER (1)
PGM ◄┤ CLIENT (c’) ◄┤
│ │ 050 T-PASREMISE (0,1)
│ │
│ 080 F-PGM │ 060 T-REMISE (0,1)
└ │
│ 070 F-CLIENT (1)
└
Algorigramme
┌─────────────┐
010 │ D-PGM │
└──────┬──────┘
│◄─────────────────────────┐
┌──────┴──────┐ │
020 │ D-CLIENT │ │
└──────┬──────┘ │
│◄──────────────────────┐ │
┌──────┴──────┐ │ │
030 │ T-FACTURE │ │ │
└──────┬──────┘ │ │
●───────────────────────┘ │
┌──────┴──────┐ │
040 │ INTER │ │
└──────┬──────┘ │
┌─────────────●─────────────┐ │
┌──────┴──────┐ ┌──────┴──────┐ │
050 │ T-REMISE │ 060 │ T-REMISE │ │
└─────┬───────┘ └──────┬──────┘ │
└──────────────┬─────────────┘ │
┌──────┴──────┐ │
070 │ F-CLIENT │ │
└──────┬──────┘ │
●──────────────────────────┘
┌──────┴──────┐
080 │ F-PGM │
└─────────────┘
Synthèse
Un ensemble de données pris comme Référentiel comportant à son premier Niveau de subdivision plusieurs Structures simples, les unes Répétitives, les autres Alternatives est dit de Structure Complexe Mixte.
Remarque :
Cette définition vaut aussi bien pour :
Des Données de Sortie
Des Données d’Entrée
Des Instructions de PGM
§ Chapitre VI
CONCLUSION
- Un informaticien est un organisateur de données :
Il établit une structuration logique hiérarchisée :
- des données de Sortie
- des données d’Entrée
Il construit un PGM : un ensemble s’instructions à partir des données d’Entrée
Il contrôle le PGM avec les données de Sortie
Aucune de ces opérations ne peut-être privilégiée par rapport aux autres :
- Définir la structure hiérarchisée :
- des résultats.
- Définir la structure hiérarchisée :
- des entrées,
- des traitements,
- des résultats.
- Organiser le PGM à partir des entrées et le contrôler à partir des sorties.
- Structurer en sous-ensemble hiérarchisés pour arriver à une organisation en séquences logiques ordonnées.
- Détailler au niveau de chaque séquence logique.
La hiérarchisation est basée sur deux grandes structures élémentaires :
- SRS (Structure Répétitive Simple)
- SAS (Structure Alternative Simple)
Les Structures Complexes sont systématiquement ramenées à des structures simples.
Structure Répétitive Simple
┌─────────────┐
│ D-PROG │
└──────┬──────┘
│◄────────┐
┌──────┴──────┐ │
│ T-PROG │ │
└──────┬──────┘ │
●─────────┘
┌──────┴──────┐
│ F-PROG │
└─────────────┘
Structure Alternative Simple
┌─────────────┐
│ D-PROG │
└──────┬──────┘
┌─────────────●─────────────┐
┌──────┴──────┐ ┌──────┴──────┐
│ T-PROG │ │ T-PROG │
└─────┬───────┘ └──────┬──────┘
└──────────────┬─────────────┘
┌──────┴──────┐
│ F-PROG │
└─────────────┘
- Exercice N° 3 (chapitre VI - exercice d’application)
Le support de cours original ne propose pas de données de sortie. Concevoir ces données de sortie à partir du FLS, du FLE et des consignes de traitement constitue vraisemblablement le but de l’exercice.
Données de sortie

Données d’Entrée
Fichier Clients
DONNÉES |
ATTRIBUTS |
N° Client |
CL_N_CLIENT |
Nom |
CL_NOM |
Adresse |
CL_ADRESSE |
Taux Ristourne |
CL_TX_RISTOURNE |
C.A. HT |
CL_CA_HT |
Un article par client, trié sur le N° Client.
Fichier Produits Commandés
DONNÉES |
T_MVT = 1 |
T_MVT = 2 |
T_MVT = 3 |
N° Client |
PR_N_CLIENT |
EM_N_CLIENT |
PO_N_CLIENT |
Type |
PR_T_MVT |
EM_T_MVT |
PO_T_MVT |
N° Produit |
PR_N_PRODUIT |
EM_N_PRODUIT |
PO_N_PRODUIT |
Quantité |
PR_PU |
EM_PU |
PO_PU |
Quantité |
PR_QTE |
EM_QTE |
PO_QTE |
Taux Remise |
PR_TX_REMISE |
EM_TX_REMISE |
PO_TX_REMISE |
Seuls les articles de Type 1 possèdent éventuellement une remise, si elle est absente, la rubrique remise ne sera pas renseignée sur l’état.
Pour la compréhension du pseudo code, les noms d’attributs sont préfixés d’un radical correspondant au type de mouvement :
- PR pour PRODUIT
- EM pour EMBALLAGE
- PO pour PORT
Traitement
Une société veut établir un état valorisé des produits commandés, à partir du fichier Produits Commandés et du fichier Clients.
Cet état se réalise par client, et pour chaque client, par type de produit.
- Type=1 : produit commandé en tant que tel
- Type=2 : il s’agit d’un emballage
- Type=3 : il s’agit du port pour un produit commandé
Le Montant HT est égal à PU HT X QTE X (100 – Taux Remise) / 100
Le Montant Total HT par Type = Ʃ Montant HT du Type de produit
Total HT par Client = Total produit + Total emballage + Total Port
Chaque client a au moins un produit de type 1 et un produit de type 2, mais 0,n produit(s) de type 3.
┌
│ N° CLIENT (1)
│ NOM (1) ┌
│ │ N° PRODUIT (1)
│ TX RISTOURNE (1) │ QTE (1)
│ │ PU (1)
│ EDD PRODUIT (pr) ◄┤ TX REMISE (0,1)
┌ │ │ MONTANT HT (1)
│ TITRE (1) │ TOT HT PRODUIT (1) │
│ │ │ Niveau 3
│ EDD │ └ LIGNE PRODUIT
FLS ◄┤ CLIENT (c) ◄┤ ┌
│ │ │ N° EMBALLAGE (1)
│ │ │ QTE (1)
│ │ EDD EMBALLAGE (e) ◄┤ PU (1)
│ │ │ MONTANT HT (1)
└ │ TOT HT EMBALLAGE (1)│ Niveau 3
│ └ LIGNE EMBALLAGE
│ ┌
│ ┌ │ N° PORT (1)
│ │ │
│ EDD TYPE PORT (0,1)◄┤ EDD PORT (po) ◄┤ QTE (1)
│ TOT HT CLIENT (1) │ TOT HT PORT (1) │ PU (1)
└ └ │ MONTANT HT (1)
└
Niveau 1 Niveau 2 Niveau 3 Niveau 4
CLIENT PRODUIT/EMBALLAGE TYPE PORT LIGNE PORT
┌
│ N° CLIENT (1)
│ NOM (1) ┌
│ │ N° CLIENT (1)
│ RISTOURNE (1) │ TYPE (1)
│ │ N° PRODUIT (1)
│ EDD PRODUIT (pr’) ◄┤ QTE (1)
┌ │ │ PU (1)
│ │ │ REMISE (0,1)
│ │ │ Niveau 3
│ EDD │ └ ITEM PRODUIT
FLE ◄┤ CLIENT (cl’) ◄┤ ┌
│ │ │ N° CLIENT (1)
│ │ │ TYPE (1)
│ │ EDD EMBALLAGE (em’)◄┤ N° EMBALLAGE (1)
│ │ │ QTE (1)
└ │ │ PU (1)
│ └ Niveau 3
│ ITEM EMBALLAGE ┌
│ ┌ │ N° CLIENT (1)
│ │ │ TYPE (1)
│ EDD TYPE PORT (0,1)◄┤ EDD PORT (po’) ◄┤ N° PORT (1)
└ │ │ QTE (1)
└ │ PU (1)
└
Niveau 1 Niveau 2 Niveau 3 Niveau 4
CLIENT PRODUIT/EMBALLAGE TYPE PORT LIGNE PORT
Validation
- Même nombre de niveaux
- Même structure dans les mêmes référentiels
- Structure Complexe Mixte au Niveau 2 du FLE et du FLS
- Les ensembles sont cohérents c=c’, p=p’, e=e’ et po=po’
Règles de gestion
- MONTANT HT (niveau PRODUIT) = PU X QTE X (100 - TAUX REMISE) / 100 (si remise)
- MONTANT HT (niveau PRODUIT) = PU X QTE + EMBALLAGE + PORT (si pas de remise)
- TOTHT CLIENT (niveau CLIENT) = TOTHT PROD + TOTHT EMB + TOTHT PORT
- FLS = Φ
┌
┌ │ 030 D-PRODUIT (1)
│ 020 D-CLIENT (1) │
│ │ 040 T-PAS-RISTOURNE (0,1)
│ T-PRODUIT (pr’) ◄┤
┌ │ │ 050 T-RISTOURNE (0,1)
│ 010 D-PROG (1) │ 070 INTER-21 │
│ │ │ 060 F-PRODUIT (1)
│ │ 080 T-EMBALLAGE (e’) └ Niveau 3
PROG ◄┤ CLIENT (c’) ◄┤ RISTOURNE
│ │ 090 INTER-22
│ │ ┌
│ │ 100 PAS-DE-PORT (0,1) │ 110 D-PORT (1)
│ 150 F-PROG (1) │ │
└ │ T-PORT (0,1) ◄┤ 120 T-PORT (po’)
│ │
│ 140 F-CLIENT (1) │ 130 F-PORT (1)
└ └ Niveau 3
PORT
Niveau 1 Niveau 2
CLIENT PRODUIT/EMBALLAGE
Algorigramme
┌─────────────┐
010 │ D-PROG │
└──────┬──────┘
│◄─────────────────────────┐
┌──────┴──────┐ │
020 │ D-CLIENT │ │
└──────┬──────┘ │
│◄──────────────────────┐ │
┌──────┴──────┐ │ │
030 │ D-PRODUIT │ │ │
└──────┬──────┘ │ │
┌─────────────●─────────────┐ │ │
┌──────┴──────┐ ┌──────┴──────┐ │ │
040 │ T-REMISE │ 050 │ T-REMISE │ │ │
└─────┬───────┘ └─────┬───────┘ │ │
└──────────────┬────────────┘ │ │
┌──────┴──────┐ │ │
060 │ F-PRODUIT │ │ │
└──────┬──────┘ │ │
●───────────────────────┘ │
┌──────┴──────┐ │
070 │ INTER │ │
└──────┬──────┘ │
│◄──────────────────────┐ │
┌──────┴──────┐ │ │
080 │ T-EMBALLAGE │ │ │
└──────┬──────┘ │ │
●───────────────────────┘ │
┌──────┴──────┐ │
090 │ INTER │ │
└──────┬──────┘ │
┌─────────────●─────────────┐ │
┌──────┴──────┐ ┌──────┴──────┐ │
100 │ T-PORT │ 110 │ D-PORT │ │
└──────┬──────┘ └──────┬──────┘ │
│ │◄────────┐ │
│ ┌──────┴──────┐ │ │
│ 120 │ T-PORT │ │ │
│ └──────┬──────┘ │ │
│ ●─────────┘ │
│ ┌──────┴──────┐ │
│ 130 │ F-PORT │ │
│ └──────┬──────┘ │
└─────────────┬─────────────┘ │
┌──────┴──────┐ │
140 │ F-CLIENT │ │
└──────┬──────┘ │
●──────────────────────────┘
┌──────┴──────┐
150 │ F-PROG │
└─────────────┘
Pseudo code
Niveau 1 PROG
D-PROG
SL 010
Répéter T-CLIENT jusqu’à FF Client
SL 150
F-PROG |
Niveau 2 T-CLIENT
D-CLIENT
SL 020
Répéter T-PRODUIT jusqu’à Type 1
SL 070 INTER-21
Répéter T-EMBALLAGE jusqu’à Type 2
SL 090 INTER-22
Si Type 3
Alors T-PAS-DE-PORT
Sinon T-PORT
SL 140
F-CLIENT |
Niveau 3 T- PRODUIT
D-PRODUIT
SL 030
Si Taux Remise = 0
Alors exécuter T-PAS-DE-REMISE
Sinon exécuter T-REMISE
F-PRODUIT |
Niveau 3 T- PORT
D-PORT
SL 110
Répéter T-PORT jusqu’à Client
SL 130
F-PORT |
Rappel :
MVT |
MouVemenT |
MEP |
Mise En Page |
MEI |
Mise à l’État Initial |
MER |
Mise En Réserve |
RAZ |
Remise À Zéro |
SL 010 D-PROG
Ouvrir Fichier Clients, Fichier Produits
MEP titre dans la ligne d’édition
Sortie de la ligne titre et MEI
Lecture Fichier Clients
Lecture Fichier Produits |
SL 020 D-CLIENT
Ranger en mémoire le N_CLIENT
RAZ : CL_TOTAL_CLIENT PR_TOTAL_PRODUIT, EM_TOTAL_EMBALLAGE et PO_TOTAL_PORT
MEP : CL_N_CLIENT, CL_NOM, CL_TX_RISTOURNE dans la ligne Titre
Sortie de la ligne titre et MEI de la ligne Titre |
SL 030 D-PRODUIT
MEP : PR_N_PRODUIT, PR_QTE, PR_PU PR_TX_REMISE dans la ligne MVT
PR_MONTANT_HT = PR_PU X PR_QTE |
SL 050 T-REMISE
PR_MONTANT_HT = PR_MONTANT_HT X (100 – PR_TAUX_REMISE) / 100
MEP dans la ligne MVT |
SL 060 F-PRODUIT
PR_TOTAL_PRODUIT = PR_TOTAL_PRODUIT + PR_MONTANT_HT
MEP : PR_MONTANT_HT dans ligne MVT
Sortie ligne MVT et MEI
Lecture Fichier Produits |
SL 070 INTER-21
MEP : PR_TOTAL_PRODUIT dans ligne TOTAL
Sortie ligne PR_TOTAL_PRODUIT et MEI
CL_TOTAL_CLIENT = CL_TOTAL_CLIENT + PR_TOTAL_PRODUIT |
SL 080 T-EMBALLAGE
EM_MONTANT_HT = PR_PU x PR_QTE
MER : EM_N_EMBALLAGE, EM_QTE, EM_PU, EM_MONTANT_HT dans ligne MVT
Sortie ligne MVT et MEI
Lecture Fichier Produits
EM_TOTAL_EMBALLAGE = EM_TOTAL_EMBALLAGE + EM_MONTANT_HT |
SL 090 INTER 22
MEP : EM_TOTAL_EMBALLAGE dans la ligne TOTAL
Sortie ligne EM_TOTAL_EMBALLAGE et MEI
CL_TOTAL_CLIENT = CL_TOTAL_CLIENT + EM_TOTAL_EMBALLAGE |
SL 120 T-PORT
PO_MONTANT_HT = PR_PU x PR_QTE
PO_TOTAL_PORT = PO_TOTAL_PORT + PO_MONTANT_HT
MEP : PO_N_PROD, PO_QTE, PO_PU, PO_MONTANT_HT dans ligne MVT
Sortie ligne MVT et MEI
Lecture Fichier Produits |
SL 130 F-PORT
MEP : PO_TOTAL_PORT dans ligne TOTAL
Sortie ligne PO_TOTAL_PORT et MEI
CL_TOTAL_CLIENT = CL_TOTAL_CLIENT + PO_TOTAL_PORT |
SL 140 F-CLIENT
MEP : CL_TOTAL_CLIENT dans ligne TOTAL
Sortie ligne CL_TOTAL_CLIENT et MEI
Lecture Fichier Clients |
SL 150 F-PROG
Fermer les fichiers Produits et Clients
Arrêter |
§ Chapitre VII
LES PHASES DE TRAITEMENTS
- Introduction
Qu’est-ce que la logique d’un PGM ? C’est déterminer si une donnée appartient ou non à un ensemble devant subir un traitement particulier.
Une donnée d’entrée doit avoir un Critère d’Identification (CI) qui sera comparé à un Critère de Référence (CR).
Exemple
Déterminer la taille moyenne des enfants de 10 ans dans une école, sachant qu’on possède la taille de tous les élèves.
- Donnée « taille », CI = Âge, CR = 10 ans.
Le critère n’est pas toujours présent dans l’ensemble des données d’entrée ; tous les ensembles de données ne sont pas présent lors de l’Intro des données.
On dit que ce type de donnée est une donnée de phase (φ).
- Exemples N° 1
Soient 3 valeurs A, B, et C.
Calculer X de la manière suivante :
- Calculer D = A + B
- Si D > 0 calculer X = C – D
- Si D 0 calculer X = C + D
┌
│
FLS ◄┤ X (1)
│
└
┌
│ A (1)
FLE ◄┤ B (1)
│ C (1)
└
La validation est impossible parce que pour avoir X il faut 2 alternatives or dans le FLE il n’y a pas d‘alternative.
X peut-être obtenu grâce :
- Au CI valeur obtenue pour D
- Au CR = 0
D n’est pas présent dans le FLE mais il peut être obtenu grâce à une première phase de traitement.
┌
│
FLS ◄┤ D (1)
│
└
┌
│ A (1)
FLE ◄┤ B (1
│ C (1)
└
┌
│
PGM ◄┤ Calcul de D est une donnée de phase
│
└
(Phase 1)
D peut être réintroduit comme donnée d’entrée de la 2ème phase du traitement.
Pour structurer la 2ème phase : donnée obtenue par la 1ère phase et les données faisant partie de cette 1ère phase.
C’est un Fichier Logique de Phase 2.
┌
│
│
FLP ◄┤ D [<0 (0,1)]
│
│
└
Réf FLE
Remarque
Il est important de faire apparaître le référentiel sous le FLP car les données de phases n’apparaissent pas toujours au même niveau et peuvent donc être utilisées à des niveaux différents.
Le Fichier Logique de Phase FLP se note aussi : φ |
- Définition d’une phase de traitement
Tout PGM comporte au moins une phase de traitement. Les phases de traitement autres que la première, sont des sous-ensembles du PGM, traitant des sous-ensembles dont les Critères d’Identification (CI), absents à l’entrée, ont été crées par des instructions appartenant à la phase précédente du même PGM.
- Exemple N° 2
En fin d’année une entreprise désire éditer l’état suivant :

Pour cela elle utilise en Entrée un fichier Ventes comportant plusieurs articles par Client, mais triés sur le N° Secteur et sur le N° Client.
Fichier Entrée Ventes :
- N° Secteur
- N° Client
- Qté
- PU
- Divers
Traitement
- Pour un client : C.A. = Ʃ (Qté X PU)
- Une remise, R de 10% du C.A. est accordée à tout client dont le C.A. est 1000 Euros.
- On totalise par secteur les C.A. et les Remises.
┌ ┌ ┌ ┌
│ │ │ │
│ │ │ │ N° SECTEUR (1)
│ EDD │ EDD │ EDD │ N° CLIENT (1)
EDD FLS ◄┤ SECTEUR ◄┤ CLIENT ◄┤ ARTICLE ◄┤ QTÉ (1)
│ (s fois) │ (c fois) │ (a fois) │ PU (1)
│ │ │ │ DIVERS (1)
│ │ │ │
└ └ └ └
Niveau 1 Niveau 2 Niveau 3 Niveau 4
SECTEUR CLIENT ARTICLE LIGNE
Validation
Alternative au 3ème Niveau concernant la remise.
C.A. = Ʃ (Qté X PU) Remise
Si C.A. >= 1000 il y a Remise
Le CR 1000 = constante caractérise les clients pouvant bénéficier d’une remise.
Le CI : CA, identifie le client pour savoir s’il aura ou non une remise.
Or ce CI est absent du FLE, mais il peut être calculé par des instructions du PGM lors d’une première phase φ de traitement. C’est une donnée de phase.
Définition
Tout critère d’identification (CI) d’un ensemble de données qui est déterminé par des instructions du PGM est une donnée de phase.
Remarque
Seul un CI peut être une donnée de phase.
Une donnée, objet du traitement et générée au cours du PGM n’est pas une donnée de φ si elle ne sert pas de CI (même si elle ne sert pas de CR).
Validation (suite)
- Totaux par secteur
- Total C.A. = Ʃ des Montants (PU X QTE)
- Total Remise = Ʃ des Remise par client (0,1), par secteur
- Règles
Règle N° 1
Quand un PGM comprend une φ ou plus, on doit rédiger un tableau descriptif des données à l’entrée de chacune des φ. Ce tableau est construit comme un FLE et obéit aux mêmes règles, on l’appelle FLPn, n étant le numéro de la φ, avec n>1. |
Rappel
Les données de φ peuvent apparaître et être utilisées à des niveaux différents. Il faut donc indiquer le (ou les) référentiels de chaque FLPn.
┌ ┌ ┌ ┌
│ │ │ │
│ │ │ │ N° SECTEUR (1)
│ EDD │ EDD │ EDD │ N° CLIENT (1)
EDD FLE ◄┤ SECTEUR ◄┤ CLIENT ◄┤ ARTICLE ◄┤ QTÉ (1)
│ (s’ fois) │ (c’ fois) │ (a’ fois) │ PU (1)
│ │ │ │ DIVERS (1)
│ │ │ │
└ └ └ └
Niveau 1 Niveau 2 Niveau 3 Niveau 4
SECTEUR CLIENT ARTICLE ITEM
Validation (suite)
- FLP2 { C.A.[ 1000 (0,1)]
- Réf 1 Client
Règle N° 2
La construction du sous-ensemble du PGM correspondant à une φ de traitement se déduit du FLP correspondant. |
Les lois de construction sont les mêmes que pour exploiter le FLE.
┌ ┌ ┌
│ 010 D-PGM (1) │ 020 D-SECTEUR (1) │ 030 D-CLIENT (1)
│ │ │ 040 T-ARTICLE (a’)
│ │ │
PGM ◄┤ T-SECTEUR (s’) ◄┤ T-CLIENT (c’) ◄┤ 050 INTER (1)
│ │ │ 060 T-REMISE (0,1)
│ │ │ 070 T-PASREMISE (0,1)
│ 100 F-PGM (1) │ 090 F-SECTEUR (1) │ 080 F-CLIENT (1)
└ └ └
Règle N° 3
L’ensemble des données à l’entrée d’une φ, différente de la première, constituant un sous-ensemble des sorties de la φ qui précède, doit être pris en compte pour effectuer le contrôle du PGM (validation). |
Remarque
Certaines données de φ peuvent être normalement absentes du FLS.
Dans l’exercice N° 3 précédant, le C.A. pourrait être absent du FLS si seule une liste de remises était demandée.
- Cas d’apparition des données de phase
Les données de φ sont très fréquentes en informatique de gestion et en informatique scientifique.
Les critères d’identification (CI), ou données de phase apparaissent lorsque doivent être testés :
- le résultat d’un calcul
- un compteur (saut de page par exemple)
- un indicateur positionné dans un endroit quelconque du PGM.
- Cas du changement de page
On veut imprimer une liste dont chaque page contient 50 lignes.
Traitement à effectuer :
Se positionner en haut d’une nouvelle page après l’édition de la 50ème ligne.
Comment reconnaître la 50ème ligne.
Un compteur de ligne est déclaré dans le PGM :
- Au début de la page il est positionné à 0.
- À chaque ligne imprimée il sera incrémenté de 1.
Le compteur de lignes est comparé avant chaque impression au CR = 49, constante du PGM.
Hypothèse
L’édition des lignes fait partie de la phase 1 du PGM.
Conclusion
Le changement de page fait partie de la phase 2.
Il faut donc déduire les données d’entrée de la 2.
┌
│
FLP2 ◄┤ Compteur [>49] (0,1)]
│
└
┌
│ D-PROG (1)
│ CHGT (0,1)
PROG ◄┤
│ PASCHGT (0,1)
│ F-PROG (1)
└
§ Chapitre VIII
LA STRUCTURE ALTERNATIVE COMPLEXE (SAC)
- Introduction
Définition
Un ensemble de données comportant à son premier niveau de subdivision plusieurs sous-ensembles non exclusifs de Structure Alternative Simple est dit de Structure Alternative Complexe.
Par convention les notations 0 ou 1 fois pour les sous-ensembles seront réunies par le signe + pour signifier la non exclusivité des sous-ensembles.
Exemple
- Données d’Entrée d’un PGM concernant un stock de matières premières dans une entreprise.
- 2 Fichiers physiques (triés sur le N° de Produit)
- AS = Fichiers Ancien Stock (0 ou 1 fois par produit)
- MVT = Fichier MouVemenT (0 ou 1 fois par produit)
┌
┌ │
│ EDD │ AS (0,1)
E ◄┤ 1 PRODUIT (p) ◄┤ +
│ │ MVT (0,1)
└ │
└
Dans cet exemple précédent nous avons 3 actions possibles :
- Duplication si pas MVT = A1
- Création si pas AS = A2
- Modification si AS et MVT = A3
Approche par les fonctions
- Pour A1 tester le fichier MVT
A1 = PAS MVT
- Pour A2 tester le fichier AS
A2 = PAS AS
- Pour A3 tester AS et MVT
A3 = AS + MVT
Pour A3 nous avons un test complexe.
Pour l‘éviter au début un indicateur est positionné à 0, à chaque fois que MVT ou AS est testé, 1 est ajouté à l’indicateur, dans le dernier test il suffit de tester la valeur de l’indic à 2.
Approche par les données
MVT |
AS |
A1 |
A2 |
A3 |
0 |
0 |
φ |
φ |
φ |
0 |
1 |
X |
|
|
1 |
0 |
|
X |
|
1 |
1 |
|
|
X |
Les conditions sont importantes
Recenser tous les cas possibles en partant de la table de vérité, sous forme d’arborescence totale.
Remarque
- Le premier test effectué portera sur la présence MVT.
- En faisant ce choix le test sur MVT est appelé PIVOT de l’arborescence.
- AS aurait pu être pris comme pivot.
- STATIQUE dans le PGM lui même le nombre de tests est le même (AS ou MVT comme pivot)
- DYNAMIQUE lié au contenu des fichiers (en nombre d’enregistrements)
Exemple
Si les produits sur AS représentent 55% des produits traités et ceux de MVT 45%
En prenant MVT comme pivot
100 tests au pivot
45 produits AS seront testés
En prenant AS comme pivot
100 tests au pivot
55 produits seront testés sur MVT
155 tests en tout
Dans ce cas, dynamiquement MVT comme pivot est préférable.
Loi N° 3 de Structuration du PGM
À toute structure Alternative Complexe des données à l’entrée correspond 1 table de vérité dont l’exploitation permet la structuration du programme. |
Les sorties obéissent à trois règles :
Règle N° 1
Lorsqu’un sous-ensemble de données à la sortie peut résulter de plusieurs actions, on doit compléter le tableau descriptif des données à la sortie en listant entre crochets, à côté de chaque résultat, les différentes actions à partir desquelles il peut être obtenu. Ces actions figurent, le cas échéant, dans les tables de vérité. |
Règle N° 2
Lorsque la même donnée de sortie a plusieurs actions de traitements pour origine, on considère dans un premier temps, qu’il y a autant de données de sortie que d’origines. Dans un second temps, on regroupe les données de sortie communes à plusieurs traitements lorsque les simplifications par l’algèbre de Boole le permettent. |
Règle N° 3
La description de l’ensemble S barre des données traitées pour lesquelles il n’y a pas de sorties à commander lors du déroulement du PGM doit toujours être effectué.
Les interdictions de sortie constituent des actions qui figurent dans les tables de vérité au même titre que les actions de sortie ou de préparation des sorties.
Par approche par les données l’arborescence hiérarchise les tests. |
Remarque
Dans la plupart des cas l’arborescence est la meilleure solution dynamiquement parlant et toujours la meilleur statiquement parlant.
Établissement d’une table de vérité
-Indiquer sur le FLS, si nécessaire, les actions (traitements) à l’origine des sorties.
- Vérifier que les occurrences sont les mêmes choses dans le FLE et le FLS. Si ce n’est pas le cas, indiquer les conditions de rejets, ce qui correspond à une traitement particulier.
- Rechercher dans le FLE les conditions à tester.
- Préciser le référentiel.
- Retrouver ce référentiel dans le FLS.
- Noter dans la table des actions alternatives origines des résultats de ce référentiel et dépendant directement des conditions.
- Établir la table de vérité.
- Au niveau de chaque action faire apparaître les ensembles vides de données.
Étude d’une table de vérité
But : obtenir des solutions optimisées du point de vue des tests à effectuer (temps d’exécution du PGM).
- Actions disjointes ou incluses
- Actions en intersection
- Cas général
- Cas des actions disjointes ou incluses
Règle
Lorsque les sous-ensembles de données sur lesquels portent les actions sont disjoints ou inclus, la structure optimisée du PGM est une arborescence.
Quand après simplification, l’expression Booléenne d’une action se présente comme la réunion de n sous-ensemble, cette action doit être considérée comme n actions indépendantes pour la construction du PGM. |
Remarque
Dans la pratique les n actions identiques et indépendantes sont remplacées par l’appel à une sous programme.
Recherche de points d’optimisation
Selon la variable choisie comme pivot (point) les arborescences pourront être différentes.
Règle
Lorsque la simplification des expressions Booléennes est effectuée, les variables sont ordonnées et celle qui apparaît le plus fréquemment est choisie comme pivot. |
- Actions en intersections. Alternatives consécutives
Règle
Lorsque les sous-ensembles de données d’une table de vérité sont en intersection, la structure optimisée du PGM est une structure en Alternatives Consécutives. |
Remarque
Tout ensemble doit être en intersection avec les autres.
Quand on a n variables et qu’il y a 2n ou 2n – 1 fonctions l’arborescence donne 3 tests statiques et 2 dynamiques, l’alternative consécutive donne 4 tests statiques et 4 dynamiques.
Remarque
Les appels à des sous programmes pratiques avec l’arborescence sont inutiles avec l’alternative consécutive.
L’arborescence à toujours son intérêt quant aux tests dynamiques.
- Solutions combinées
Définition
On appelle solutions combinées, celles qui consistent à bâtir le PGM à partir de la table de vérité en partie en arborescence et en partie en alternative complexe ou consécutive (le nombre de solutions est pratiquement illimité).
Règle
Une solution combinée doit être recherchée chaque fois que l’étude d’une table de vérité fait apparaître des sous-ensembles de données disjoints ou inclus et d’autres non. |
De manière générale on va trouver 2 catégories de solutions combinées.
- Celles dont le plus haut niveau est constitué par une alternative complexe, auquel cas aucune des variables Booléennes n’est présente dans toutes les expressions.
- Celles dont le plus haut niveau est constitué par la racine d’une arborescence, auquel cas au moins une des variables est présente dans toutes les expressions Booléennes.
■ ■ ■ § ANNEXES ■ ■ ■
- Lois, Règles et Principes
■ Les Lois du traitement rationnel des données
Loi n° 1
Tout ensemble doit être défini en compréhension.
Loi n° 2
Tout ensemble doit être rigoureusement défini.
Loi n° 3
Les relations entre les différents sous-ensembles doivent être rigoureusement définies.
Loi n° 4
Toute correspondance entre deux sous-ensembles doit être une application.
■ Les lois de subdivision
Loi n° 1
On subdivise un ensemble de données s’il comprend des sous-ensembles qui peuvent s’y trouver présents un nombre de fois différent de 1.
Loi n° 2
On énumère dans leur ordre d’écriture les rubriques composant l’ensemble non sub-divisible, s’il y a lieu.
■ La loi de correspondance : l’application
Loi d’application
À un élément de l’ensemble de niveau inférieur (N° Client) correspond un élément de l’ensemble de niveau supérieur l’incluant. Il y a donc application.
On dit qu’il y a application de A sur B si quel que soit a de A il existe un seul élément b de B.
■ Les lois et règles d’un ensemble de structure répétitive
Règle
Un ensemble de Structure Répétitive est un ensemble dans lequel on utilise plusieurs sous-ensembles de données de même nature.
Loi de structuration N° 1 du PGM
À toute structure répétitive à l’entrée, correspond une structure répétitive du programme, et une seule.
Règle d’application
L’ensemble « Programme de structure répétitive » comprend toujours :
- un début à exécuter 1 fois
- un sous-ensemble répétitif à exécuter n fois
- une fin à exécuter 1 fois.
■ Les lois et règles d’un ensemble de structure alternative
Loi de structuration N° 2 du PGM
À toute structure Alternative des données à l’entrée correspond une structure Alternative du PGM et une seule.
Règle
Un ensemble de PGM de structure Alternative comprend toujours :
- Un sous-ensemble Début exécuté 1 fois
- Deux sous-ensembles exécutés 0 ou 1 fois à l’exclusion l’un de l’autre
- Un sous-ensemble Fin exécuté 1 fois
■ Les lois et règles d’un ensemble de structure complexe
Règle
Une Structure Complexe comprend deux Structures Élémentaires ou plus ; le nombre de Séquences Logiques Intermédiaires est égal au nombre de Structures Élémentaires du Niveau considéré moins 1.
Loi N° 3 de Structuration du PGM
À toute structure Alternative Complexe des données à l’entrée correspond 1 table de vérité dont l’exploitation permet la structuration du programme.
■ Structuration des données de Sortie
Règle N° 1
Lorsqu’un sous-ensemble de données à la sortie peut résulter de plusieurs actions, on doit compléter le tableau descriptif des données à la sortie en listant entre crochets, à côté de chaque résultat, les différentes actions à partir desquelles il peut être obtenu. Ces actions figurent, le cas échéant, dans les tables de vérité.
Règle N° 2
Lorsque la même donnée de sortie a plusieurs actions de traitements pour origine, on considère dans un premier temps, qu’il y a autant de données de sortie que d’origines. Dans un second temps, on regroupe les données de sortie communes à plusieurs traitements lorsque les simplifications par l’algèbre de Boole le permettent.
Règle N° 3
La description de l’ensemble S barre des données traitées pour lesquelles il n’y a pas de sorties à commander lors du déroulement du PGM doit toujours être effectué.
■ Structuration des données d’Entrée
Règle
La construction d’un programme se fait à partir du FLE.
Principe
Lorsqu’un code est utilisé une fois dans un ensemble et qu’il peut prendre deux valeurs A et A’ testées au cours du PGM, on peut écrire l’ensemble de la manière suivante :
Ens. { code [= X, 0,1 fois]
■ Cas des actions disjointes ou incluses
Règle
Lorsque les sous-ensembles de données sur lesquels portent les actions sont disjoints ou inclus, la structure optimisée du PGM est une arborescence.
Quand après simplification, l’expression Booléenne d’une action se présente comme la réunion de n sous-ensemble, cette action doit être considérée comme n actions indépendantes pour la construction du PGM.
Règle
Lorsque la simplification des expressions Booléennes est effectuée, les variables sont ordonnées et celle qui apparaît le plus fréquemment est choisie comme pivot.
■ Actions en intersections. Alternatives consécutives
Règle
Lorsque les sous-ensembles de données d’une table de vérité sont en intersection, la structure optimisée du PGM est une structure en Alternatives Consécutives.
Règle
Une solution combinée doit être recherchée chaque fois que l’étude d’une table de vérité fait apparaître des sous-ensembles de données disjoints ou inclus et d’autres non.
■ Organisation détaillée
Deux règles sont à noter :
- Une Structure Alternative Simple comporte un branchement conditionnel et un seul. Il est placé à la fin de la séquence début de l’alternative.
SI code = « F » faire tel traitement
- Toute Structure Alternative comporte autant de branchements systématiques qu’il y a de branches à l’alternative moins un.
SINON faire tel autre traitement
Règle
Une instruction correspond à une séquence logique si elle est exécutée le même nombre de fois au même endroit du programme.
Règle
Le traitement d’un ensemble de données ne doit commencer que lorsque le critère d’identification des éléments de cet ensemble a été fixé et rangé.
■ Les phases de traitements
Règle N° 1
Quand un PGM comprend une φ ou plus, on doit rédiger un tableau descriptif des données à l’entrée de chacune des φ. Ce tableau est construit comme un FLE et obéit aux mêmes règles, on l’appelle FLPn, "n" étant le numéro de la φ, avec n>1.
Règle N° 2
La construction du sous-ensemble du PGM correspondant à une φ de traitement se déduit du FLP correspondant.
Règle N° 3
L’ensemble des données à l’entrée d’une φ, différente de la première, constituant un sous-ensemble des sorties de la φ qui précède, doit être pris en compte pour effectuer le contrôle du PGM (validation).
- SIGLES et LEXIQUE
SIGLES |
LEXIQUE |
EDD |
Ensemble Des Données |
SL |
Séquence Logique |
FLE |
Fichier Logique d’Entrée |
FLS |
Fichier Logique de Sortie |
FLP |
Fichier Logique de Phase (se note aussi φ) |
φ |
Phase |
SE |
Structure Élémentaire |
SA |
Structure Alternative |
SR |
Structure Répétitive |
SAS |
Structure Alternative Simple |
SAC |
Structure Alternative Complexe |
SRC |
Structure Répétitive Complexe |
SRC |
Structure Répétitive Complexe |
SCM |
Structure Complexe Mixte |
INTER |
Structure Logique INTERmédiaire |
GAD |
Groupe Alternatif de Données |
PGM |
ProGraMme |
PROG |
PROGramme |
D |
Début |
T |
Traitement |
F |
Fin |
MVT |
MouVemenT |
MEP |
Mise En Page |
MEI |
Mise à l’État Initial |
MER |
Mise En Réserve |
RAZ |
Remise À Zéro |
FF |
Fin Fichier |
EOF |
End Of File |
CI |
Critère d’Identification |
CR |
Critère de Référence |
ZC |
Zone de Calcul |
ZM |
Zone de Manœuvre |
ZR |
Zone de Réserve |
- Quelques liens très utiles
 |
Ingénieur chez Bull, Jean-Dominique WARNIER commença à publier au début des années 1970 de nombreux ouvrages concernant l'algorithmique et ses méthodes novatrices en matière de programmation.
L'un des plus retentissants livres de Jean-Dominique WARNIER est son fameux « Logique de Construction des Programmes », plus connu sous l'abréviation LCP.
Internet Archive propose une version eBook de ce livre publié en 1983 :
PÉCIS DE LOGIQUE INFORMATIQUE (Jean-Dominique WARNIER)
CONSTRUCTION ET TRANSFORMATION DES PROGRAMMES
|
Tous les livres de Jean-Dominique WARNIER sont épuisés et ne seront vraisemblablement jamais réédités. Nous ne sommes plus que quatre inconditionnels à pérenniser ses travaux : Serge Meneut, M. Tourneur, Didier Genevois et moi-même APL-AML.
La logique informatique (Blog de Serge Meneut - 01/09/2016 à fin 16/03/2017 – Rév. 2025)
C’est presque toute l’œuvre de J-D Warnier (LDR, LCS, LCO, LCP) expliquée pédagogiquement.
Logique de Construction des Programmes (Blog de M. Tourneur – 2000-2006)
Source : Support de cours (1975, peut-être), pas de mise en page mais contenu intéressant.
[TUTORIEL] Logique de Construction des Programmes (Billet de Blog APL-AML + PDF)
Source : Blog de M. Tourneur mis en page et retravaillé.
Méthodologie de programmation LCP (Billet blog APL-AML)
Source : Réflexion personnelle, philosophique, pratique, sur LCP et le développement.
LA PROGRAMMATION RATIONNELLE (Billet blog APL-AML)
Source : Support de cours d’Yves LEROY (1971)
Méthode Warnier (Page du site www.indg.fr)
Source : Didier Genevois (INDG)
Jean-Dominique Warnier (08/05/2020 - 05/08/1990)
Source : Wikipédia
Adeli – Explorateurs Des Espaces Numériques
- Notions sur les ensembles