SECTION I : LANGUAGE DE DEFINITION ALGORITHMIQUE D UN DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 7. EXRERCICE n 3...8 SYSTEME...8



Documents pareils
INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

ARBRES BINAIRES DE RECHERCHE

3L8PW = EP - 308A 6L24P = EP -624A

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Groupe Eyrolles, 2004, ISBN :

UE 8 Systèmes d information de gestion Le programme

Les nouveaux tableaux de bord des managers

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

Cours A7 : Temps Réel

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

avast! EP: Installer avast! Small Office Administration

TELEPHONE SANS FIL TELEFUNKEN TC 151. (avec répondeur) TELEFUNKEN TC 101 MODE D EMPLOI

ENREGISTREMENT COMPTABLE DE LA TVA

Messagerie vocale Édition Îles-de-la-Madeleine. Guide d utilisation télébec telebec.com

CLIP. (Calling Line Identification Presentation) Appareil autonome affichant le numéro appelant

FLEX 3. Applications Internet riches avec Flash ActionScript 3, MXML et Flex Builder. Aurélien Vannieuwenhuyze

Algorithmique et structures de données I

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

UTILISATION DE LA BORNE PAR LE CLIENT

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Définitions. Numéro à préciser. (Durée : )

REALISATION d'un. ORDONNANCEUR à ECHEANCES

affectation après la classe de

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Groupe Eyrolles, 2004 ISBN :

Ordre du jour provisoire pour la COP12

ITIL. optimal. pour un service informatique. 2 e édition C H R I S T I A N D U M O N T. Préface de Patrick Abad

Liste des règles 1. Texte original. (Etat le 1 er septembre 2008)

Instructions et spécifications pour la transmission en format XML de déclarations par lots. 30 mai 2015 MODULE 1

Motorola S2200. Telephone numerique sans fil avec la technologie Bluetooth. S2201, S2202, S2203 et S2204

GUIDE DE L USAGER DE LA MESSAGERIE VOCALE

ACCORD SUR LES RELATIONS CINÉMATOGRAPHIQUES ENTRE LE GOUVERNEMENT DU CANADA ET LE GOUVERNEMENT DE L'ESPAGNE

Introduction aux Bases de Données

Logiciel Libre Cours 3 Fondements: Génie Logiciel

PARTIE 1. Phénoménologie

BSM 9.0 ESSENTIALS. Nouveaux utilisateurs de Business Service Management (BSM) 9.0, parmi lesquels :

PROGRAMME DU CONCOURS DE RÉDACTEUR INFORMATICIEN

Mémento poste a.910. Poste analogique compatible réseau public et

Algorithme. Table des matières

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

MANUEL D UTILISATION (simplifié) DE LA CENTRALE LS-30

STATUTS DE L ASSOCIATION DE L ESPACE DE VIE ENFANTINE LES MOUSSAILLONS

MODE OPERATOIRE DE LA SAISIE DE VIREMENTS SOUS FORME DE LISTE

Gestion de Stock sous Excel (GSE) Version 1.5.2

GUIDE D'UTILISATION DU SYSTEME TELEPHONIQUE POLYCOM

Guide pratique pour les gestionnaires de flotte

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

TABLE DES MATIÈRES. Avant-propos... Remerciements... CHAPITRE 1 LA COMPTABILITÉ DE MANAGEMENT... 1

Évaluation et implémentation des langages

Cours 1 : Qu est-ce que la programmation?

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

CH.3 SYSTÈMES D'EXPLOITATION

DECOUVERTE DU PABX E.VOLUTION

IV- Comment fonctionne un ordinateur?

Table des matières. Avant-propos... Préface... XIII. Remerciements...

STAGE IREM 0- Premiers pas en Python

Licence Sciences et Technologies Examen janvier 2010

Manuel d utilisation 26 juin Tâche à effectuer : écrire un algorithme 2

Bedienungsanleitung Spezialtelefon. Operation Instructions Special telephone. Gebruiksaanwijzing Speciale telefoon

Faculté d administration FIS-734 MANDAT FISCAL COMPLÉTER UNE T2

Structurer ses données : les tableaux. Introduction à la programmation

4D Server et les licences : fonctionnement et environnement

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Nota : Veuillez remplir le reste du formulaire et signer la Partie XXIX.

Guide d utilisation (version canadienne) ML17929 Téléphone à deux lignes à cordon et afficheur/afficheur de l appel en attente

modélisation solide et dessin technique

Algorithmes récursifs

Annexe I Préconisation pour le travail sur écran

Guide de fonctions du téléphone du système SCI Norstar

Modélisation des données

programmation S initier à la la Avec des exemples en C, C++, C#, Java et PHP Avec des exemples en C, C++, C#, Java et PHP Claude Delannoy

Sommaire Préface...XV Introduction générale... XVII Introduction à la 2e édition... XXI Définir le tableau de bord...1

PARCOURS COMPLET AU COURS MOYEN

Guide de l utilisateur de Cisco Unified Communications Manager Assistant pour Cisco Unified Communications Manager 6.0

Virtualisation. du poste de travail Windows 7 et 8. avec Windows Server 2012

LOGICIEL DE GESTION DE DOCUMENTS PDF : PROJET INFO 1

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Groupe Eyrolles, 2006, ISBN :

FernTel 3. Téléphone à l épreuve des intempéries. Mode d emploi. Modèle à 21 touches à afficheur. Modèle sans touches ni afficheur

Cours Informatique 1. Monsieur SADOUNI Salheddine

JULIE SMS V2.0.1 NOTICE D INSTALLATION ET D UTILISATION

Tel : Fax :

MÉTHODOLOGIE PROJET SYSTÈME D INFORMATION DÉCISIONNEL BI - BUSINESS INTELLIGENCE. En résumé :

(Enregistré sous le n à la préfecture de Paris en date du 3 juillet 2012)

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Statuts. de l Agence. internationale pour les. énergies renouvelables (IRENA)

Guide Numériser vers FTP

Systèmes de communications Aastra Poste Aastra Guide de l utilisateur

Statuts de l Association Suisse des Tambours et Fifres

Sécurité et mobilité Windows 8

Guide pratique et juridique de l expatrié

Association «les Breumailles de la Bonne Eure» EHPAD de Bracieux 31, rue de Candy

Pirelli Discus TM DP-L10 Téléphone bimode WLAN/GSM. Guide d utilisation

CESI Bases de données

M740. Guide de l utilisateur

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Nouveau! Accédez directement à vos messages vocaux, sans mot de passe, en faisant le nouveau code 9 8 * à partir du téléphone

b. Nom de l établissement/du point de vente (y compris l adresse postale et l adresse municipale)

ELP 304 : Électronique Numérique. Cours 1 Introduction

A L ERT. Pour démarrer rapidement avec

Transcription:

Table des matières SECTION I : LANGUAGE DE DEFINITION ALGORITHMIQUE D UN DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 7 EXRERCICE n 3...8 SYSTEME...8 I. PROCESSEUR DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...8 A. LE CLIENT DU SYSTEME DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 8 B. LE DISTRIBUTEUR AUTOMATQUE DE CARBURANT... 9 1. LES PORTS D ENTRES DU DISTRIBUTEUR AUTOMATIQUE... 9 2. LES PORTS DE SORTIES DU DISTRIBUTEUR AUTOMATIQUE... 9 3. L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 10 II. DEFINITION DES TYPES DE BASES DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...10 a) LES TYPES D ETAT DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 10 b) LES TYPES D OBJET DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 11 III. DECLARATION DES CONSTRUCTEURS DE TYPPES DU SYTEME DE DISTRIBUTEUR AUTOMATIQUE...12 IV. DEFINITION DES TYPES CONCTRUITS DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...12 V. DECLARATION DES CONSTANTES DU SYSTEME DE DISTRIBUTEUR AUTOMMATIQUE DE CARBURANT...13 i. CONSTANTES D ETAT DU SYSTEME DE DISTRIBUTEUR... 13

ii. CONSTANTES D OBJET DUU SYSTEME DE DISTRIBUTEUR... 13 VI. DECLARATION DES VARIABLES D ETAT DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE...14 VII. DECLARATION DES VARIABLES D OBJETS DU SYSTEME DE DISRIBUTEUR AUTOMATIQUE...15 VIII. DEFINITION DES OPERATIONS DE BASE DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...15 A. LES OPERATIONS DE BASES DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 15 IX. 1 OPERATIONS DE BASES DE LECTURE... 16 2 OPERATIONS DE BASES DE SORTIE... 19 3 OPERATIONS D ACTION BASES... 23 a. LES OPERATIONS DE DECODAGE DE L UNITE DE TRAITEMENT... 24 b. LES OPERATIONS DE CODAGE DE L UNITE DE TRAITEMENT... 26 c. LES OPERATIONS DE STRATES DE L UNITE DE TRAITEMENT... 29 B. LES OPERATIONS DE BASES DU CLIENT... 32 DECLARATION DES STRUCTURES ALGORITHMIQUES DE BASE 38 X. DEFINITION DES PROCEDURES INTERMEDIAIRES DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...38 1 LES PROCEDURES INTERMEDIAIRES DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE... 38 2 LES OPERATIONS INTERMEDIAIRES DU CLIENT... 41 3 LES PROOCEDURES INTERMEDIAIRESS DE CHAQUE COMPOSANT DU PROCCESSEUR.DU SYSTEME DE DISTRIBUTEUR AUTOMATIQU DE CARBURANT... 43 XI. ALGORITHME PRINCIPAL DU DISTRIBUTEUR AUTOMATIQUE DE CARBURNT...49 FINSYSTEME....49

SECTION II: ARCHITECTURE LOGICIELLE D'UN DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...50 ARCHITECTURE LOGICIELLE DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...51 I. DEFINITION... 51 II. LEGENDE DE L ARCHITECTURE DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 51 III. COMPOSANTS DU SYSTEME DU DISRIBUTEUR AUTOMATIQUE DE CARBURANT... 52 A. COMPOSANTS DES PORTS D ENTREE DU DISTRIBUTEUR AUTOMATIQUE ET LEURS OPERATIONS... 53 B. COMPOSANTS DE PORTS DE SORTIE DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT ET LEURS OPERATIONS.... 54 C. LES OPERATIONS DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 55 a) LES OPERATIONS DE DECODAGE DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 56 b) LES OPERATIONS DE CODAGE DE L UNITE DE TRAITEMENT... 57 c) LES OPERATIONS DE STRATES DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT... 58 D. LES OPERATIONS INTERMEDIAIRES DU CLIENT... 59 1. LES OPERATIONS PRIMITIVES DU CLIENT... 60 SECTION III : LANGUAGE DE DEFINITION ALGORITHMIQUE D UN COMMUTATEUR TELEPHONIQUE...63 EXRERCICE n 1...64 SYSTEME...64 PROCESSEUR DU SYSTEME DE COMMUTATEUR TELEPHONIQUE...64

E. L ABONNE DU COMMUTATEUR TELEPHONIQUE... 64 C. LE COMMUTATEUR DU COMMUTATEUR TELEPHONIQUE... 65 4. LES PORTS D ENTRES DU COMMUTATEUR... 65 5. LES PORTS DE SORTIES DU COMMUTATEUR TELEPHONIQUE... 65 6. L UNITE DE TRAITEMENT DU COMMUTATEUR TELEPHONIIQUE... 66 XII. DEFINITION DES TYPES DE BASES DU SYSTEME DE COMMUTATEUR TELEPHONIQUE...66 c) LES TYPES D ETAT DU SYSTEME DU COMMUTATEUR TELEPHONIQUE... 66 d) LES TYPES D OBJET DU SYSTEME DU COMMUTATEUR TELEPHONIQUE. 67 XIII. DECLARATION DES CONSTRUCTEURS DE TYPPES DU SYTEME DU COMMUTATEUR TELEPHONIQUE...67 XIV. DEFINITION DES TYPES CONCTRUITS DU SYSTEME DU COMMUTATEUR TELEPHONIIQUE... 67 XV. DECLARATION DES CONSTANTES DU SYSTEME DU COMMUTATEUR TELEPHONIQUE...68 iii. CONSTANTES D ETAT DU SYSTEME DU COMMUTATEUR... 68 iv. CONSTANTES D OBJET DU SYSTEME DU COMMUTATEUR... 68 XVI. DECLARATION DES VARIABLES D ETAT DU SYSTEME DU COMMUATEUR TELEPHONIQUE...68 XVII. DECLARATION DES VARIABLES D OBJETS DU COMMUTATEUR TELEPHONIQUES...69 XVIII. DEFINITION DES OPERATIONS DE BASE DU SYSTEME DU COMMUTATEUR TELEPHONIQUE...69 C. LES OPERATIONS DE BASES DU COMMMUTATEUR... 70 4 OPERATIONS DE BASES DE LECTURE... 70 5 OPERATIONS DE BASES DE SORTIE... 74 6 OPERATIONS D ACTION BASES DU COMMUTATEUR TELEPHONIQUE.. 76 d. LES OPERATIONS DE DECODAGE DE L UNITE DE TRAITEMENT... 76 e. LES OPERATIONS DE CODAGE DE L UNITE DE TRAITEMENT... 77 f. LES OPERATIONS DE STRATES DE L UNITE DE TRAITEMENT... 79 D. LES OPERATIONS DE BASES DE L ABONNE DU SYSTEME DU COMMUTATEUR... 80

XIX. DECLARATION DES STRUCTURES ALGORITHMIQUES DE BASE 82 XX. DEFINITION DES PROCEDURES INTERMEDIAIRES DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT...82 4 LES PROCEDURES INTERMEDIAIRES DE L UNITE DE TRAITEMENT DU SYSTEME DU COMMUTATEUR... 83 5 LES OPERATIONS INTERMEDIAIRES DE L ABONNE DU SYSTEME DU COMMUTATEUR TELEPHONQUE... 83 6 LES PROCEDURES INTERMEDIAIRESS DE CHAQUE COMPOSANT DU PROCCESSEUR. DU SYSTEME DE DU COMMUTATEUR TELEPHONIQUE... 84 XXI. ALGORITHME PRINCIPAL DU DISTRIBUTEUR AUTOMATIQUE DE CARBURNT...88 FINSYSTEME....89 SECTION IV: ARCHITECTURE LOGICIELLE D UN COMMUTATEUR TELEPHONIQUE...90 ARCHITECTURE LOGICIELLE DU COMMUUTATEUR TELEPHONIQUE 91 IV. DEFINITION... 91 V. LEGENDE DE L ACHITECTURE DU SYSTEME DU COMMUTATEUR TELEPHONIQUE.... 91 VI. COMPOSANTS DU SYSTEME DU COMMUTATEUR TELEPPHONIQUE... 92 F. COMPOSANTS DES PORTS D ENTREE DU SYSTEME DU COMMUTATEUR TELEPHONIQUE... 93 G. COMPOSANTS DE PORTS DE SORTIE DU COMMUTATEUR TELEPHONIQUE... 94 H. LES OPERATIONS DE L UNITE DE TRAITEMENT DU COMMUTATEUR TELEPHONIQUE... 95 I. LES OPERATIONS INTERMEDIAIRES ET PRIMITIVES DE L ABONNE DU COMMUTATEUR TELEPHONIQUE... 96

SECTION I : LANGUAGE DE DEFINITION ALGORITHMIQUE D UN DISTRIBUTEUR AUTOMATIQUE DE CARBURANT

EXRERCICE n 3 Cet exercice a pour but de faire ressortir un LDA (langage de définition d algorithme) d un distributeur automatique de carburant. Un LDA utilisant un ensemble de mots clés et de structures permettant de décrire de manières complète, claire, l ensemble des opérations à exécuter (par le processeur du distributeur automatique) sur des données pour obtenir des résultats. SYSTEME Le système considéré ici est le DISTRIBUTEUR AUTOMATIQUE DE CARBURANT. I. PROCESSEUR DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT : IL s agit de ce qui est chargé d exécuter les opérations pour transformer les objets d entrés distributeur en ses objets de s. La machine virtuelle considérée ici est alors constitué du client qui est un homme et du distributeur automatique de carburant. Ce distributeur lui-même comprend des ports d entrés, des ports de s, une unité de traitement. A. LE CLIENT DU SYSTEME DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Il s agit ici de l homme.c est lui qui apporte des objets de l environnement au système et reçoit les résultats à la suite de

toute les transformations. Il nous permet en fait de mieux comprendre le fonctionnement du système. B. LE DISTRIBUTEUR AUTOMATQUE DE CARBURANT IL comprend : 1. LES PORTS D ENTRES DU DISTRIBUTEUR AUTOMATIQUE Ce sont des ports qui ont pour simple rôle de coder les objets d entrées du problème à résoudre en objets manipulés par l unité de traitement. En un mot, ils ne sont pas d ôter d intelligence et captent juste des informations venant de l extérieur du système. Ce sont : Un lecteur-de-carte Un afficheur-de-code Un interface-de sélection-type-carburant Un interface-sélection-quantité-carburant 2. LES PORTS DE SORTIES DU DISTRIBUTEUR AUTOMATIQUE Ce sont aussi des ports non d ôter d intelligence mais qui décodent des objets produits en par l unité de traitement en objets de s du problème. Il s agit de : Un éjecteur-de-carte Un afficheur-de- sélection-type-carburant Un afficheur-de-sélection-quantité-carburant Un éditeur- de- reçu

Trois pistolets (Un pistolet -pour -le- gasoil Un pistolet -pour- l essence -sans- plomb Un pistolet- pour- l essence- super) Un compteur -volume consomme Un compteur - prix- à payer 3. L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT. Ici se passe une description rigoureuse du processus de transformation des objets d entrées en s. On parle ainsi du mode opératoire. II. DEFINITION DES TYPES DE BASES DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des types élémentaires que le processeur comprend et manipule.ce distributeur distingue les types d état et les types d objets. a) LES TYPES D ETAT DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des constantes qui permettent de comprendre l état de chaque élément du processeur du distributeur. A chaque composant du processeur correspond donc un type d état. Etat client= {désintéressé, en-attente,en-choix-typecarburant,en-choix-quantité-carburant,en-choix-,enretrait-reçu,en-retrait-carte } Etat-lecteur-de-carte={en- service, vide.}

Etat-unite-de traitement={en-service, en-panne } Etat-gâchette= {appuyée, relâchée, rangée.} Etat-éditeur= {en-service, en-panne, vide...} Etat-interface-de-sélection-type-carburant ={en-service } Etat-interface-de-sélection-quantité-carburant= {enservice } Etat-compteur={en-service, en-panne }/*il s agit ici de n importe quel compteur*/ Etat-pistolet= {retiré, rangé }/*il s agit ici de tout type de pistolet*/ etat-afficheur-de-sélection-type-carburant ={en-service } etat-afficheur-de-sélection-quantité-carburant ={enservice } etat-ejecteur de-carte={en panne,vide } b) LES TYPES D OBJET DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des objets élémentaires manipulés par le processeur. Quantité-carburant, Type-carburant, Carte, Code, Evènement, Montant-argent, Message, Booléen Infos-Carte Infos-Type-Carburant Infos-Quantité-Carburant Infos Info Reçu-Fabrique

III. DECLARATION DES CONSTRUCTEURS DE TYPPES DU SYTEME DE DISTRIBUTEUR AUTOMATIQUE Ce sont des fonctions qui permettent de construire les types dérivés à partir des types d objets de bases. Nous utiliserons le constructeur Enregistrement de : enregistrement () IV. DEFINITION DES TYPES CONCTRUITS DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des types non primitifs formés à partir des types de bases en utilisant les constructeurs de types. Ils sont appelés des types composites.. Etat-distributeur=enregistrement ( etat-pistolet-gasoil : Etat- pistolet-gasoil etat-pistolet-sans-plomb : Etat-pistolet-essence etat-pistolet-super : Etat-pistolet-super etat-compteur-prix-unitaire : Etat-compteurprix-unitaire etat-compteur-volume: Etat-compteur-volume etat-compteur-prix-a-payer: Etat-compteurprix-à- payer etat-lecteur-de-carte : Etat-lecteur-de-carte etat-unite-de traitement : Etat-unite-de traitement etat-gâchette : Etat-gâchette etat-éditeur : Etat-éditeur etat-compteur : Etat-compteur etat-pistolet : Etat-pistolet etat-interface-de-sélection-type-carburant : Etat-interface- de-sélection-type-carburant

etat-interface-de-sélection-quantitécarburant : Etat- interface-de-sélectionquantité-carburant) etat-afficheur-de-sélection-type-carburant : Etat-afficheur-de-sélection-type-carburant etat-afficheur-de-sélection-quantitécarburant : Etat-afficheur-de-sélection-quantitécarburant etat-afficheur- de -code : etat-afficheur- de - code etat-ejecteur de-carte : Etat-ejecteur decarte) V. DECLARATION DES CONSTANTES DU SYSTEME DE DISTRIBUTEUR AUTOMMATIQUE DE CARBURANT i. CONSTANTES D ETAT DU SYSTEME DE DISTRIBUTEUR Elles permettent de déterminer l état du processeur du distributeur automatique. Elles sont déjà listées dans la partie 3 cidessus. ii. CONSTANTES D OBJET DUU SYSTEME DE DISTRIBUTEUR Ce sont des objets manipulés par le processeur mais qui ne changent par de valeur au cour du processus. /*prix-unitaire-de-carburant*/ prix-unitaire-super : Montant-Argent, prix-unitaire-gasoil : Montant-Argent, prix-unitaire-sans-plomb : Montant-Argent /*pas des compteurs*/

pas-compteur-volume : Quantité-carburant, pas-compteur-prix-a-payer : Montant-argent /*événements particuliers*/ rupture-de-stock : Evènement VI. DECLARATION DES VARIABLES D ETAT DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE Ce sont des variables permettant d observer l état du processeur. A chaque type d état correspond donc une variable d état. etat -client : Etat-client etat-lecteur-de-carte : Etat-lecteur-de-carte etat-unite-de traitement : Etat-unite-de traitement etat-pistolet : Etat-pistolet etat-éditeur : Etat-éditeur etat-interface-de-sélection-type-carburant : Etat- interface-desélection-type-carburant etat-interface-de-sélection-quantité-carburant : Etat-interfacede-sélection-quantité-carburant etat-compteur :Etat-compteur etat-gâchette : Etat-gâchette etat-afficheur-de-sélection-type-carburant : Etat-afficheurde-sélection-type-carburant etat-afficheur-de-sélection-quantité-carburant : Etatafficheur-de-sélection-quantité-carburant etat-ejecteur de-carte : Etat-ejecteur de-carte) etat-afficheur- de -code : Etat-afficheur- de- code

VII. DECLARATION DES VARIABLES D OBJETS DU SYSTEME DE DISRIBUTEUR AUTOMATIQUE Il s agit des objets qui ont des valeurs variantes au cour du processus. carburant-choisi : Type-carburant montant-programmé : Montant-argent quantité-programmé : Quantité-carburant montant-a-payer : Montant-Argent quantité-livrée : Quantité-carburant évènement : Evènement infos-carte : Infos-Carte infos-type-carburant : Infos-Type-Carburant infos-quantité-carburant : Infos-Quantité-Carburant infos : Infos info : Info reçu-fabrique : Reçu-Fabrique VIII. DEFINITION DES OPERATIONS DE BASE DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des opérations exécuter.. élémentaires que le processeur sait A. LES OPERATIONS DE BASES DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Le distributeur automatique de carburant distingue des opérations de lecture, de et d action.

1 OPERATIONS DE BASES DE LECTURE Ce sont des opérations exécutées par les ports d entrées. L hors de l exécution de ces opérations, les ports d entrés du distributeur captent des informations de l environnement raison pour laquelle elles ont pour domaine Nil. Cela signifie que l unité de traitement ne manipule pas directement les objets d entrée. Le lecteur-de-carte sait : lire-infos-carte Le lecteur capte des infos de la carte inséré par le client. Lire-infos-carte: Nil------------------Infos-carte entrée contraintes en entrée : la carte est insérée dans le lecteur- de -carte. etat processeur en entrée= {etat-lecteur=carte-insere etat-client=en-attente} Contraintes en : rien etat processeur en ={ etat-lecteur=carte-insere etat-client=en-attente} procedure lire-infos-carte (variables infos-carte : Infos-carte, etat-lecteur : Etat-lecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrées/s*/ l afficheur de code lire-infos-code

L afficheur de code capte les infos du code du client. lire-infos-code : Nil infos-code entree contraintes en entrée : la carte est insérer dans le lecteur- de -carte. etat processeur en entrée={ etat-lecteur=carte-insere, etat-client=en-attente} contraintes en : rien etat processeur en ={ etat-lecteur {carte-insere, vide} etat-client =en-attente} procedure lire-infos-code (variables infos-code: Infos-code, etat-lecteur : Etatlecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrées/s*/ L interface-de-sélection-type-carburant sait : lire- infos-type-carburant Le client envoi le message à l interface pour préciser le type de carburant choisi. lire- infos-type-carburant : Nil Infos-type-carburant entree contraintes en entrée : rien

etat processeur en entrée={etat-client=en-choix-typecarburant} contraintes en : le type de carburant à consommé est choisi etat processeur en ={etat-client=en-attente} procedure lire- infos-type-carburant (variables infos-type-carburant : Infostype-carburant, etat-client : Etat-client) /* etat-client est en entrée/*/ L interface-de-sélection-quantité-carburant sait : lire- infos-quantite-carburant Le client envoi le message à l interface pour préciser la quantité de carburant programmé. lire- infos- quantite -carburant :Nil Infos-quantité-carburant entree contraintes en entrée : Rien etat processeur en entrée={ etat-client=en-choixquantité-carburant} contraintes en : la quantité de carburant à consommer est programmée. etat processeur en = {etat-client=en-attente} procedure lire- infos- quantite-carburant (variables infos- quantitecarburant : Infos- quantite -carburant, etat-client : Etat-client) /* etat-client est en entrée/*/

2 OPERATIONS DE BASES DE SORTIE Ce sont des opérations exécutées par des ports de s du distributeur automatique. L hors de l exécution de ces opérations. Les ports de s envoient à l environnement des objets de s de l unité de traitement décodés et ces objets ne sont par reconnu par le processeur, c est pour cela que ces opérations auront pour codomaine Nil. L éjecteur-de-carte sait : éjecter-carte Le l ejecteur ressort la carte du client. éjecter-carte : Nil Nil entree contraintes en entrée : la carte est insérée dans le lecteur etat processeur en entrée= {etat-lecteur=carte-insere etat-client {en-choix-, en- attente}} contraintes en : la carte n est plus dans le lecteur etat processeur en = {etat-lecteur=vide etat-client=désintéressé} procedure éjecter-carte( variables etat-lecteur : Etat-lecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrées/s*/

L afficheur-de-sélection-type-carburant sait : émettre-message L afficheur confirme au client le type de carburant choisi. Afficher-type-carburant-choisi : Infos-type-carburant..Nil entree contraintes en entrée : le tye de carburant est choisi etat processeur en entrée={ etat-client=en-attente} contraintes en : Rien etat processeur en ={ etat-client=en-attente} procedure afficher-type-carburant-choisi ( variables infos-tye-carburant : Infos-tye-carburant, etat-client : Etat-client) /* etat-client est en entrée/*/ L afficheur-de-sélection-quantite-carburant sait : émettre-message L afficheur confirme au client la quantité de carburant qu il a programmé. afficher-quantité-carburant-choisi : Infos- quantite -carburant Nil entree Contraintes en entrée : la quantite de carburant est choisi etat processeur en entrée= {etat-client=en-attente} Contraintes en : Rien etat processeur en = {etat-client=en-attente}

procedure afficher-quantité-carburant-choisi ( variables infos- quantite - carburant : Infos- quantite -carburant, etat-client : Etat-client) /* etat-client est en entrée/*/ L editeur sait imprimer-reçu L editeur prend le reçu fabriqué par l unité de traitement et le retourne à l extérieur. imprimer-reçu : reçu-fabriqué Nil entrée contraintes en entree : le réçu est fabriqué etat processeur en entrée= {etat-client=en-attente} contraintes en : Rien etat processeur en = {etat-client=en-retrait-reçu} procedure imprimer-reçu(variables reçu-fabrique : Reçu-fabrique etat- client: Etat- client) /* etat-client est en entrée/*/ Le compteur-prix-à-payer sait : afficher-prix-à-payer Le compteur affiche le montant d argent que le client va payer. afficher -prix-à-payer : Montant-Argent Nil entree contraintes en entrée : le montant à payer est connu etat processeur en entrée={etat-compteur=en-arrêt}

contraintes en : rien etat processeur en = {etat-compteur=en-service etat-client=en-attente} procedure afficher-prix-à-payer (variables montant-argent: Montant -Argent, etat-compteur : Etat-compteur, etat- client: Etat- client) /* etat-compteur est en entrée/*/ Le compteur-volume-consomme sait afficher-volume-consomme Le compteur affiche le volume du carburant que le client à consommé. afficher-volume-consomme :Infos-Quantité-Carburant Nil entree contraintes en entrée : la quantité de carburant est compté etat processeur en entrée= {etat-compteur=en-service etat-client=en-attente} contraintes en : Rien etat processeur en = {etat-compteur=en-service etat-client=en-attente} procedure afficher-volume-consomme (variables infos-quantité-carburant: Infos-Quantité-Carburant, etat-compteur : Etat-compteur, etat- client: Etatclient) /* etat-compteur et etat client sont en entrées/s*/

Le pistolet sait : libérer-carburant Le pistolet fait couler le carburant. libérer-carburant : Infos-Type-Carburant Nil entrée contraintes en entrée : le type de carburant consommé est connu etat processeur en entrée={ etat-pistolet=tiré etat-gâchette=rangée } contraintes en : rien etat processeur en = {etat-pistolet {rangé,tiré} procedure libérer-carburant (variables infos-type-carburant: Infos-Type- Carburant, etat- pistolet: Etat- pistolet, etat- gâchette: Etat- gâchette) /* etat- pistolet est en entrée/*/ 3 OPERATIONS D ACTION BASES Il s agit en fait des opérations exécutées par l unité de traitement. Au cours de leurs exécutions, l unité de traitement du distributeur automatique transforme des objets d entrées en objets de. Ces opérations sont en fait divisées en trois : Les opérations de décodage, les opérations de codage et certaines opérations appelés les Strates.

a. LES OPERATIONS DE DECODAGE DE L UNITE DE TRAITEMENT Ici l unité de traitement décode les objets d entrée du problème en objet d entrés manipulés par lui même. verifier-carte L unité de traitement vérifie si les infos de la carte sont bonnes ou pas. verifier -carte :Infos- Carte Booléen entree contraintes en entrée : la Carte est inséreé dans le lecteur- de- carte. etat processeur en entrée={ etat-lecteur=carte-insere, etat-client=en-attente} contraintes en : vrai si la carte est bonne et faux sinon. etat processeur en ={ etat-lecteur=carte-insere etat-client=en-attente} procedure verifier-carte (variables infos-carte: Infos- Carte, etat- lecteur: Etat- lecteur, etat-client: Etat- client) /* etat- client et etat-lecteur sont en entrée/*/ lire-code L unité de traitement lire les infos-code correspondant à la carte. lire-code :Infos- Carte..Code

entree contraintes en entrée :les infos-cartes sont captés de l extérieur. etat processeur en entrée={ etat-lecteur=carte-insere, etatclient=en-attente} Contraintes en : Code etat processeur en ={ etat-lecteur=carte-insere etat-client=en-attente} procedure lire-code (variables infos-carte: Infos- Carte, code : Code, etatlecteur: Etat- lecteur, etat-client: Etat- client) /* etat- client et etat-lecteur sont en entrée/*/ vérifier-code L unité de traitement verifie si le code correspond à la carte. verifier-code : Infos-Code..Booleen entree contraintes en entrée : code etat processeur en entrée= {etat-lecteur=carte-insere, etat-client=en-attente} Contraintes en : vrai le code est juste et faux sinon. etat processeur en ={ etat-lecteur=carte-insere etat-client=en-attente} procedure verifier-code (variables infos-code: Infos- Code, etat- lecteur: Etatlecteur, etat-client: Etat- client) /* etat- client et etat-lecteur sont en entrée/*/

verifier-solde L unité de traitement vérifie si le montant d argent dans le compte du client lui permet de consommer la quantité programmmée. verifier-solde : Infos-Carte, Infos-Quantite-Carburant Booléen entree contraintes en entrée : Infos-Carte, Infos-Quantite- Carburant etat processeur en entrée={ etat-lecteur=carte-insere} contraintes en : vrai si le solde suffisant et faux sinon etat processeur en ={ etat-lecteur =carte-insere, } procedure verifier-solde (variables infos- carte: Infos- Carte, infos-quantitecarburant : Infos-Quantite-Carburant, etat- lecteur: Etat- lecteur,) /* etat-lecteur est en entrée/*/ b. LES OPERATIONS DE CODAGE DE L UNITE DE TRAITEMENT Ici l unité de traitement code ses objets de en objet de du problème. fabriquer-reçu L unité de traitement du distributeur fabrique le reçu du client et l envoie à l éditeur de reçu. Fabriquer-reçu :Infos-Carte,Quantite-Carburant,Montant- Argent Reçu-Fabriqué entree

contraintes en entrée : Infos-Carte, Quantite-Carburant, Montant- Argent etat processeur en entrée={ etat-lecteur=carte-insere} contraintes en : Reçu-Fabriqué etat processeur en ={ etat-lecteur =carte-insere, } procedure fabriquer-reçu (variables infos- carte: Infos- Carte, quantitecarburant : Quantite-Carburant, montant- argent : Montant- Argent,etatlecteur: Etat- lecteur,) /* etat-lecteur est en entrée/*/ envoyer-infos-type-carburant L unité de traitement envoie des infos-type - carburant-choisi à l afficheur-de selection-type carburant. envoyer-infos-type-carburant :Infos-Type-Carburant Nil entree contraintes en entrée : Infos-Type-Carburant etat processeur en entrée={ etat-client=en attente} contraintes en : rien etat processeur en ={ etat-client=en attente, } procedure envoyer-infos-type-carburant(variables Infos-Type-Carburant : Infos-Type-Carburant,etat- client: Etat- client,) /* etat-client est en entrée/*/ envoyer-infos-quantité-carburant L unité de traitement envoie des infos-quantitécarburant à l afficheur-de-selection-quantite-carburant.

envoyer-infos-quantité-carburant :Infos-Quantite -Carburant Nil entree contraintes en entrée : Infos- Quantite -Carburant etat processeur en entrée={ etat-client=en attente} contraintes en : rien etat processeur en ={ etat-client=en attente, } procedure envoyer-infos- quantite -carburant(variables Infos- quantite - Carburant : Infos- quantite -Carburant,etat- client: Etat- client,) /* etat-client est en entrée/*/ envoyer-infos-prix-à-payer envoyer-prix-à-payer :Montant-Argent.Nil L unité de traitement envoie le montant à payer au compteur prix-à-payer. entree contraintes en entrée : Montant-Argent etat processeur en entrée={ etat-client=en attente} contraintes en : rien etat processeur en ={ etat-client=en attente, } procedure envoyer-infos-prix-à-payer (variables Montant-Argent : Montant- Argent, etat- client: Etat- client,) /* etat-client est en entrée/*/

c. LES OPERATIONS DE STRATES DE L UNITE DE TRAITEMENT demander-code L unité de traitement affiche un message au client lui demandant de faire entrez son code. demander-code : Nil Nil entree contraintes en entrée : rien etat processeur en entrée= {etat-lecteur=carte-insere, etat-client=en-attente} contraintes en : rien etat processeur en = {etat-lecteur=carte-insere etat-client=en-identification} procedure demander-code(variables etat- lecteur: Etat- lecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrée/*/ débiter-solde L unité de traitement retire de l argent dans le compte du client. débiter-solde : Infos-Carte Montant-Argent entree contraintes en entrée : Infos-Carte etat processeur en entrée={ etat-lecteur=carte-insere, etat-client {en-choix-type-carburant, en- choixquantité-carburant,} contraintes en : Montant-Argent

etat processeur en ={ etat-lecteur {carte-insere, vide} etat-client {en retrait-reçu, en-choix-} procedure débiter-solde (variables infos-carte : Infos-Carte, montant-argent : Montant-Argent, etat- lecteur: Etat- lecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrée/*/ propulser-carburant L unité de traitement pousse le carburant vers le pistolet du distributeur. propulser-carburant : Nil.Nil entrée contraintes en entrée : il ya le carburant dans le reservoir du distributeur. etat processeur en entrée={ etat-pistolet=tiré} contraintes en : rien etat processeur en = {etat-pistolet=rangée} procedure propulser-carburant (variables etat-pistolet : Etat-pistolet) /* etat-pistolet est en entrées/s*/ compter-prix-à-payer L unité de traitement compte le montant d argent que le client va payer. compter-prix-à-payer : Infos -Quantité-Consommé Montant-Argent entree contraintes en entrée : Infos Quantité-Consommé etat processeur en entrée={etat-compteur=en-arrêt}

contraintes en : Montant-Argent etat processeur en = {etat-compteur=en- marche, etat-client=en-attente} procedure compter-prix-à-payer (variables infos -quantité- consommé : Infos Quantité-Consommé, montant-argent : Montant-Argent, etat- compteur : Etat- compteur, etat-client : Etat-client) /* etat- compteur et etat client sont en entrées/s*/ compter-volume-consommé L unité de traitement compte le volume du carburant que le client à consommé. compter-volume-consommé : Nil.Quantité-Carburant entree contraintes en entrée : Rien etat processeur en entrée= {etat-compteur=en- service etat-client=en-attente} contraintes en : Quantité-Carburant etat processeur en = {etat-compteur=en-service etat-client=en-attente} procedure compter-volume-consomme (variables quantité-carburantconsommé : Quantité-Carburant-Consommé, etat- compteur : Etat- compteur, etat-client : Etat-client) /* etat- compteur et etat client sont en entrées/s*/

B. LES OPERATIONS DE BASES DU CLIENT Le client sait : insérer-carte Le client insère sa carte dans le lecteur de carte insérer-carte : Nil.. Nil entree contraintes en entrée : rien etat processeur en entrée={etat-client=intéresse etat-lecteur=vide} contraintes en : rien etat processeur en ={etat-client=en attente etat-lecteur=carte-insere} procedure inserer-carte(variables etat-client : Etat-client, etat-lecteur :Etatlecteur) /*etat-client et etat-lecteur sont ici des variables d entré /*/ saisir-code Le client saisir son code sur le clavier du lecteur. saisir-code : Code..Nil entree contraintes en entrée : la carte est inséré dans le lecteur etat processeur en entrée={etat-lecteur=carte-insere etat-client=en identification} contraintes en : Code

etat processeur en ={etat-lecteur=carte-insere etat-client=en-attente} procedure saisir-code(var code : Code, etat-client : Etat-client, etatlecteur :Etat-lecteur) /*etat-client et etat-lecteur sont ici des variables d entré /*/ sélectionner-type-carburant Le client fait le choix du carburant qu il désire. sélectionner-type-carburant : Nil..Nil entree contraintes en entrée : rien etat processeur en entrée={etat-client=en choix-type carburant} contraintes en : rien etat processeur en ={etat-interface-de-selection - type- carburant=en service} procedure sélectionner-type-carburant (variables etat-client : Etat-client, etat-interface-de-selection -type- carburant :Etat-interface-de-selection -typecarburant) indiquer-quantité-carburant Le client précise la quantité du carburant qu il a désiré. indiquer-quantité-carburant :Nil.Nil entree contraintes en entrée : rien

etat processeur en entrée={etat-client=en-choixquantité-carburant} contraintes en : rien etat processeur en ={etat-pistolet=rangé} procedure selectionner-quantite-carburant (variables etat-client : Etatclient, etat-pistolet : Etat-pistolet) tirer-pistolet Le client tire le pistolet du carburant qu il a choisi. tirer-pistolet :Nil..Nil entree contraintes en entrée : rien etat processeur en entrée={etat-pistolet=rangé.} contraintes en : rien etat processeur en ={etat-pistolet=tiré etat-gâchette=rangée} procedure tirer-pistolet (variables etat-gâchette: Etat-gâchette, etat-pistolet : Etat-pistolet) /* etat-pistolet est en entrée/*/

appuyer-gâchette Lorsque le client tire le pistolet, il appuie ensuite sur la gâchette afin que le moteur propulse le carburant. appuyer-gâchette :Nil Nil entree contraintes en entrée : rien etat processeur en entrée={ etat-pistolet=tiré etat-gâchette=rangée } contraintes en : rien etat processeur en ={ etat-pistolet=tiré etat-gâchette=appuye } procedure appuyer-gâchette (variables etat-gâchette: Etat-gâchette, etatpistolet : Etat-pistolet) /* etat-pistolet et etat-gâchette sont en entrée/*/ relâcher-gâchette Le client relâche la gâchette pour arrêter la propulsion du carburant. relâcher-gâchette :Nil Nil entree contraintes en entrée : rien etat processeur en entrée= {etat-gâchette=appuye} contraintes en : rien etat processeur en = {etat-gâchette=relâche}

procedure relâcher-gâchette (variables etat-gâchette: Etat-gâchette, etatpistolet : Etat-pistolet) /* etat-gâchette est en entrée/*/ remettre-pistolet Lorsque la propulsion du liquide est arrêté, le client remet le pistolet. remettre-pistolet : Nil.Nil entree contraintes en entrée : rien etat processeur en entrée={ etat-pistolet= tiré etat-gâchette= relache } contraintes en : etat processeur en ={ etat-pistolet=rangé etat-gâchette=relâche } procedure relâcher-gâchette (variables etat-gâchette: Etat-gâchette, etatpistolet : Etat-pistolet) /* etat-pistolet et etat-gâchette sont en entrée/*/ recevoir-carte Lorsque le client fini de se servir, il reçoit sa carte.

recevoir-carte : Nil Carte entree contraintes en entrée : rien etat processeur en entrée={etat-lecteur=carte-insere etat-client=en retrait-carte} contraintes en : Carte etat processeur en = {etat-lecteur=vide etat-client {en retrait-reçu, en- choix-} procedure recevoir-carte (variables etat- lecteur: Etat- lecteur, etat- client : Etat- client) /* etat- lecteur et etat- client sont en entrée/*/ } prendre-reçu A la fin de son service, le client prend le reçu s il veut. prendre-reçu :Nil..Reçu entree contraintes en entrée : rien etat processeur en entrée={etat-client=en- retrait-reçu, etat-editeur=en-service} contraintes en : Reçu etat processeur en ={ etat-client=en-choix-, etat-editeur=vide} procedure prendre-reçu (variables etat- editeur: Etat- editeur, etat- client : Etat- client) /* etat- lecteur et etat- client sont en entrée/*/

IX. DECLARATION DES STRUCTURES ALGORITHMIQUES DE BASE Les structures algorithmiques permises du système du distributeur automatique de carburant sont les suivantes : Les structures séquentielles ; Les structures alternatives ; Les structures de choix déterministes ; Les structures de choix indéterministes ; Les structures itératives ; X. DEFINITION DES PROCEDURES INTERMEDIAIRES DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Ce sont des opérations composites. Elles sont construites à partir des opérations de bases par des structures algorithmiques. 1 LES PROCEDURES INTERMEDIAIRES DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE decoder L unité de traitement décode tous les objets d entrées du problème en objets manipulés par lui-même. decoder : Nil NiL entre contraintes en entree : Infos-Carte, Code, Infos-Type-Carburant, Infos-Quantite-Carburant sont reçus dans l unité de traitement. etat processeur en entrée={etat-client=en-attente etat-lecteur=carte-insere}

contraintes en : rien etat processeur en ={etat-client {en-choix-quantitécarburant, en-choix-type-carburant}} procedure decoder (variables etat- client : Etat- client, etat-lecteur : Etatlecteur) /* etat- client et etat-lecteur sont en entrée/*/ coder L unité de traitement code tous ces objets de en objet de du problème afin de leur envoyés aux ports de s. coder : Nil.Nil entre contraintes en entree :Rien etat processeur en entrée={etat-client=en attente, etatlecteur =carte-insere } contraintes en : rien etat processeur en ={etat-client=en-attente, etatlecteur =carte-insere } procedure coder (variables etat- client : Etat- client, etat-lecteur : Etatlecteur)

/* etat- client et etat-lecteur sont en entrée/*/ Debut Fin fabriquer-reçu (infos- carte, quantite-carburant, montant- argent,etatlecteur) envoyer-infos-type-carburant(infos-type-carburant,etat- client) envoyer-infos- quantite -carburant(infos- quantite -carburant,etatclient) envoyer-infos-prix-à-payer (montant-argent, etat- client) transformer-infos L unité de traitement transforme des objets d entrée en objets de s et fait des calculs. tranformer-infos :Infos Info entre contraintes en entree : Infos etat processeur en entrée={etat-client=en attente } contraintes en : Info etat processeur en ={etat-client=en-attente} procedure tranformer-infos (variables Info : Infos, Info : Info, etat- client : Etat- client,) Debut /* etat- client est en entrée/*/ demander-code(etat- lecteur, etat-client )

débiter-solde (infos-carte, montant-argent,etat- lecteur, etat-client ) propulser-carburant (etat-pistolet ) compter-prix-à-payer (nfos-quantité-consommé, montant-argent, etat- compteur, etat-client ) compter-volume-consomme(quantité-carburant- consommé, etatcompteur, etat-client ) Fin 2 LES OPERATIONS INTERMEDIAIRES DU CLIENT s identifier Le client se présente en insérant sa carte et en saisissant son code dans le lecteur de carte. s identifier : Carte, Code.Nil entree contraintes en entree : Carte et Code etat processeur en entrée={etat-client=interessé} contraintes en : Rien etat processeur en ={etat-client=en attente} procedure s identifier (variables carte : Carte, code : Code, etat- client : Etatclient) Debut /* etat- client est en entrée/*/ inserer-carte( etat-client, etat-lecteur )

saisir-code(code : Code, etat-client, etat-lecteur ) Fin se-servir le client se sert du type de carburant qu il a choisi se-servir :Nil..Nil entree contraintes en entree : Rien etat processeur en entrée={etat-client=interesse} contraintes en : Rien etat processeur en ={etat-client=en-attente} procedure se-servir (variables etat- client : Etat- client) Debut Fin /* etat- client est en entrée/*/ selectionner-type-carburant (etat-client, etat-interface-de-selection - type- carburant ) selectionner-quantite-carburant ( etat-client,etat-pistolet ) tirer-pistolet ( etat-gâchette, etat-pistolet ) appuyer-gâchette( etat-gâchette, etat-pistolet) relâcher-gâchette ( etat-gâchette, etat-pistolet ) remettre-pistolet ( etat-gâchette, etat-pistolet )

finaliser-service Après son service, le client reçoit sa carte et le reçu s il le desire. finaliser-service : Nil.Nil entre contraintes en entree : Rien etat processeur en entrée={etat-client=en-attente} contraintes en : Rien etat processeur en ={etat-client=desinteresse} procedure finaliser-service (variables etat- client : Etat- client) /* etat- client est en entrée/*/ Debut recevoir-carte ( etat- lecteur, etat- client ) prendre-reçu ( etat- editeur, etat- client ) Fin 3 LES PROOCEDURES INTERMEDIAIRESS DE CHAQUE COMPOSANT DU PROCCESSEUR.DU SYSTEME DE DISTRIBUTEUR AUTOMATIQU DE CARBURANT procedure lecteur (variables infos-carte : Infos-carte, etat-lecteur : Etatlecteur, etat-client : Etat-client)

/* etat-lecteur et etat-client sont en entrées/s*/ Debut Si etat-lecteur=carte-insere alors lire-infos-carte (infos-carte, etat-lecteur, etat-client ) Fin si Fin procedure afficheur-de-code (variables infos-code: Infos-code, etat-lecteur : Etat-lecteur, etat-client : Etat-client) /* etat-lecteur et etat-client sont en entrées/s*/ Debut lire-infos-code (infos-code, etat-lecteur, etat-client ) Fin procedure interface-de-selection-type-carburant (variables infos-typecarburant : Infos-type-carburant, etat-client : Etat-client)

/* etat-client est en entrée/*/ Debut Fin lire- infos-type-carburant (infos-type-carburant : etat-client ) Procedure interface-de-selection-quantité-carburant(variables infosquantite- carburant : Infos- quantite -carburant, etat-client : Etat-client) Debut Fin /* etat-client est en entrée/*/ lire- infos- quantite-carburant (infos- quantite- carburant, etatclient ) procedure afficheur-de-selection-quantite-carburant( variables infosquantite -carburant : Infos- quantite -carburant, etat-client : Etat-client) Debut Fin /* etat-client est en entrée/*/ afficher-quantite-carburant (infos- quantite -carburant, etat-client ) procedure afficheur-de-selection-type-carburant( variables infos-tyecarburant : Infos-tye-carburant, etat-client : Etat-client) Debut Fin /* etat-client est en entrée/*/ afficher-type-carburant ( infos-tye-carburant, etat-client )

procedure ejecteur-de-carte ( variables etat-lecteur : Etat-lecteur, etat-client : Etat-client) Debut Fin /* etat-lecteur et etat-client sont en entrées/s*/ éjecter-carte (etat-lecteur : Etat-lecteur, etat-client : Etat-client) procedure editeur-de-reçu (variables reçu-fabriqué : Reçu-fabriqué etat- client: Etat- client) Debut Fin /* etat-client est en entrée/*/ imprimer-reçu (reçu-fabriqué, etat-client) Procedure compteur-prix-à-payer (variables montant-argent: Montant - Argent, etat-compteur : Etat-compteur, etat- client: Etat- client) Debut Fin /* etat-compteur est en entrée/*/ afficher-prix-à-payer (montant-argent, etat-compteur, etat- client) Procedure compteur-volume ( variables infos-quantité-carburant: Infos- Quantité-Carburant, etat-compteur : Etat-compteur, etat- client: Etat- client) /* etat-compteur et etat client sont en entrées/s*/ Debut afficher-volume-consomme (infos-quantité-carburant, etat- client)

Fin Procedure pistolet (variables infos-type-carburant: Infos-Type-Carburant, etatpistolet: Etat- pistolet, etat- gâchette: Etat- gâchette) /* etat- pistolet est en entrée/*/ Debut Fin libérer-carburant (infos-type-carburant, etat- pistolet, etat- gâchette) procedure client (variables carte : Carte, code : Code, etat- client : Etat- client) Debut s identifier (carte, code, etat- client ) se-servir ( etat- client ) finaliser-service ( etat- client ) Fin procedure unite-de-traitement( variables Info : Infos, Info : Info, etat- client : Etat- client, etat-lecteur : Etat-lecteur) Debut En parallèle faire decoder ( etat- client,etat-lecteur )

et tranformer-infos (Info : Infos, Info : Infos, etat- client ) et coder ( etat- client, etat-lecteur ) Fin parallèle Fin Procedure distributeur automatique (infos-quantité-carburant: Infos- Quantité-Carburant, reçu-fabriqué : Reçu-Fabriqué etat-compteur : Etatcompteur, etat- client: Etat- client) Debut En parallèle faire lecteur (infos-carte, etat-lecteur, etat-client ) et afficheur-de-code (infos-code, etat-lecteur, etat- client ) etat- et interface-de-selection-type-carburant (infos-type-carburant, client ) et interface-de-selection-quantité-carburant(infos- quantite- carburant, etat-client ) et afficheur-de-selection-quantite-carburant(infos- quantite - carburant, etat-client ) et afficheur-de-selection-type-carburant(infos-tye-carburant, etatclient ) compteur, etat- et compteur-prix-à-payer (montant-argent, etatclient) et compteur-volume (infos-quantité-carburant, etat-compteur, etatclient) et pistolet (infos-type-carburant, etat- pistolet, etat- gâchette) et unite-de-traitement( Infos, Info, etat- client, etat-lecteur ) et ejecteur-de-carte (etat-lecteur, etat-client )

et editeur-de-reçu (reçu-fabriqué, etat- client) Fin parallèle. Fin XI. ALGORITHME PRINCIPAL DU DISTRIBUTEUR AUTOMATIQUE DE CARBURNT Il s agit de l ordonnancement général des procédures intermédiaires. Algorithme distributeur automatique de carburant(variables carte : Carte, code : Code, infos-quantité-carburant: Infos-Quantité-Carburant, reçufabriqué : Reçu-Fabriqué etat-compteur : Etat-compteur,etat- client : Etatclient) Debut Fin Fin Algorithme En parallèle faire client ( carte : Carte, code, etat- client ) et distributeur automatique (infos-quantité-carburant, reçufabriqué, etat-compteur, etat- client) Fin parallèle FINSYSTEME.

SECTION II: ARCHITECTURE LOGICIELLE D'UN AUTOMATIQUE DE CARBURANT DISTRIBUTEUR

ARCHITECTURE LOGICIELLE DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT I. DEFINITION L architecture logicielle du distributeur automatique de carburant est la description d une manière symbolique et schématique les différents composants du LDA de ce distributeur, leurs interrelations et leurs interactions. A partir du LDA ci-dessus décrit, nous ferrons l effort de mettre en œuvre une architecture ayant une cohésion forte et un couplage faible. Le couplage mesurant ici l interaction entre les sous -systèmes. II. LEGENDE DE L ARCHITECTURE DU SYSTEME DE DISTRIBUTEUR AUTOMATIQUE DE CARBURANT. Composant Faire partir de interaction exécuter par

III. COMPOSANTS DU SYSTEME DU DISRIBUTEUR AUTOMATIQUE DE CARBURANT Système du distributeur automatique de carburant client Distributeur automatique Les ports d entrées Les ports de s L unité de traitement

A. COMPOSANTS DES PORTS D ENTREE DU DISTRIBUTEUR AUTOMATIQUE ET LEURS OPERATIONS Les ports d entrée du distributeur automatique Un lecteur-decarte Un interface-de sélectiontype-carburant Un interface-sélectionquantité-carburant Un afficheur-de-code lire-infos-code lire-infos-carte lire-infos-type-carburant lire-infos-quantite-carburant

B. COMPOSANTS DE PORTS DE SORTIE DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT ET LEURS OPERATIONS. Un afficheur-de sélectiontype-carburant L éjecteurde-carte Les ports de s du distributeur automatique Un éditeur-de-reçu Ejeter-carte Imprimer-reçu Trois-pistolets Compteur-prix-à-payer Compteur-volume consomme afficher-prix-à-payer Un afficheur-de selectionquantite-carburant afficher-typecarburant afficher-quantite-carburantchoisi Faire-coulercarburant afficher-volumeconsomme

C. LES OPERATIONS DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT L unité de traitement du distributeur automatique Les opérations de décodage de l unité de traitement Les opérations de codage de l unité de traitement Les opérations de strates de l unité de traitement

a) LES OPERATIONS DE DECODAGE DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT Lire-infos-carte verifier-carte Les opérations de décodage de l unité de traitement du distributeur automatique verifier-solde vire-code verifier-code

b) LES OPERATIONS DE CODAGE DE L UNITE DE TRAITEMENT fabriquer-reçu envoyer-infos-type-carburant Les opérations de codage de l unité de traitement du distributeur automatique envoyer-infos-quantite-carburant envoyer-infos-prix-a-payer

c) LES OPERATIONS DE STRATES DE L UNITE DE TRAITEMENT DU DISTRIBUTEUR AUTOMATIQUE DE CARBURANT demander-code debiter-solde Les opérations de strates de l unité de traitement du distributeur automatique de carburant compter-volume-consomme compter-prix-a-payer propulser-carburant

D. LES OPERATIONS INTERMEDIAIRES DU CLIENT client les opérations intermediaires du client s identifier finaliser-service se-servir

1. LES OPERATIONS PRIMITIVES DU CLIENT Le client S identifier Inserer-carte Saisir-code

Selectionnerquantité-carburant Tirer-pistolet Selectionner-typecarburant Le client Se-servir appuyer-gâchette relacher-gâchette remettre-pistolet

Le client finaliser-service Prendre-reçu Prendre-carte

SECTION III : LANGUAGE DE DEFINITION ALGORITHMIQUE D UN COMMUTATEUR TELEPHONIQUE

EXRERCICE n 1 Cet exercice a pour but de faire ressortir un LDA (langage de définition d algorithme) d un commutateur téléphonique. Un LDA utilisant un ensemble de mots clés et de structures permettant de décrire de manières complète, claire, l ensemble des opérations à exécuter (par le processeur du commutateur téléphonique sur des données pour obtenir des résultats. SYSTEME Le système considéré ici est le COMMUTATEUR TELEPHONIQUE PROCESSEUR DU SYSTEME DE COMMUTATEUR TELEPHONIQUE IL s agit de ce qui est chargé d exécuter les opérations pour transformer les objets d entrés du commutateur en ses objets de s. La machine virtuelle considérée ici est alors constitué de l abonné (l appelant ou l appelé) qui est un homme, le commutateur qui comportent des ports d entrés, des ports de s, et une unité de traitement. E. L ABONNE DU COMMUTATEUR TELEPHONIQUE Il s agit ici de l homme.c est lui qui apporte des objets de l environnement au système et reçoit les résultats à la suite de toute les transformations. Il nous permet en fait de mieux comprendre le fonctionnement du système.

C. LE COMMUTATEUR DU COMMUTATEUR TELEPHONIQUE IL comprend : 4. LES PORTS D ENTRES DU COMMUTATEUR Ce sont des ports qui ont pour simple rôle de coder les objets d entrées du problème à résoudre en objets manipulés par l unité de traitement. En un mot, ils ne sont pas d ôter d intelligence et captent juste des informations venant de l extérieur du système. Ce sont : Un receveur combine-appelant Un receveur combine-appele Un combine appelant Un combine appele 5. LES PORTS DE SORTIES DU COMMUTATEUR TELEPHONIQUE Ce sont aussi des ports non d ôter d intelligence mais qui décodent des objets produits en par l unité de traitement en objets de s du problème. Il s agit de : Un emetteur-combine-appelant Un emetteur-combine-appele

6. L UNITE DE TRAITEMENT DU COMMUTATEUR TELEPHONIIQUE Ici se passe une description rigoureuse du processus de transformation des objets d entrées du commutateur en objets de s. On parle ainsi du mode opératoire. XII. DEFINITION DES TYPES DE BASES DU SYSTEME DE COMMUTATEUR TELEPHONIQUE Ce sont des types élémentaires que le processeur du commutateur comprend et manipule. On distingue les types d état et les types d objets du commutateur. c) LES TYPES D ETAT DU SYSTEME DU COMMUTATEUR TELEPHONIQUE Ce sont des constantes qui permettent de comprendre l état de chaque élément du processeur. A chaque composant du processeur du commutateur correspond donc un type d état. Etat -abonne= {désintéressé, en-attente, } Etat - receveur -combine-appelant={ décroché, raccroché } Etat- receveur combine-appele={ décroché, raccroché } Etat- emetteur-combine-appelant={ décroché, raccroché..} Etat- emetteur-combine-appele={ décroché, raccroché } Etat- unite-de-traitement={en marche,en panne..} Etat-combine-appelant ={ décroché, raccroché } Etat-combine-appele={ décroché, raccroché }

d) LES TYPES D OBJET DU SYSTEME DU COMMUTATEUR TELEPHONIQUE Ce sont des objets élémentaires manipulés par le processeur du commutateur. Numéros Message Temps Messages Infos-Numero-Combine Infos-Numeros-Appelant Infos-Numeros-Appele Infos-Numeros-Abonne XIII. DECLARATION DES CONSTRUCTEURS DE TYPPES DU SYTEME DU COMMUTATEUR TELEPHONIQUE Ce sont des fonctions qui permettent de construire les types dérivés à partir des types d objets de bases. Nous utiliserons le constructeur ensemble de et enregistrement de : Ensemble de () et enregistrement de() XIV. DEFINITION DES TYPES CONCTRUITS DU SYSTEME DU COMMUTATEUR TELEPHONIIQUE Ce sont des types non primitifs formés à partir des types de bases en utilisant les constructeurs de types. Ils sont appelés des types composites..

Lignes-telephoniques =ensemble de lignes Etat-lignes-telephoniques =ensemble de Etat-lignes Ligne=enregistrement (numero-combine-appelant : Numero numero-combine-appele : Numero) XV. DECLARATION DES CONSTANTES DU SYSTEME DU COMMUTATEUR TELEPHONIQUE iii. CONSTANTES D ETAT DU SYSTEME DU COMMUTATEUR Elles permettent de déterminer l état du processeur du commutateur. Elles sont déjà listées dans la partie 3 ci-dessus. iv. CONSTANTES D OBJET DU SYSTEME DU COMMUTATEUR Ce sont des objets manipulés par le processeur du commutateur telephonique mais qui ne changent par de valeur au cour du processus. pas :Temps XVI. DECLARATION DES VARIABLES D ETAT DU SYSTEME DU COMMUATEUR TELEPHONIQUE Ce sont des variables permettant d observer l état du processeur. A chaque type d état correspond donc une variable d état. etat -abonne : Etat -abonne etat - receveur -combine-appelant : Etat - receveur -combineappelant