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
32 Denitions et concepts
42.1 Module, Procedure, Fonction
42.2 Parametre, Argument
52.3 Passage de parametre
62.4 Algorithme d'un module
72.5 Appel d'un module
82.6 Resume et portee des modules
93 Fonction
1 03.1 Prol de fonction
1 03.2 Instruction de retour
1 13.3 Appel d'une fonction
123.4 Schema d'une fonction
1 33.5 Exemple : Maximum de trois entiers
143.6 Inclure un chier
163.7 Variable locale
174 Procedure de test
1 8 1 Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 20182Java - Fonctions et Procedures de test (Cours)Mots-ClesAlgorithmes parametres, Fonction, Procedure de test
RequisStructures de base, Structures conditionnellesDiculte• ◦ ◦(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, 201831 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.ExempleOn 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 :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| ...
FinPrototype, Arite
Leprototype, appele aussiprol,signatureouen-t^eted'un module, est le coupleOn 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, 201852.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 schematiqueInter^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, 201862.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 xTypeParam
yTypeParam
Formel
appel ssprg a bEffectif
Le parametrexrepresentera l'argument (variable eective)aet le parametreyla variable eectiveb.Passage de parametre par positionLes 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, 201872.4 Algorithme d'un moduleAlgorithme d'un module (procedure ou fonction)
Description de ce qu'il y a a l'interieur de laExemple : Reel ->Reel, x ->double de x
•Algorithme 1 : x + x •Algorithme 2 : 2 * x Unisciel algoprog { Fonctions et Procedures de test [ss], May 15, 201882.5 Appel d'un moduleAppel d'un module
Il sut de specier son nom (avec ses eventuels arguments).Mecanisme d'evaluation d'un moduleCelui-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, 201892.6 Resume et portee des modulesModule (Nouvelle denition)
Element logiciel caracterise par :
•Unidentiant: reference a l'element3 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, 2018113.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, 2018123.3 Appel d'une fonctionAppel d'une fonction
v nomFcn a1 aNExplication
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, 2018133.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, 2018143.5 Exemple : Maximum de trois entiersRetour sur l'exemple
Voici l'algorithme du deuxieme probleme de la section @[Motivation] :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•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, 2018163.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, 2018173.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 laa,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 partie4 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 testRemarque
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 :
[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