Chapitre 3 : En-tête et appel d'un sous-programme

Documents pareils
Cours Informatique Master STEP

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Programmation Objet - Cours II

I. Introduction aux fonctions : les fonctions standards

Cours 1 : Qu est-ce que la programmation?

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

CORRECTION EXERCICES ALGORITHME 1

1. Structure d'un programme FORTRAN 95

Série TD 3. Exercice 4.1. Exercice 4.2 Cet algorithme est destiné à prédire l'avenir, et il doit être infaillible! Exercice 4.3. Exercice 4.

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

Google fait alors son travail et vous propose une liste de plusieurs milliers de sites susceptibles de faire votre bonheur de consommateur.

L informatique en BCPST

Algorithmique et programmation : les bases (VBA) Corrigé

Le chiffre est le signe, le nombre est la valeur.

Business Process Modeling (BPM)

Feuille TD n 1 Exercices d algorithmique éléments de correction

De la Crm à la Captation de trafic. FAX Land

Cours de Génie Logiciel

alg - Classes, instances, objets [oo] Exercices résolus

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Documentation module hosting

Dossier d'étude technique

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

La gestion des boîtes aux lettres partagées

LES INTERFACES HOMME-MACHINE

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Université Bordeaux 1, Licence Semestre 3 - Algorithmes et struct...

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Guide d'utilisation. OpenOffice Calc. AUTEUR INITIAL : VINCENT MEUNIER Publié sous licence Creative Commons

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Algorithmique et Programmation, IMA

D UN BON REFERENCEMENT

Projet Active Object

Utilitaire de mise aux normes du Trésor Public pour les virements bancaires en France et en uros sur la Banque de France. Manuel de référence

Introduction aux Bases de Données

Visio Kit. Mode d'emploi

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

Algorithmes récursifs

Chapitre 1 : Introduction aux bases de données

UML (Paquetage) Unified Modeling Language

Fiche méthodologique Rédiger un cahier des charges

NOTICE D INSTALLATION

Mini-projet systèmes & réseau serveur de «tchatche»

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Gestion de compte personnel Comment créer votre compte?

Interface Homme-Machine 1

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

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

v7.1 SP2 Guide des Nouveautés

B2i Brevet Informatique. Internet. Livret de l enseignant

Guide pratique du référencement de web consultant eu. Commençons par l optimisation de vos pages, ou on page

Guide d usage pour Word 2007

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

Le logiciel de création de site internet IZISPOT est un outil très puissant et qui est assez simple après quelques temps d utilisation.

Vérification et Validation

4D Server et les licences : fonctionnement et environnement

Devenez un véritable développeur web en 3 mois!

Le nouveau bureau du professeur Photo prise avec quelques élèves qui ne participaient pas à une sortie scolaire

Manuel Utilisateur. Boticely

SOMMAIRE. Travailler avec les requêtes... 3

Initiation à html et à la création d'un site web

Programmation sous QT

2- Relation entre Writer et Calc dans le mailing

Messagerie asynchrone et Services Web

Introduction à la B.I. Avec SQL Server 2008

Guide à destination des Conseillers pédagogiques pour accompagner la séance Groupe TICE 34

Le langage C. Séance n 4

et développement d applications informatiques

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Titres de créances NégOciables Refonte Informatique et organisationnelle

Chapitre I : le langage UML et le processus unifié

1 - Clients 2 - Devis 3 - Commandes 4 - Livraisons 5 - Factures 6 - Avoirs 7 - Modèles

Sécurisation des paiements en lignes et méthodes alternatives de paiement

Livre blanc Mesure des performances sous Windows Embedded Standard 7

EBS 204 E C B S. Publication : Novembre 96

Système de Gestion de Fichiers

SYSTÈME DE GESTION DE FICHIERS

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

Guide de l utilisateur

TP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts

Enseignement Informatique. Classe de Bac Pro SAPAT

B2i. Brevets Nouvelles Technologies. Brevet n 1. Brevet n 16. Ecole primaire de Boz Ec-Elementaire-Boz@ac-lyon.fr

= constante et cette constante est a.

Développement spécifique d'un système d information

Les diagrammes de modélisation

Programmation Classique en langage C

C++ - Classes, instances, objets [oo] Exercices résolus

Cours Langage C/C++ Programmation modulaire

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Réalisation de SMSMail

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

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

Middleware eid v2.6 pour Windows

Cycle III Brevet Informatique & Internet Niveau 1. "Je pense être capable

mode d emploi CRéATioN et GeSTioN de VoTRe CompTe personnel

Chapitre VI- La validation de la composition.

Transcription:

Chapitre 3 : En-tête et appel d'un sous-programme Encapsulation d'une action complexe Dans un conteneur de code Réutilisation par appel Avoir confiance grâce à un contrat Décomposition fonctionnelle d'un problème 1

Définition Notion de sous-programme Un sous-programme est un module indépendant de code de l acteur ordinateur (associé, en ce qui nous concerne, à une abstraction fonctionnelle de l algorithme). Intérêt Dans les langages de programmation, cette notion de sous-programme vise un double objectif : permettre le découpage d un programme complexe en unités logiques plus petites, susceptibles d être conçues, codées, validées et maintenues séparément, permettre l utilisation répétitive d un même ensemble d actions (appelées instructions) en différents points du programme. Les sous-programmes 2

En-tete d'un sous-programme Définition Un en-tête de sous-programme est une interface entre le sous-programme et le monde extérieur (le programme). Définir un en-tête de sous-programme consiste, pour le moment, à donner un nom (un identificateur) à une action complexe. Les sous-programmes 3

En-tete d'un sous-programme Exemple : algorithme d un éditeur de texte (simplifié) : -- éditer un texte créer un texte initialement vide ; lire une commande de l utilisateur ; tantque la commande n est pas la commande «quitter» faire exécuter la commande ; afficher le texte ; lire la commande suivante de l utilisateur ; fin tantque ; Déjà écrite par quelqu'un d'autre, A disposition : SAP, Web,... Décomposition modulaire et écrite et testée par vous-mêmes procédure créertexte ; procédure lirecommande ; procédure exécutercommande ; procédure affichertexte ; Les sous-programmes 4

En-tête d'un sous-programme Exemple : algorithme d un éditeur de texte (simplifié) : -- éditer un texte créer un texte initialement vide ; lire une commande de l utilisateur ; tantque la commande n est pas la commande «quitter» faire exécuter la commande ; afficher le texte ; lire la commande suivante de l utilisateur ; fin tantque ; -- crée un texte vide procédure créertexte ; -- lit une commande de l'utilisateur procédure lirecommande ; -- exécute une commande procédure exécutercommande ; -- affiche le texte à l'écran procédure affichertexte ; Les sous-programmes 5

Appel d'un sous-programme Définition Un appel de sous-programme est une action (instruction) du langage algorithmique qui invoque l exécution du sous-programme. L'appel d'un sous-programme consiste donc à exécuter ce sous-programme. On mentionne alors son nom (son identificateur) dans une instruction d'appel. Les sous-programmes 6

Appel d'un sous-programme Exemple : algorithme d un éditeur de texte (simplifié) : -- éditer un texte créertexte ; lirecommande ; tantque la commande n est pas la commande «quitter» faire exécutercommande ; affichertexte ; lirecommande ; fin tantque ; -- crée un texte vide procédure créertexte ; -- lit une commande de l'utilisateur procédure lirecommande ; -- exécute une commande procédure exécutercommande ; -- affiche le texte à l'écran procédure affichertexte ; Les sous-programmes 7

Mon premier programme Exemple : programme éditertexte début créertexte ; lirecommande ; tantque la commande n est pas la commande «quitter» faire exécutercommande ; affichertexte ; lirecommande ; fin tantque ; fin Les sous-programmes 8

Appel d'un sous-programme programme éditertexte début créertexte ; lirecommande ; tantque... faire exécutercommande ; affichertexte ; lirecommande ; fin tantque ; fin Appelant Appelé procédure exécutercommande ; début instruction1;... instructionn; fin Les sous-programmes 9

Paramètres d'un sous-programme Définition Notion de paramètre Un paramètre est une information spécifiant le contexte de calcul du sous-programme. Cette information est soit transmise, soit produite par le sous-programme. Il s agit donc de pouvoir appliquer un même sousprogramme à des contextes de calcul différents. Les sous-programmes 10

Paramètres d'un sous-programme -- exécute une commande de l utilisateur procédure exécutercommande (unecommande, untexte) ; -- crée un texte initialement vide procédure créertexte (untexte) ; -- lit une commande de l utilisateur procédure lirecommande (unecommande) ; -- affiche un texte procédure affichertexte (untexte) ; programme éditertexte début Paramètres formels tantque... faire -- exécuter la commande exécutercommande (lacommande, letexte); -- afficher le texte affichertexte (letexte) ; Paramètres effectifs -- lire la commande suivante de l utilisateur lirecommande (lacommande) ; fin tantque ; fin Les sous-programmes 11

Paramètres d'un sous-programme Paramètres et variables Dans le cas général, un paramètre (effectif ou formel) n'est rien d'autre qu'une variable, objet le plus élémentaire manipulé par l'acteur ordinateur, définie par un doublet (identificateur, valeur). Paramètre formel : variable servant à écrire le corps du sous-programme appelé. Paramètre effectif : variable du programme appelant passée au sous-programme appelé. Les sous-programmes 12

Contrôles continus du 1er Octobre Les sous-programmes 13

Paramètres d'un sous-programme Modes de transmission des paramètres Il existe trois utilisations possibles d'un paramètre par un sousprogramme : le mode entrée, le mode sortie, le mode mise à jour. Ces modes d'utilisation correspondent à des modes logiques qui déterminent la façon dont le paramètre est utilisé par le sousprogramme. Les sous-programmes 14

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode entrée, définition : C'est une valeur transmise par l'appelant qui sert au calcul et qui n'est pas modifiée par le sous-programme. La valeur transmise est celle du paramètre effectif au moment de l'appel. Le mode entrée (spécifié par le mot-clé entrée) indique que le paramètre est uniquement consulté par le sousprogramme. Les sous-programmes 15

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode entrée, exemples : -- exécute une commande de l utilisateur procédure exécutercommande (entrée unecommande, untexte) ; -- affiche un texte procédure affichertexte (entrée untexte) ; unecommande exécutercommande untexte affichertexte Contexte Programme appelant Les sous-programmes 16

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode sortie, définition : Le mode sortie (spécifié par le mot-clé sortie) est un paramètre calculé par le sous-programme et transmis à l'appelant en tant que résultat. La valeur transmise est celle du paramètre formel à la fin de l'exécution du sous-programme. Les sous-programmes 17

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode sortie, exemples : -- lit une commande de l utilisateur procédure lirecommande (sortie unecommande) ; -- crée un texte initialement vide procédure créertexte (sortie untexte) ; lirecommande unecommande créertexte untexte Contexte Programme appelant Les sous-programmes 18

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode mise à jour, définition : Le mode mise à jour (spécifié par le mot-clé màj) correspond à un paramètre transmis par l'appelant, et modifié par l'appelé avant d'être communiqué à l'appelant. Les sous-programmes 19

Paramètres d'un sous-programme Modes de transmission des paramètres Le mode mise à jour, exemple : -- exécute une commande de l utilisateur procédure exécutercommande (entrée unecommande, màj untexte) ; unecommande exécutercommande untexte untexte Contexte Programme appelant Les sous-programmes 20

Paramètres d'un sous-programme (Sémantique des modes de transmission) Les sous-programmes 21

Paramètres d'un sous-programme (Sémantique des modes de transmission) Un paramètre effectif associé à un paramètre formel en mode sortie ou en mode mise à jour est utilisé pour mémoriser l effet de l appel au sous-programme. une variable de l appelant. Un paramètre effectif associé à un paramètre formel d entrée est utilisé pour sa valeur uniquement. Cette valeur peut-être : La valeur d'une variable du programme appelant, une constante, le résultat du calcul d'une expression. Les paramètres formels d un sous-programme sont toujours des variables : elles permettent de nommer les informations d entrée et/ou de sortie de l appelant. Les sous-programmes 22

Paramètres d'un sous-programme Modes de transmission des paramètres Orientés flux de données (cf schémas) Un sous-programme produit ou consomme des données Orientés contrats sur les flux de données Différence entre mode sortie et mise à jour? Comment cela se passe t'il à un niveau d'abstraction beaucoup plus bas? Les sous-programmes 23

Passage de paramètres Espace d'adressage d'un programme en mémoire Les sous-programmes 24

Passage de paramètres procédure calculersomme (entrée x <Entier>, entrée y <Entier>, entrée z <Entier>) début x <- y + z ; fin programme faireunesomme glossaire s <Entier> ; a <Entier>, b <Entier> ; début s <- 0 ; a <- 1 ; b <- 2; calculersomme (s, a, b); fin Les sous-programmes 25

Passage de paramètres Par Valeur Les sous-programmes 26

Passage de paramètres procédure calculersomme (sortie x <Entier>, entrée y <Entier>, entrée z <Entier>) début x <- y + z ; fin programme faireunesomme glossaire s <Entier> ; a <Entier>, b <Entier> ; début s <- 0 ; a <- 1 ; b <- 2; calculersomme (s, a, b); fin Les sous-programmes 27

Passage de paramètres Par Adresse Les sous-programmes 28

Procédures et fonctions Définition Une procédure (spécifiée par le mot-clé procédure) correspond à l'abstraction d une action ; elle enrichit le jeu d'actions élémentaires d'un acteur. Les paramètres effectifs d'une procédure peuvent être transmis indifféremment dans les trois modes entrée, sortie et mise à jour. Les sous-programmes 29

Procédures et fonctions Définition Une fonction (spécifiée par le mot-clé fonction) correspond à l'abstraction d'un calcul ; elle enrichit le jeu des valeurs élémentaires de l'acteur. Les paramètres formels d'une fonction tiennent lieu de constantes locales dont les valeurs sont fournies par les paramètres effectifs le mode de transmission des paramètres pour les fonctions est toujours le mode entrée. Les sous-programmes 30

Procédures et fonctions Exemple -- calcule le nombre de mots d un texte fonction nombredemots (entrée untexte) ; Spécification -- calculer et comparer le nombre de mots du texte si nombredemots (letexte) >= 100 alors fin si ; Appel ou utilisation Les sous-programmes 31

Procédures et fonctions Procédure vs fonction -- calcule le nombre de mots d un texte procédure calculernombredemots (entrée untexte, sortie nbmots) ; -- calcule le nombre de mots d un texte fonction nombredemots (entrée untexte) ; -- calculer le nombre de mots du texte calculernombredemots (letexte, nbmots) ; -- comparer le nombre de mots du texte si nbmots >= 100 alors fin si ; -- calculer et comparer le nombre de mots du texte si nombredemots (letexte) >= 100 alors fin si ; Les sous-programmes 32

Procédures et fonctions Procédure vs fonction -- calcule le nombre de mots d un texte procédure calculernombredemots (entrée untexte, sortie nbmots) ; -- calcule le nombre de mots d un texte fonction nombredemots (entrée untexte) ; -- calculer et comparer le nombre de mots du texte si calculernombredemots (letexte) >= 100 alors fin si ; -- calculer nombredemots(letexte); -- comparer le nombre de mots du texte si nbmots >= 100 alors fin si ; Les sous-programmes 33

Le contrat appelant-appelé Une donnée en entrée Une donnée en sortie Nom du sous-programme Une donnée en mise à jour Une donnée en mise à jour Domaine des pré-conditions Domaine des post-conditions Les sous-programmes 34

Le contrat appelant-appelé Le contrat appelant-appelé s exprime par une précondition (balise nécessite) et une postcondition (balise entraîne) traduisant l effet, sur le contexte courant de calcul, de l action subordonnée à un appel du sous-programme. La précondition, ou assertion d entrée, définit le domaine des valeurs d entrée des paramètres et précise donc les obligations de l appelant. La postcondition, ou assertion de sortie, décrit les relations établies par le sous-programme entre les paramètres d entrée et de sortie et donc précise les engagements de l appelé. Les sous-programmes 35

Définition: Le contrat appelant-appelé L en-tête d un sous-programme, aussi appelé spécification du sous-programme, définit l'interface, ou protocole d'appel, entre le sous-programme et le monde extérieur. Un en-tête de sous-programme en langage algorithmique fournira les informations suivantes : la nature du sous-programme (procédure ou fonction), son nom, son rôle en un court commentaire incluant éventuellement sa précondition (clause nécessite) et sa postcondition (clause entraîne), ses paramètres en entrée, ses paramètres en sortie, ses paramètres en mise à jour. Les sous-programmes 36

Exemples : Le contrat appelant-appelé Soit taille une fonction applicable à un texte qui détermine son nombre de caractères. -- crée un texte initialement vide -- entraîne taille (untexte) = 0 procédure créertexte (sortie untexte) ; Les sous-programmes 37

Exemples : Le contrat appelant-appelé La commande d insertion d un caractère c au rang i dans le texte admet pour en-tête : -- insère le caractère c dans le texte untexte au rang i -- nécessite 1 i taille (untexte) + 1 -- entraîne taille (untexte ) = taille (untexte) + 1 et untexte i = c procédure insérercaractère (màj untexte, entrée i, entrée c) ; Oui mais qu'en est-il pour insérercaractère (letexte, 12, e )? avec le texte suivant : c e c i e s t u n e x e m p l e Les sous-programmes 38

Exemples : Le contrat appelant-appelé La commande d insertion d un caractère c au rang i dans le texte admet pour en-tête : -- insère le caractère c dans le texte untexte au rang i -- nécessite 1 i taille (untexte) + 1 -- entraîne taille (untexte ) = taille (untexte) + 1 -- et qqsoit k dans [1..i-1] : untexte k = untexte k -- et untexte i = c -- et qqsoit k dans [i+1..aille (untexte )] : untexte k = untexte k-1 procédure insérercaractère (màj untexte, entrée i, entrée c) ; c e c i e s t u n e e x e m p l e Les sous-programmes 39

Pour finir le pattern de lecture d'une donnée Une donnée lue Lire une donnée Une donnée en sortie L'utilisateur tape au clavier une donnée dans un flot d'entrée... Les sous-programmes 40

Pour finir le pattern d'écriture d'une donnée Une donnée en entrée Ecrire une donnée Une donnée écrite L'utilisateur lit à l'écran une donnée d'un un flot de sortie... Les sous-programmes 41

Pour finir Une donnée lue Une donnée en entrée Une donnée en sortie Nom du sous-programme Une donnée en mise à jour Une donnée en mise à jour Une donnée écrite Les sous-programmes 42