Chapitre 3 : Procédures et fonctions
- Les paramètres effectifs sont des valeurs réelles (constantes ou variables) reçues par le sous-algorithme au cours de l'exécution du bloc principal. On les
Chapitre I Procédures et Fonctions I-I Introduction générale
L'algorithme solution du problème en entier s'appelle algorithme principal et fait appel aux actions (procédure
Support de cours pour AP1-algo et AP2-algo
4 Appels de procédures et fonctions Dans le contexte de ce cours un algorithme est conçu pour être exécuté par un ordinateur. La notion.
Fonctions et Procédures de test [ss] Support de Cours
Programmation modulaire module. Technique utilisée lors de la conception d'algorithmes complexes
Fonctions et procédures Procedures: déclaration et appel
Zero un ou plusieurs param`etres: ce sont les arguments de la fonction. 4. Un type et une valeur. Page 3. Cours 5 : fonctions
Variables (locales et globales) fonctions et procédures
Luc Brun luc.brun@greyc.ensicaen.fr. Variables fonctions
Algorithmique et Structures de Données I
programme comme un ensemble de procédures/fonctions. 4- Une variable globale (publique) est déclarée au début de l'algorithme. Elle peut être utilisée.
Algorithmique Récursivité
On appelle récursive toute fonction ou procédure qui s'appelle elle même. Algorithme Fact La Pile d'exécution (call stack) du programme en cours est un.
Procedure et fonction.pdf
A) Procédure sans paramètres : Soit la procédure principale ( Algorithme ) qui décrit le dessin de l'arbre et de la maison. D'un point
Exercices avec Solutions
Les Actions Paramétrées (Procédures et Fonctions) . Ecrire un algorithme qui demande un nombre à l'utilisateur puis calcule et affiche le carré de ce ...
Algorithmique...
Variables (locales et globales),
fonctions et procéduresNicolas Delestre et Michel Mainguenaud
Modifié pour l'ENSICAEN par :
Luc Brun
luc.brun@greyc.ensicaen.frVariables, fonctions, procedures - p.1/32
Plan...
RappelsLes sous-programmesVariables locales et variables globalesStructure d'un programmeLes fonctionsLes procédures
Variables, fonctions, procedures - p.2/32
Vocabulaire...
Dans ce cours nous allons parler de "programme" et de "sous-programme"Il faut comprendre ces mots comme "programme algorithmique"indépendant de toute implantation
Variables, fonctions, procedures - p.3/32
Rappels...
La méthodologie de base de l'informatique est :1. Abstraire
Retarder
le plus longtemps possible l'instant du codage2.Décomposer
diviser chacune des difficultés que j'examinerai en autant de parties qu'il se pourrait et qu'il serait requis pour les mieux résoudre." Descartes3. Combiner
Résoudre le problème par
combinaison d'abstractionsVariables, fonctions, procedures - p.4/32
Par exemple...
Résoudre le problème suivant :
Écrire un programme qui affiche en ordre croissant les notes d'une promotion suivies de la note la plus faible, de la note la plus élevée et de la moyenne Revient à résoudre les problèmes suivants :Remplir un tableau de naturels avec des notes saisies par l'utilisateurAfficher un tableau de naturelsTrier un tableau de naturel en ordre croissantTrouver le plus petit naturel d'un tableauTrouver le plus grand naturel d'un tableauCalculer la moyenne d'un tableau de naturels
Chacun de ces sous-problèmes devient un nouveau problème à résoudreSi on considère que l'on sait résoudre ces sous-problèmes, alors on sait
"quasiment" résoudre le problème initialVariables, fonctions, procedures - p.5/32
Sous-programme...
Donc écrire un programme qui résout un problème revient toujours à écriredes sous-programmes qui résolvent des sous parties du problème initialEn algorithmique il existe deux types de sous-programmes :
Les fonctions, Les procédures. Un sous-programme est obligatoirement caractérisé par un nom (unidentifiant) uniqueLorsqu'un sous programme a été explicité (on a donné l'algorithme), sonnom devient une nouvelle instruction, qui peut être utilisé dans d'autres(sous-)programmesLe (sous-)programme qui utilise un sous-programme est appelé(sous-)programme appelant
Variables, fonctions, procedures - p.6/32
Règle de nommage...
Nous savons maintenant que les variables, les constantes, les types définis par l'utilisateur (comme les énumérateurs) et que les sous-programmes possèdent un nomCes noms doivent suivre certaines règles :Ils doivent être explicites (à part quelques cas particuliers, comme par exemple les variablesietjpour les
boucles)Ils ne peuvent contenir que des lettres et des chiffresIls commencent obligatoirement par une lettreLes variables et les sous-programmes commencent toujours par une minusculeLes types commencent toujours par une majusculeLes constantes ne sont composées que de majusculesLorsqu'ils sont composés de plusieurs mots, on utilise les majuscules (sauf pour les constantes) pour séparer
les mots (par exemple JourDeLaSemaine)Variables, fonctions, procedures - p.7/32
Les différents types de variable...
Définitions :
Laportéed'une variable est l'ensemble des sous-programmes où cette variable est connue (les instructions de ces sous-programmes peuvent utiliser cettevariable)Une variable définie au niveau du programme principal (celui qui résout leproblème initial, le problème de plus haut niveau) est appelée
variable globale Sa portée est totale :toutsous-programme du programme principal peut utiliser cettevariable Une variable définie au sein d'un sous programme est appelée variable locale La portée d'un variable locale est uniquement le sous-programme qui la déclare Lorsque le nom d'une variable locale est identique à une variable globale, la variable globale est localement masquée Dans ce sous-programme la variable globale devient inaccessibleVariables, fonctions, procedures - p.8/32
Structure d'un programme...
Un programme doit suivre la structure suivante :
Programmenom du programme
Définition des constantes
Définition des types
Déclaration des variables globales
Définition des sous-programmes
début instructions du programme principal finVariables, fonctions, procedures - p.9/32
Les paramètres...
Un paramètre d'un sous-programme est une variable locale particulière qui est associée à une variable ou constante (numérique ou définie par le programmeur) du (sous-)programme appelant :Puisque qu'un paramètre est une variable locale, un paramètre admet un typeLorsque le (sous-)programme appelant appelle le sous-programme il doit indiquer la variable (ou la
constante), de même type, qui est associée au paramètre Par exemple, si le sous-programmesqrpermet de calculer la racine carrée d'un réel:Ce sous-programme admet un seul paramètre de type réel positifLe (sous-)programme qui utilisesqrdoit donner le réel positif dont il veut calculer la racine carrée, cela peut
être :
une variable, par exempleaune constante, par exemple5.25Variables, fonctions, procedures - p.10/32
Les passage de paramètres...
Il existe trois types d'association (que l'on nommepassage de paramètre) entre le paramètre et la variable (ou la constante) du (sous-)programme appelant :Lepassage de paramètre en
entréeLepassage de paramètre en
sortieLepassage de paramètre en
entrée/sortieVariables, fonctions, procedures - p.11/32
Le passage de paramètres en entrée...
Les instructions du sous-programme ne
peuvent pas modifier l'entité (variable ou constante) du (sous-)programme appelant En fait c'est la valeur de l'entité du (sous-) programme appelant qui est copiée dans le paramètre (à part cette copie il n'y a pas de relation entre le paramètre etl'entité du (sous-)programme appelant)C'est leseulpassage de paramètre qui admet l'utilisation d'une constante
Par exemple :
le sous-programmesqrpermettant de calculer la racine carrée d'un nombreadmet un paramètre en entréele sous-programmeécrirequi permet d'afficher des informations admet n
paramètres en entréeVariables, fonctions, procedures - p.12/32
Le passage de paramètres en sortie...
Les instructions du sous-programme
affectent obligatoirement une valeur à ce paramètre (valeur qui est donc aussi affectée à la variable associée du (sous-)programme appelant) Il y a donc une liaison forte entre le paramètre et l'entité du (sous-) programme appelant C'est pour cela qu'on ne peut pas utiliser de constante pour ce type de paramètre La valeur que pouvait posséder la variable associée du (sous-)programme appelant n'est pas utilisée par le sous-programmePar exemple :
le sous-programmelirequi permet de mettre dans des variables des valeurs saisies par l'utilisateur admet n paramètres en sortieVariables, fonctions, procedures - p.13/32
Le passage de paramètres en entrée/sortie...Passage de paramètre qui combine les deux précédentesA utiliser lorsque le sous-programme doit
utiliser et/ou modifier la valeur de la variable du (sous-)programme appelant Comme pour le passage de paramètre en sortie, on ne peut pas utiliser de constantePar exemple : le sous-programmeéchangerqui permet d'échanger les valeurs de deux variablesVariables, fonctions, procedures - p.14/32
Les fonctions...
Les fonctions sont des sous-programmes admettant des paramètres et retournant un seulrésultat (comme les fonctions mathématiques y=f(x,y,...)les paramètres sont en nombre fixe (≥0)une fonction possède un seul type, qui est le type de la valeurretournéele passage de paramètre est
uniquement en entrée : c'est pour cela qu'il n'est pas précisé lors de l'appel, on peut donc utiliser comme paramètre des variables, des constantes mais aussi des résultats de fonction la valeur de retour est spécifiée par l'instructionretourner Généralement le nom d'une fonction est soit un nom (par exemple minimum), soit une question (par exempleestVide)Variables, fonctions, procedures - p.15/32
Les fonctions...
On déclare une fonction de la façon suivante : fonctionnom de la fonction(paramètre(s) de la fonction) :type de la valeur retournéeDéclarationvariable locale 1 : type 1; ...
début instructions de la fonction avec au moins une fois l'instructionretourner finOn utilise une fonction en précisant son nom suivi des paramètres entreparenthèses Les parenthèses sont toujours présentes même lorsqu'il n'y a pas de paramètreVariables, fonctions, procedures - p.16/32
Exemple de déclaration de fonction...
fonctionabs(unEntier :Entier) : Entier début siunEntier≥0alors retournerunEntier finsi retourner -unEntier fin Remarque : Cette fonction est équivalente à : fonctionabs(unEntier :Entier) : EntierDéclarationtmp:Entier
début siunEntier≥0alors tmp←unEntier sinon tmp←-unEntier finsi retournertmp finVariables, fonctions, procedures - p.17/32Exemple de programme...
Programmeexemple1
Déclarationa :Entier, b :Naturel
fonctionabs(unEntier :Entier) : NaturelDéclarationvaleurAbsolue :Naturel
début siunEntier≥0alors valeurAbsolue←unEntier sinon valeurAbsolue←-unEntier finsi retournervaleurAbsolue fin débutécrire("Entrez un entier :")
lire(a) b←abs(a)écrire("la valeur absolue de ",a," est ",b)
finLors de l'exécution de la fonction
abs, la variableaet le paramètre unEntiersont associés par un pas- sage de paramètre en entrée : La valeur deaest copiée dansunEn- tierVariables, fonctions, procedures - p.18/32
Un autre exemple...
fonctionminimum2(a,b :Entier) : Entier début sia≥balors retournerb finsi retournera fin fonctionminimum3(a,b,c :Entier) : Entier début retournerminimum2(a,minimum2(b,c)) finVariables, fonctions, procedures - p.19/32
Les procédures...
Les procédures sont des sous-programmes qui ne retournentaucunrésultatPar contre elles admettent des paramètres avec des passages :
en entrée, préfixés parEntrée(ouE)en sortie, préfixés parSortie(ouS)en entrée/sortie, préfixés parEntrée/Sortie(ouE/S)
Généralement le nom d'une procédure est un verbeVariables, fonctions, procedures - p.20/32
Les procédures...
On déclare une procédure de la façon suivante : procédurenom de la procédure(Eparamètre(s) en entrée;Sparamètre(s)
en sortie;E/Sparamètre(s) en entrée/sortieDéclarationvariable(s) locale(s)
début instructions de la procédure fin Et on appelle une procédure comme une fonction, en indiquant son nom suivi des paramètres entre parenthèsesVariables, fonctions, procedures - p.21/32
Exemple de déclaration de procédure...
procédurecalculerMinMax3( Ea,b,c :Entier;Sm,M :Entier ) début m←minimum3(a,b,c)M←maximum3(a,b,c)
finVariables, fonctions, procedures - p.22/32
Exemple de programme...
Programmeexemple2
Déclarationa :Entier, b :Naturel
procédureechanger( E/Sval1Entier;E/Sval2Entier;)Déclarationtemp :Entier
début temp←val1 val1←val2 val2←temp fin débutécrire("Entrez deux entiers :")
lire(a,b) echanger(a,b)quotesdbs_dbs13.pdfusesText_19[PDF] cours alimentation en eau potable pdf
[PDF] cours alphabet arabe pdf
[PDF] cours amp df1
[PDF] cours amp pdf
[PDF] cours analyse 5
[PDF] cours analyse économique l1
[PDF] cours analyse mathématique pdf
[PDF] cours analyse mathématique s1 economie pdf
[PDF] cours anatomie physiologie infirmier pdf
[PDF] cours anglais juridique pdf
[PDF] cours apprentissage automatique pdf
[PDF] cours arcgis 10 pdf
[PDF] cours architecture batiment pdf
[PDF] cours arithmétique 3eme pdf