[PDF] Fonctions et Procédures de test [ss] Support de Cours





Previous PDF Next PDF



Chapitre 3 : Procédures et fonctions

En Algorithmique chaque solution partielle donne lieu à un sous-algorithme qui fera partie d'un algorithme complet pour pouvoir être exécuté. 1- Définitions.



Variables (locales et globales) fonctions et procédures

Il faut comprendre ces mots comme “programme algorithmique” indépendant de toute implantation. Variables fonctions



Corrigé Série dexercices n°4 : Les fonctions et procédures

Module : Initiation à l'algorithmique Ecrire une fonction ou procédure qui calcule la partie entière d'un nombre positif. Fonction entiere (x : reel) ...



Atelier 06 : Les fonctions et procédures

Algorithme Fonction_Moyenne. Variables A B : entiers. // Déclaration de la fonction Moyenne. Fonction Moyenne(X : entier



LES FONCTIONS ET LES PROCEDURES I- INTRODUCTION II

algorithmes (programmes). II-. LES FONCTIONS. Une Fonction est une partie d'un algorithme (ou un sous-programme) 



Untitled

Il existe deux sortes de sous-algorithmes : les procédures et les fonctions. l'appel de la procédure ou fonction au sein de l'algorithme principal.



TD I- Algorithmique

TD 7 Les procédures et les fonctions. CORRIGE : Les procédures et les fonctions. Exercice I : 1 - Trouver le résultat fourni par l'algorithme :.



Les fonctions et les procédures

Ecrire un algorithme qui lit deux nombres réels a et b ensuite il affiche leur produit en utilisant une fonction. Remarques: 1. Le nombre



Fonctions et Procédures de test [ss] Support de Cours

Mots-Clés Algorithmes paramétrés Fonction



Fonctions et Procédures de test [ss] Support de Cours

Algorithme (nouvelle définition). Ensemble de procédures et de fonctions. Procédure v.s. Fonction. Certains langages de programmation (comme les langages C/C++) 

Fonctions et Procedures de test [ss]

Support de Cours

Karine Zampieri, Stephane Riviere

UniscielalgoprogVersion 15 mai 2018

Table des matieres

1 Motivation

3

2 Denitions et concepts

4

2.1 Module, Procedure, Fonction

4

2.2 Parametre, Argument

5

2.3 Passage de parametre

6

2.4 Algorithme d'un module

7

2.5 Appel d'un module

8

2.6 Resume et portee des modules

9

3 Fonction

1 0

3.1 Prol de fonction

1 0

3.2 Instruction de retour

1 1

3.3 Appel d'une fonction

12

3.4 Schema d'une fonction

1 3

3.5 Exemple : Maximum de trois entiers

14

3.6 Inclure un chier

16

3.7 Variable locale

17

4 Procedure de test

1 8 1 Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20182

Java - Fonctions et Procedures de test (Cours)Mots-ClesAlgorithmes parametres, Fonction, Procedure de test

RequisStructures de base, Structures conditionnelles

Diculte• ◦ ◦(1 h)Introduction

Ce module (en deux parties) traite desfonctionsetproceduresqui sont desalgo- rithmes parametresautonomes et specialises qui presentent l'inter^et de pouvoir reuti- liser du code. Celui-ci introduit : les denitions, les concepts, lafonctionet lesproce- dures de test. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20183

1 MotivationProgrammation modulaire, module

Technique utilisee lors de la conception d'algorithmes complexes, laprogrammation modulaireconsiste a diviser un algorithme en sections (groupe d'instructions) et a associer un nom a une section qui peut alors ^etre active par l'appel de cet identiant. Chaque section est appelee unsous-algorithmeoumodule.Exemple

On peut realiser le tri par ordre croissant de trois nombres comme suit :(1)ordonner les deux p remiersnombres a et b

(2) ordonner les deux derniers b etc(3)ordonner à nouveau les deux p remiersa et b En eet, a l'issue des deux premieres operations,ccontiendra le plus grand des trois nombres et a l'issue des trois operations,amemorisera le plus petit des trois. Doncbsera le median des trois. Dans cet exemple, l'approche modulaire consiste a denir deux modules conservant cha- cun leur specicite (l'un realisant l'ordonnancement de deux nombres et l'autre celui de trois nombres) et de leur permettre de communiquer entre eux pour s'echanger des donneesetdes resultats.Exemple Un deuxieme type de module est celuirenvoyant une valeur. Considerons le probleme :

. Pour le resoudre, voici une approche :(1)tmp <- calculer le maximum des deux p remiersnombres

(2) tmp calculer le maximum de tmp etdutroisi èmenombre Ici l'ideal est de pouvoir denir deux modules (l'un renvoyant le maximum de deux nombres et l'autre le maximum de trois nombres) et de leur permettre de communiquer entre eux pour s'echanger des donnees.Conclusion De facon imagee, un module est un algorithme dont l'evaluation (on dit l'appelou invocation) correspond a l'execution de la portion de programme qui lui est associee et fournit l'eventuelle valeur de retour. De plus, pour pouvoir faire communiquer les modules entre eux, il faut les equiper d'une de transmission des entites qui contient une declaration de variables qu'on appellera lesparametresdu module. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20184

2 Denitions et concepts

2.1 Module, Procedure, FonctionModule

Appele aussisous-programmeen programmation, c'est un bloc d'instructions ayant un debutet unen, identie par unnom(l'identiant) et associe a la denition d'une interface explicite par le biais d'une specication deparametres.Modulenom ( param ètres)

Début| ...

Fin

Prototype, Arite

Leprototype, appele aussiprol,signatureouen-t^eted'un module, est le couple . L'ariteest son nombre de parametres.Procedure Module parametredont l'appel est assimilable a une instruction : c'est un macro- traitement.Fonction Module parametrequi renvoie obligatoirementune (et une seule) valeur resultat au module appelant : c'est une macro-expression.Algorithme (nouvelle denition) Ensemble de procedures et de fonctions.Procedure v.s. Fonction Certains langages de programmation (comme les langagesC/C++) confondent fonc- tions et procedures en donnant aux fonctions des proprietes supplementaires qui leur permettent de se comporter comme des procedures. En algorithmique, nous tenons a distinguer les fonctions (qui renvoient une valeur) des procedures (qui executent une action). Libre ensuite au programmeur de s'adapter au langage qu'il utilise.Categories de modules

On distingue :

•Lesmodules predenis. •Lesmodules denis par l'utilisateur. Ils ont un comportement identique. La dierence est que les premiers sont deja ecrits dans des bibliotheques, tandis que les seconds sont a denir, c.-a-d. a ecrire et a les faire evaluer par la machine (compiler) avant utilisation. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20185

2.2 Parametre, ArgumentParametres

Dits aussiparametres formelsouparametres muets, ce sont les identiants indiques dans l'en-t^ete d'un module. Ils permettent de donner des noms provisoires aux entites transmises. Ce sont ces identiants quidoivent ^etre utilisespour decrire le traitement du module.Arguments Dits aussiparametres eectifs, ce sont les valeurs ou variables passees au module lors de son appel : c'est reellement avec ces elements que travaillera le module.Resume schematique

Inter^ets des parametres

Deux inter^ets principaux :

•Le premier concerne lageneralite des traitements. En eet, ils fournissent un mecanisme de substitution qui permet a un module d'^etre execute plusieurs fois sur des donnees ou des variables dierentes. •Le second inter^et estdocumentaire. Les parametres autorisent la mise en evidence des informations utilisees ou modiees par un module. Cela permet de comprendre plus rapidement les eets du traitement sur les donnees de l'algorithme. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20186

2.3 Passage de parametrePassage de parametre par position

Les arguments sont associespar positionaux parametres : •Le premier argument est associe au premier parametre. •Le deuxieme argument eectif au deuxieme parametre. •etc.Exemple : Appel/description { Parametres eectifs/formels description ssprg x

TypeParam

y

TypeParam

Formel

appel ssprg a b

Effectif

Le parametrexrepresentera l'argument (variable eective)aet le parametreyla variable eectiveb.Passage de parametre par position

Les regles a respecter :

•Il faut le m^eme nombre d'arguments que de parametres. •Types et arites des arguments aux parametres doivent correspondre. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20187

2.4 Algorithme d'un moduleAlgorithme d'un module (procedure ou fonction)

Description de ce qu'il y a a l'interieur de laet qui permet la production du resultat a partir des parametres.Elaborer un algorithmec'est construire la. Ceci peut se faire a partir d'autres modules deja existants.Non unicite de l'algorithme Il peut exister plusieurs algorithmes pour un m^eme module.

Exemple : Reel ->Reel, x ->double de x

•Algorithme 1 : x + x •Algorithme 2 : 2 * x Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20188

2.5 Appel d'un moduleAppel d'un module

Il sut de specier son nom (avec ses eventuels arguments).Mecanisme d'evaluation d'un module

Celui-ci s'eectue comme suit :

(0)

Evaluationde l'identiantfet des arguments

(1)

Co pieou l iaisondes parametres aux arguments

(2)

R ealisationdu calcul dans cet environnement

(3)

Ret ourde la valeur (en cas de fonction)

(4)

Co ntinuationdu programme apres l'appelfRemarque

Lorsque les instructions du module sont terminees, l'algorithme ou le programme reprend a l'instruction qui suit l'instruction d'appel dans le bloc appelant. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20189

2.6 Resume et portee des modulesModule (Nouvelle denition)

Element logiciel caracterise par :

•Unidentiant: reference a l'elementou. •Uncorps: bloc de code reutilisable. Induit une portee | locale | pour leselements (variables, constantes) denis au sein du module. •Desparametres formels: copies ou liaisons a des variables denies a l'exterieur du module dont les valeurs sont potentiellement utilisees dans le corps du module. •Untypeet unevaleur de retour: le type precise la nature du resultat retourne par la fonction et la valeur sera indiquee dans son corps.Portee des modules L'ordre d'apparition des modules (procedures et fonctions) dans une classe importe peu et est laisse au choix du programmeur. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201810

3 Fonction

3.1 Prol de fonctionProl de fonction

Constitue par le nom de la fonction, la liste des types des parametres d'entree et le type du resultat.Prol de fonction staticTypeResnomFcn (T1param1 , ...,Tn paramN )Explication Denit leprolde la fonction d'identiantnomFcnayant pour parametres formels les paramIde type correspondantsTi. Letypede la valeur renvoyee estTypeRes. La liste est vide si la fonction n'a pas besoin de parametres.Remarque En theorie, le type de la valeur retournee peut^etre un type simple (entier, reel, booleen...), un type structure, un tableau ou m^eme un objet (ces types seront vus dans les modules suivants). En pratique il conviendra de s'en tenir aux limitations du langage utilise.Remarque Les parametres formels deviennent automatiquement des variables locales (cf. plus bas, @[Variable locale]) du module. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201811

3.2 Instruction de retourInstruction de retour

returnexpression;Explication Renvoie (retourne) au module appelant le resultat de l'expressionplacee a la suite du mot-cle.Java : return L'instruction provoque la terminaison de la fonction.Dans une fonction Il doittoujoursy avoir l'execution d'une primitivereturn, et ceci quelles que soient les situations (conditions). En eet, si dans un cas particulier, la fonction s'execute sans ^etre passee par cette primitive, ceci revele une incoherence dans la conception de votre fonction car celle-ci aura une valeur inconnue et aleatoire. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201812

3.3 Appel d'une fonctionAppel d'une fonction

v nomFcn a1 aN

Explication

Appelle (on dit aussiinvoque) la fonctionnomFcnavec les (eventuels) argumentsaI. La valeur retournee peut ^etre utilisee en tant que macro-expression.Fonction = macro-expression Une fonction retournetoujoursune information a l'algorithme appelant. C'est pourquoi l'appel d'une fonctionne se fait jamaisa gauche du signe d'aectation. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201813

3.4 Schema d'une fonctionSchema d'une fonction

staticTypeResnomFcn (TypeParam1param1 ,TypeParam2param2 ,...){

TypeRes

resultat valeurInitiale calcul_du_resultat returnresultat;}

Explication

Pour des questions de lisibilite et de preuve de programme, il vous est fortement recom- mande d'adopter le schema ci-dessus.Expression fonctionnelle public static TypeResnomFcn (TypeParam1param1 ,TypeParam2param2 ,...){ returnexpression;}

Explication

Dans le cas d'une expression calculable directement, on peut regrouper le tout : on parle alors d'expression fonctionnelle. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201814

3.5 Exemple : Maximum de trois entiersRetour sur l'exemple

Voici l'algorithme du deuxieme probleme de la section @[Motivation] : Rappelons l'approche de resolution : (1) tmp calculer le maximum des deux p rem iers nombres (2) tmp calculer le maximum de tmp etdutroisi èmenombre

D'ou la denition de deux fonctions :

•Fonctionmax2i: maximum de deux entiers •Fonctionmax3i: maximum de trois entiersFonction max2i public static int max2i(inta,intb){ return(a> b ? a : b );}

Explication

La fonction prend deux entiersaetb(parametres d'entree) et renvoie le plus grand dea etb.Remarque Sous cette forme, toute fonction est devenue: elle ne lit rien ni n'ache rien mais elle est cependant pr^ete a ^etre utilisee. Il sura d'ecrire son nom suivi d'un nombre de variables (ou en entree d'expressions) en accord avec son en-t^ete.Fonction max3i public static int max3i(inta,intb,intc){ inttmp= max2i (a,b);returnmax2i(tmp,c);} Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201815Explication La fonctionmax3icalcule et renvoie le plus grand de ses trois parametres d'entiers par appel a la fonctionmax2icomme suit : •Le contenu des variablesaetbest aecte aux parametres d'entreeaetbdemax2i puis cette fonction entre en action. •A l'issue de la fonctionmax2i, celle-ci renvoie le maximum deaetbqui est stocke dans la variable localetmp. •Puis le contenu des variablestmpetcest aecte aux parametres d'entreeaetbde max2iqui alors entre en action.

•A l'issue de la fonctionmax2i, elle renvoie le maximum detmpetc.Fonction max3i(Expression fonctionnelle)publicstatic int max3iv2(inta,intb,intc){

returnmax2i(max2i(a,b),c);}

Explication

L'expression fonctionnelle permet une ecriture plus compacte.Programme importjava.util.Scanner;classPGMax3i{ publicstatic void main(String[]args ){

Scanner

input = newScanner(System.in);intn1,n2 ,n3 ;System.out.print("Troisentiers ?" ); n1 input nextInt n2 input nextInt n3 input nextInt intvmax= UtilsSS .max3i(n1,n2,n3);System.out.println("Maxdes trois " + vmax ); Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201816

3.6 Inclure un chierJava : Inclure un chier

Pour utiliser modules (procedures et fonctions) denis dans une classe, il sut que la classe soit dans le m^eme dossier que le programme courant et d'appeler le module selon la syntaxe usuelle :NomClasse.ssprg(liste_d_arguments)

Remarque

Dans le cas de l'exemple, elle utilise le chier"UtilsSS.java"lequel contient les fonctions max3ietmax2i. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201817

3.7 Variable localeVariable locale

Toute variable estlocaleau module dans lequel elle appara^t, ce qui veut dire que son existence est ignoree en dehors de ce module. De facon imagee, vous ne voyez pas ce qu'il y a a l'interieur de la.Consequence Plut^ot qu'une restriction, cette propriete est une aide confortable au programmeur : si, de facon fortuite, des variables appartenant a des modules dierents possedaient le m^eme nom, il n'y aurait pas d'interference entre ces variables, ni confusion possible de leur contenu.Exemple Dans le modulemax3i(cf @[Exemple : Maximum de trois entiers]), les parametres d'entree

a,betcainsi que les variables temporairestmpetvmaxsont locaux a ce module.Regle des parametres formels et variables d'un module

Les parametres formels d'un module ne doivent plus ^etre declares dans la partiede ce module. Mais toutes les variables utilisees dans un module doivent ^etre declarees, soit dans son en-t^ete, soit dans sa declaration. Le non-respect de cette regle provoque une erreur d'execution.Remarque Une variable locale est aussidynamique, c.-a-d. qu'un emplacement en memoire lui est reserve durant l'execution du module ou elle est declaree. Une fois l'execution terminee, cet emplacement est recupere en memoire. Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201818

4 Procedure de testMotivation

L'encapsulation d'un programme dans uneprocedure de testtest_xxxpermet de : 1. D ecomposeru np robleme( =l 'algorithme)en so us-problemes( =l esm odules). 2. V erierc hacund esso us-problemesd ef aconp luso um oinsi ndependante. 3. V aliderl ep robleme nalen ecrivantu nu niquea lgorithme( =l ep rogramme).Procedure de test public class PGxxx{ publicstatic test_xxx(){ criture des instructions du mini main public static void main(String[]args ){ test_xxx appelle de la proc dure de test

Remarque

Au fur et a mesure de l'avancement, l'unique modication dans le corps du programme sera le nom de la procedure de test en cours de verication.Que signie "Testez..."?

Dans tout exercice, l'enonce :

Signie :

quotesdbs_dbs1.pdfusesText_1
[PDF] les fonctions logiques universelles

[PDF] les fonctions numériques cours pdf

[PDF] les fonctions numériques cours tronc commun

[PDF] les fondamentaux de l'assurance pdf

[PDF] les fondamentaux du management de projet pdf

[PDF] les fondamentaux du taux de change

[PDF] les fondements du commerce international economie

[PDF] les fondements du commerce international pdf

[PDF] les fondements du contrôle de gestion henri bouquin pdf

[PDF] les fondements du marketing pdf

[PDF] les forces exercices corrigés

[PDF] les forces physique 3eme

[PDF] les formes d'énergie et leur transformation

[PDF] les formes d'impots au niger

[PDF] les formes de tourisme au maroc pdf