1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation.

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

La boucle for : init7.c et init71.c
Chapitre annexe. Récursivité
Les fonctions A quoi ça sert ?
Initiation à la programmation et algorithmique cours 4
Algorithmes et structures de données 9ème cours Patrick Reuter maître de conférences
Portée des variables VBA & Excel
Interactivé: L'Action Script.
3- Déclaration et accès aux objets
C.
Paramètres et pointeurs
Introduction : Compilation et Traduction
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Principes de programmation (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Points importants de la semaine Les fonctions. La portée. La passage par copie. Les tableaux.
Sous-programmes Concepts généraux Passage de paramètres Fonctions
CPI/BTS 2 Programmation Web Introduction au PHP
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
CSI3525: Concepts des Langages de Programmation Notes # 12: Implementation des Sous-Programmes ( Lire Chapitre 9 )
Points importants de la semaine Le paramétrage. La portée. Le passage par copie. Le passage par référence.
LES SOUS-PROGRAMMES USTL Licence S.T.A. S3 A.P.I.2.
Algorithmique et Programmation
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
Principes de programmation (suite)
Environnements d'exécution
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Chapitre 9 Les sous-programmes.
8PRO100 Éléments de programmation Les types composés.
Partie II Sémantique.
Initiation aux bases de données et à la programmation événementielle
Procédures et fonctions
Plan cours La notion de pointeur et d’adresse mémoire.
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Animateur : Med HAIJOUBI
LANGAGE PASCAL Introduction rapide….
Les boucles imbriquées
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
1 Algorithmique et programmation en Itérations (boucles) Types numériques simples (suite)
Algorithmique et programmation en
Chapitre 6.2 Les curseurs Cours SGBD 3A Mme hkimi Jihène
Créer des packages.
Concepts intermédiaires de VHDL
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
INF3500 : Conception et implémentation de systèmes numériques Pierre Langlois Objets des catégories.
Le langage Racket (Lisp)
Introduction au langage C Fonctions et Procédures
Algorithmique et programmation en
Les types composés Les enregistrements.
CSI 3525, Implémentation des sous-programmes, page 1 Implémentation des sous-programmes L’environnement dans les langages structurés en bloc La structure.
Variables et environnement utilisateur W. Barhoumi.
Cours LCS N°4 Présenté par Mr: LALLALI
Algorithmique et programmation en
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
6/10/2005 © 2005 P. Van Roy. All rights reserved. 1 FSAB1402: Informatique 2 Récursion sur les Listes Peter Van Roy Département d’Ingénierie Informatique,
Une aide pour débutant éclairé
Initiation aux bases de données et à la programmation événementielle
Algorithmique Algorithmique  Pascal
Directives Ocaml Définition
Visibilité de variables Paramètres de fonction premier auteur : Agata Savary.
FLASH Séance 2 Xiaoliang Liang Morgane Le Nan SI28 P05.
Introduction à l’Informatique Licence SPI Mme Delmotte.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 12 Support de cours rédigé par Bernard COFFIN Université.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
MINISTÈRE DE L’ENSEIGNEMENT SUPÉRIEUR ET DE LA RECHERCHE SCIENTIFIQUE
Transcription de la présentation:

1 Cours 6 Définitions de nouvelles procédures Transmissions de données/résultats Déclarations globales/locales Visibilités Interface/implementation

2 Procédures rappel : les procédures générées automatiquement exécutées sur évènement ou sur appel explicite pourquoi définir des procédures répartir les tâches diviser la difficulté regrouper les instructions d’une même étape

3 Définition de procédure en-tête; déclarations internes; begin instructions end; en-tête : Procedure nomprocédure(paramètres);

4 Paramètres ils représentent les données et/ou résultats on dit aussi arguments formels les types doivent déjà exister 3 catégories de transmission : a) valeur b) adresse c) constante

5 Déclarations internes déclaration de constantes, types et variables, comme déclarations déjà rencontrées ce sont des noms utilisables uniquement par la procédure : locaux si un nom identique est défini en dehors, il est invisible par la procédure

6 Instructions les mêmes qu’ailleurs : affectation, si, boucles,... le nom de la procédure ne contient pas de valeur par contre, l’utilisation de son nom à l’intérieur d’une procédure la relance ! c’est la récursivité

7 Utilisation d’une procédure une instruction complète pour faire appel : nomprocédure(paramètres)... les paramètres fournis sont appelés arguments effectifs ce sont les valeurs transmises à la procédure constantes ou variables ou expressions et/ou les résultats renvoyés par la procédure variables uniquement (adresse transmise)

8 Exemple complet clic sur bouton Traitement : Calculs de 2 suite de valeurs (abscisses et ordonnées de points) Extrêmes des abscisses, Extrêmes des ordonnées

9 Déclarations globales const NbMax=200; type TValeurs=array[1..NbMax] of real; On pourra “remplir” jusqu’à 200 éléments dans les variables de type TValeurs éventuellement moins, pas plus, numérotés de 1 à 200 on peut utiliser NbMax pour limiter plus loin…

10 procedure Calculs(Var V1,V2 :Tvaleurs ; Nb :integer) ; var n :integer ; begin for n :=1 to Nb do begin V1[n] :={expression de calcul pour chaque valeur de V1} V2[n] :={expression de calcul pour chaque valeur de V2} end ; procedure Tform1.bnTraitementClick(Sender : Tobject) ; var X,Y :Tvaleurs ; Xmin,Xmax,Ymin,Ymax :real ; begin Calculs(X,Y,200) ;

11 Scénario d’exécution de bnTraitementClick Lancement de Calculs L'adresse de X est transmise pour que V1 soit logé au même endroit que X Idem pour Y : V2 occupe la même zone que Y Par contre Nb occupe une nouvelle zone qui lui est propre

12 procedure MinMax(Const V :Tvaleurs ;Nb :Integer ; Var Vmin,Vmax :real) ; var n :integer ; begin Vmin :=V[1] ; Vmax :=V[1] ; for n :=2 to Nb do if V[n]<Vmin then Vmin :=V[n] else if V[n]>Vmax then Vmax :=V[n] ; end ; procedure Tform1.bnTraitementClick(Sender : Tobject) ;... begin... MinMax(X,200,Xmin,Xmax) ;

13 Lancement de MinMax pour X L’adresse de X est transmise pour que V occupe la même zone de mémoire que X mais const interdit les modifs de V Nb occupe lui aussi une nouvelle zone L'adresse de XMin est transmise pour que VMin soit logé au même endroit que Xmin Idem pour Xmax : Vmax occupe la même zone que XMax

14 Lancement de MinMax pour Y L’adresse de X est transmise pour que V occupe la même zone de mémoire que X mais const interdit les modifs de V Nb occupe lui aussi une nouvelle zone L'adresse de YMin est transmise pour que VMin soit logé au même endroit que Ymin Idem pour Ymax : Vmax occupe la même zone que YMax

15 Paramètres (2) a) on ne met rien devant un paramètre “donnée” b) on met var devant les paramètres “résultats” c) on met const devant les paramètres “données” si on ne veut pas utiliser une nouvelle zone de mémoire

16 Positions des déclarations et des sous-programmes dès le début de la partie implementation ils sont alors utilisables dans tout ce qui suit

17 Déclarations globales et locales const, type, var et sous-programmes globales : en dehors de tout sous- programme locales : internes à un sous-programme

18 Visibilité des éléments déclarés globaux : de partout sauf redéclaration interne locaux : à l’intérieur mais pas à l’extérieur

19 Cas de sous-programmes déclarés dans un autre ils sont visibles par le parent ils peuvent accéder aux éléments du parent mais le parent ne peut accéder aux éléments déclarés dans ses enfants

20 Interface et implementation interface : ce qui est visible en dehors de l’unité implementation : définitions des éléments propres à l’unité ces définitions sont invisibles en dehors