CH5: Les procédures et les fonctions



Documents pareils
Bien lire l énoncé 2 fois avant de continuer - Méthodes et/ou Explications Réponses. Antécédents d un nombre par une fonction

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

Baccalauréat ES/L Amérique du Sud 21 novembre 2013

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Algorithmique et structures de données I

Fonctions homographiques

Chapitre 6. Fonction réelle d une variable réelle

BACCALAURÉAT GÉNÉRAL SESSION 2012 OBLIGATOIRE MATHÉMATIQUES. Série S. Durée de l épreuve : 4 heures Coefficient : 7 ENSEIGNEMENT OBLIGATOIRE

Baccalauréat S Antilles-Guyane 11 septembre 2014 Corrigé

Algorithmes récursifs

Exo7. Calculs de déterminants. Fiche corrigée par Arnaud Bodin. Exercice 1 Calculer les déterminants des matrices suivantes : Exercice 2.

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Développement décimal d un réel

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

Cours d initiation à la programmation en C++ Johann Cuenin

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

Limites finies en un point

* très facile ** facile *** difficulté moyenne **** difficile ***** très difficile I : Incontournable T : pour travailler et mémoriser le cours

STAGE IREM 0- Premiers pas en Python

Calcul intégral élémentaire en plusieurs variables

Cours de Programmation Impérative: Zones de mémoires et pointeurs

I. Introduction aux fonctions : les fonctions standards

Algorithmique & programmation

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

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

La gestion des boîtes aux lettres partagées

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Calculs de probabilités avec la loi normale

Chapitre 3. Quelques fonctions usuelles. 1 Fonctions logarithme et exponentielle. 1.1 La fonction logarithme

3. Conditionnement P (B)

Représentation d un entier en base b

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

C f tracée ci- contre est la représentation graphique d une

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

Exercices Alternatifs. Une fonction continue mais dérivable nulle part

TP3 : Manipulation et implantation de systèmes de fichiers 1

Logistique, Transports

Suites numériques. Exercice 1 Pour chacune des suites suivantes, calculer u 1, u 2, u 3, u 10 et u 100 : Introduction : Intérêts simpleset composés.

Probabilité. Table des matières. 1 Loi de probabilité Conditions préalables Définitions Loi équirépartie...

2.4 Représentation graphique, tableau de Karnaugh

Quelques algorithmes simples dont l analyse n est pas si simple

III- Raisonnement par récurrence

PROJET ALGORITHMIQUE ET PROGRAMMATION II

Programmation Par Contraintes

Correction du Baccalauréat S Amérique du Nord mai 2007

1 de 46. Algorithmique. Trouver et Trier. Florent Hivert. Mél : Florent.Hivert@lri.fr Page personnelle : hivert

Algorithmique et Programmation, IMA

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Développements limités, équivalents et calculs de limites

Introduction à MATLAB R

Resolution limit in community detection

Cours 7 : Utilisation de modules sous python

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Cours d Analyse. Fonctions de plusieurs variables

Dérivation CONTENUS CAPACITÉS ATTENDUES COMMENTAIRES

4. Les structures de données statiques

ÉPREUVE COMMUNE DE TIPE Partie D

Probabilités conditionnelles Loi binomiale

De même, le périmètre P d un cercle de rayon 1 vaut P = 2π (par définition de π). Mais, on peut démontrer (difficilement!) que

Travaux Dirigés n 1 : chaînes de caractères

Dérivation : cours. Dérivation dans R

La fonction exponentielle

L exclusion mutuelle distribuée

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Introduction à la Programmation Parallèle: MPI

Ma banque, mes emprunts et mes intérêts

Systèmes d exploitation

Exo7. Probabilité conditionnelle. Exercices : Martine Quinio

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Initiation à l algorithmique

Fonctions de plusieurs variables

Exemples de problèmes et d applications. INF6953 Exemples de problèmes 1

1. Structure d'un programme FORTRAN 95

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

Compléments de documentation Scilab : affichage de texte et formatage de nombres

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

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

Continuité et dérivabilité d une fonction

PROBLEMES D'ORDONNANCEMENT AVEC RESSOURCES

Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )

Estimation: intervalle de fluctuation et de confiance. Mars IREM: groupe Proba-Stat. Fluctuation. Confiance. dans les programmes comparaison

= constante et cette constante est a.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Cours d Informatique

Les planificateurs financiers

NOUVEAU. Cadets de la Rapière. Circuit national Jeunesse. Tournoi par équipes. 40 ans à

Ma situation fiscale

Association Suisse de Médecine Equine (ASME) Statuts

Analyse de performance, monitoring

Les probabilités. Chapitre 18. Tester ses connaissances

Baccalauréat ES Pondichéry 7 avril 2014 Corrigé

introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives

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

Perl Orienté Objet BioPerl There is more than one way to do it

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

Transcription:

CH5: Les procédures et les fonctions 1-Introduction Dans la résolution d un problème, on peut constater qu une suite d actions revient plusieurs fois. Dans ce cas il serait judicieux de l écrire une seule fois, et de l utiliser autant de fois que c est nécessaire, en effectuant des calculs avec des données différentes. Cette suite d actions sera définie dans un sous programme, qui peut prendre soit la forme d une procédure, soit la forme d une fonction. D autre part, on peut observer que certains groupes d actions se rapportent à des traitements précis et différents. Il est souhaitable alors de représenter chacun d eux dans un sous programme. On perçoit alors un programme comme un ensemble de procédures/fonctions. La structuration d un programme par morceaux (modules) est la base de la programmation structurée et modulaire. A titre d exemple, un programme de gestion de scolarité peut être découper en plusieurs modules : inscription, suivi des absences, examens, diplômes, etc. Gestion de scolarité Inscription Suivi des absences Examens Diplômes Saisie des Étudiants Attestation D inscription 2-Avantages d utilisation des procédures/fonctions D améliorer la lisibilité des programmes Optimiser le nombre d instructions dans un programme De faciliter la mise au point et la correction des erreurs. 3-Les procédures 3-1- Définition Une procédure est un ensemble d instructions décrivant une action simple ou composée, à laquelle on donne un nom, qui devient lui-même en quelque sorte un sous programme. Procédure Nom_de_la_procédure (Liste d arguments : type) Les déclarations Instructions de la procédure La première ligne s appelle l en-tête de la procédure. La liste d arguments est une suite de données à échanger avec d autres programmes. F. Mguis 51

3-2- Appel de la procédure Nom_de_la_procédure (Liste d arguments) 3-3- Procédure simple (sans paramètres) ALGORITHME PROC CONST titre = "Algorithmique" Procédure TRAIT( ) i : entier Pour i de 1 à 13 faire Écrire ( " - " ) FinPour (Programme principal) Ecrire (titre) TRAIT( ) /* Appel de la fonction TRAIT*/ Remarques 1-La structure d une procédure est analogue à celle d un algorithme. Elle possède une entête, une partie déclarative et un corps. 2- Pour appeler une procédure simple, il suffit d écrire le nom de cette procédure. 3- Une variable locale (privée) est déclarée dans une procédure et ne peut être utilisée qu à l intérieur de celle-ci. : «i» est une variable locale à la procédure «TRAIT». 4- Une variable globale (publique) est déclarée au début de l algorithme. Elle peut être utilisée dans le corps principal de l algorithme ou par les différentes procédures. : «titre» est une constante globale. Il est fortement recommandée d utiliser autant que possible des variables locales pour rendre les modules plus autonomes et par conséquent utilisables dans d autres programmes. 3-4- Procédure paramétrée (avec paramètres) Une procédure paramétrée est un module qui utilise des paramètres pour faire passer des informations entre la procédure appelée et le programme appelant. 3-4-1- Les différent types de paramètres Les paramètres formels (fictifs): qui figurent dans l entête de la déclaration de la procédure sont utilisés dans les instructions de la procédure et la seulement. Ils correspondent à des variables locales. Procédure Nom_de_la_procédure (pf1 : type 1 ; pf2 : type 2 ; ) Les paramètres effectifs (réels) : qui figurent dans l instruction d appel de la procédure et sont substitués aux paramètres formels au moment de l appel de la procédure. Nom_de_la_procédure (pe1, pe2,.. ) F. Mguis 52

3-4-2- Passage par valeur ALGORITHMEPASSAGE_VALEUR x : entier Procédure ESSAI ( i : entier ) i 3 * i Écrire ( "Le paramètre valeur i =", i ) (P.P) Ecrire ( "Donner la valeur de X : " ) Lire (x) Ecrire ( "Avant appel x = ", x ) ESSAI ( x ) /* Appel de la fonction ESSAI*/ Ecrire ( "Après appel x = ", x ) Interprétation : Le passage de paramètres par valeur permet au programme appelant de transmettre une valeur à la procédure appelée. Le paramètre formel «i» est une variable simple. Le paramètre effectif correspondant «x» est une expression de même type que le paramètre formel. Avant d exécuter les instructions de la procédure la valeur du paramètre effectif est affectée au paramètre formel. Dans ce cas, le paramètre formel est considéré comme une variable locale qui est initialisée lors de l appel. Compléter le tableau suivant : Remarque Conclusion : Avant appel x =10 Après appel x =10 x = 10 P.P Procédure Appel de «ESSAI» x = 10 i = 10 Exécution de «ESSAI» x = 10 i = 30 Après «ESSAI» x = 10 i = 30 Les paramètres effectifs et les paramètres formels doivent s accorder du point de vue nombre et ordre. Leurs types doivent être identiques selon le mode de passage des paramètres 1- Le transfert d information est effectué dans un seul sens, du programme principal vers la procédure. Sens de transfert : P.P. Procédure 2- Toute modification du paramètre formel est sans conséquent sur le paramètre effectif. F. Mguis 53

3-4-3- Passage par variable ALGORITHME PASSAGE_IABLE x : entier Procédure ESSAI ( i : entier ) i 3 * i Écrire ( "Le paramètre variable i =", i ) (P.P) Ecrire ( "Donner la valeur de X : " ) Lire (x) ESSAI ( x ) /* Appel de la fonction ESSAI*/ Ecrire ( "Après appel x = ", x ) Interprétation : Le passage de paramètres par variable permet au programme appelant de transmettre une valeur à la procédure appelée et vice-versa. Le paramètre formel «i» est une variable. Le paramètre effectif correspondant «x» doit également être une variable du même type que le paramètre formel. Pendant l exécution des instructions de la procédure, le paramètre formel fait référence au même contenant variable que celui désigné par le paramètre effectif. Compléter le tableau suivant : Conclusion : x = 10 P.P Procédure Appel de «ESSAI» x = 10 i = 10 Exécution de «ESSAI» x = 30 i = 30 Après «ESSAI» x = 30 i = 30 Avant appel x =10 Après appel x =30 1-Le transfert d information est effectué dans les deux sens, du programme principal vers la procédure et vice-versa. Sens de transfert : P.P. Procédure 2- Toute modification du paramètre formel entraîne automatiquement la modification de la valeur du paramètre effectif. F. Mguis 54

Exercice N 1 Faire la trace d exécution de l algorithme suivant : ALGORITHME PARAMÈTRE i, j : entier Procédure TRANSMISSION ( a : entier ; b : entier ) a a + 100 b b + 100 Écrire ( " a =", a, " b =", b) (P.P) i 1 j 2 TRANSMISSION ( i, j ) Écrire ( " i =", i, " j =", j) i 1 j 2 102 a 1 101 b 2 102 Résultat a = 101 b = 102 i = 1 j = 102 CH5 : Les procédures et les fonctions Espace mémoire défini pour les variables du P.P. Espace mémoire défini pour les variables de la procédure i 1 a 1 101 j 2 102 b 2 102 Exercice N 2 ALGORITHME PERMUTATION x, y : entier Procédure ÉCHANGE ( a, b : entier ) vs : entier vs a a b b vs Écrire ( " Dans ECHANGE a =", a, " b =", b) F. Mguis 55

(P.P) Écrire ( " Dnner x et y") Lire (x,y) Écrire ( " Avant appel de ECHANGE x =", x, " y =", y) ECHANGE ( x, y ) Écrire ( " Aprés appel de ECHANGE x =", x, " y =", y) Exercice N 3 CH5 : Les procédures et les fonctions Ecrire une procédure PUISSANCE à 3 paramètres a, b et P qui calcule P = a b = a * a * a * *a (b fois) Ecrire le L algorithme principal qui permet : De saisir deux entiers positifs (x, et y) D afficher x y ALGORITHME CALCUL x, y, R : entier Procédure PUISSANCE (a, b : entier ; P : entier) i : entier P 1 Pour i de 1 à b faire P P * a Fin pour (P.P) Répéter Ecrire ( " Donner x et y") Lire (x,y) Jusqu à (x>0 et y>0) PUISSANCE(x, y, R) Écrire ( x, "^", y, " =", R) 4-Les fonctions 4-1- Définition Une fonction est une procédure particulière qui admet un seul paramètre variable de type simple (entier, caractère, réel, etc.). Ainsi une fonction est tout simplement une procédure qui ne retourne qu un seul résultat, une seule valeur, au programme appelant. Il est obligatoire de préciser, dés le début le type de la fonction qui est en même temps le type du résultat à retourner. 4-2- Structure d une fonction Fonction Nom_de_la_fonction (Paramètres formels) : type Les déclarations <Séquence d instructions> Nom_de_la_fonction Résultat Fin F. Mguis 56

4-3- Appel d une fonction Nom_de_la_fonction (<liste des paramètres effectifs>) Ecrire une fonction MIN qui retourne le minimum de 2 entiers a et b. Fonction MIN (a, b : entier) : entier c : entier Si (a<=b) alors c a si non c b Fin si MIN c APPEL 1- z MIN(3,5) 2- Ecrire ( " Donner x et y") Lire (x,y) z MIN(x,y) 3- t (7 + MIN(x,y)) / 2 4- Ecrire ( " Le minimum = ", MIN(x,y)) 5- si (MIN(x,y) > 0 ) alors. Exercice : Comment utiliser la fonction MIN pour afficher le minimum de trois entiers x, y et z en une seule instruction et sans utiliser de variables supplémentaires. Remarques : Ecrire ( " Le minimum = ", MIN ( MIN(x,y), z)) 1-Le nom de la fonction joue un double rôle, c est à la fois l identifiant de la fonction et une variable locale. 2-Dans une fonction, le passage de tous les paramètres se fait par valeur. Conclusion Lors de l utilisation d une fonction, il faut : 1-Spécifier le type de la fonction, 2- Déclaré, si nécessaire, une variable locale de même type que la fonction (pour faire les calculs intermédiaires) 3-Affecter le résultat du calcul de la fonction au nom de la fonction, obligatoirement avant la fin du bloc (ranger le contenu de la variable locale dans la fonction). F. Mguis 57