Post

CM8 Fonctions et Procedures

Télécharger le CM8 Fonctions et Procedures en pdf

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

Page 1 : INFORMATIQUE 1V I I I . F O N C T I O N S E T P R O C É D U R E SEva Ansermin & Romuald Grignon v1.1

page 1

Page 2 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINEva ANSERMIN & Romuald GRIGNON2

page 2

Page 3 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabiEva ANSERMIN & Romuald GRIGNON3

page 3

Page 4 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2Eva ANSERMIN & Romuald GRIGNON4

page 4

Page 5 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi28Eva ANSERMIN & Romuald GRIGNON5

page 5

Page 6 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi282Eva ANSERMIN & Romuald GRIGNON6

page 6

Page 7 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi262Eva ANSERMIN & Romuald GRIGNON7

page 7

Page 8 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi263Eva ANSERMIN & Romuald GRIGNON8

page 8

Page 9 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi263Eva ANSERMIN & Romuald GRIGNON9

page 9

Page 10 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi243Eva ANSERMIN & Romuald GRIGNON10

page 10

Page 11 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi244Eva ANSERMIN & Romuald GRIGNON11

page 11

Page 12 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi244Eva ANSERMIN & Romuald GRIGNON12

page 12

Page 13 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi224Eva ANSERMIN & Romuald GRIGNON13

page 13

Page 14 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi225Eva ANSERMIN & Romuald GRIGNON14

page 14

Page 15 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi225Eva ANSERMIN & Romuald GRIGNON15

page 15

Page 16 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi205Eva ANSERMIN & Romuald GRIGNON16

page 16

Page 17 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi206Eva ANSERMIN & Romuald GRIGNON17

page 17

Page 18 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi206Eva ANSERMIN & Romuald GRIGNON18

page 18

Page 19 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-26Eva ANSERMIN & Romuald GRIGNON19

page 19

Page 20 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-27Eva ANSERMIN & Romuald GRIGNON20

page 20

Page 21 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-27Eva ANSERMIN & Romuald GRIGNON21

page 21

Page 22 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-47Eva ANSERMIN & Romuald GRIGNON22

page 22

Page 23 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-48Eva ANSERMIN & Romuald GRIGNON23

page 23

Page 24 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-48Eva ANSERMIN & Romuald GRIGNON24

page 24

Page 25 : Rappel cours précédentPROGRAMME OracleVARIABLESa,b,i : entierDÉBUTa - 2b - 8POUR i DE 2 A 8 FAIREb - b-a FIN POURECRIREbFINabi2-48-4Eva ANSERMIN & Romuald GRIGNON25

page 25

Page 26 : Un exemple de code pas très pratique…PROGRAMME sondageVARIABLESrep1, rep2, rep3 : entierDÉBUTREPETERECRIRE“Vous préférez: 1: les chats 2: les chiens?”LIRErep1TANT QUErep11 ET rep12REPETERECRIRE“Vous préférez: 1: les pâtes 2: le riz?”LIRErep2TANT QUErep21 ET rep22REPETERECRIRE“Vous préférez: 1: Pikachu 2: Salamèche?”LIRErep3TANT QUErep31 ET rep32……FINEva ANSERMIN & Romuald GRIGNON26

page 26

Page 27 : J’ai un code qui s’applique exactement plusieurs fois dans mon programme, ouf, merci le copier/coller !J’ai un autre code, comme précédemment, que je peux répliquer, modulo la valeur d’une variable qui change… Il va falloir faire attention !Je dois modifier mon calcul, heureusement qu’il y a la recherche….On va essayer de faire mieux...Eva ANSERMIN & Romuald GRIGNON27

page 27

Page 28 : Plutôt que d’écrire un algorithme en un seul bloc, nous allons assembler des morceaux de codes qui peuvent communiquer entre eux. On divise notre algorithme en utilisant des fonctions.Utiliser des fonctions permet non seulement de ne pas se répéter mais égalementd’avoir un programme plus clair.On va essayer de faire mieux...Eva ANSERMIN & Romuald GRIGNON28

page 28

Page 29 : I. Principe des fonctionsEva ANSERMIN & Romuald GRIGNON29

page 29

Page 30 : Fonction●Une FONCTION est une suite d’instructions qui prend une liste de paramètres en entrée et produit retourne un résultat en sortie au code appelant cette fonction.●Lorsqu'on appelle une fonction, il y a trois étapes.1.L'entrée: on fait « rentrer » des informations dans la fonction en lui donnant des informations avec lesquelles travailler.2.Les calculs : grâce aux informations qu'elle a reçues en entrée, la fonction travaille.3.La sortie : une fois qu'elle a fini ses calculs, la fonction renvoie un résultat.C'est ce qu'on appelle la sortie, ou encore le retour.Eva ANSERMIN & Romuald GRIGNON30

page 30

Page 31 : Fonction●Exemples de fonctions :Puissanceab𝑠2𝑎, 𝑏 = 𝑎𝑏●Le concept de fonctions et de ses paramètres est similaire aux fonctionsmathématiques : les paramètres sont des variables générales à remplacerlorsque l’on utilise la fonction.s1 𝑥= 𝑥𝑥s2 𝑎, 𝑏= 𝑎𝑏Carréx𝑠1 𝑥= 𝑥𝑥Eva ANSERMIN & Romuald GRIGNON31

page 31

Page 32 : Fonction●Utilisation pratique des fonctions :Puissance2424 = 16●Appeller la fonction : exécuter l’algorithme en remplacant les paramètres par des valeurs concrètes.●Une fonction n’a qu’une seule sortie !●Cette sortie est communiquée au reste du programme qui peut l’utiliser.Carré6 6 = 366Eva ANSERMIN & Romuald GRIGNON32

page 32

Page 33 : II. Utilisation des fonctionsEva ANSERMIN & Romuald GRIGNON33

page 33

Page 34 : Fonction●Une FONCTION est une suite d’instructions qui prend une liste de paramètresen entrée et produit retourne UN UNIQUE résultat en sortie au code appelant cette fonction.●Syntaxe : FONCTION nomDeFonctionliste de paramètres : type de retourVARIABLES... result : type de retourDEBUT…RETOURNER resultFINEva ANSERMIN & Romuald GRIGNON34

page 34

Page 35 : Un exemple complet// Fonction qui élève un nombre au carréFONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINcarrenb𝑟𝑒𝑠= 𝑥𝑥Eva ANSERMIN & Romuald GRIGNON35

page 35

Page 36 : Un exemple complet// Fonction qui élève un nombre au carréFONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINcarrenb𝑟𝑒𝑠= 𝑥𝑥Liste paramètresZone de déclarationAlgorithme + retourEva ANSERMIN & Romuald GRIGNON36

page 36

Page 37 : Appel et retour d’une fonctionFONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, b : RÉELDÉBUTa ← 4 b ← carreaécrirea + “2 = ” + resFINZone des fonctionsProgramme principalEva ANSERMIN & Romuald GRIGNON37

page 37

Page 38 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, b : RÉELDÉBUTa ← 4 b ← carreaécrirea + “2 = ” + resFINUn algorithme s’exécute toujours en commençant par le programme principal.Le code des fonctions sera exécuté si les fonctions sont appelées.Appel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON38

page 38

Page 39 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarre VARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + resFINAppel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON39

page 39

Page 40 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + resFINAppel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON40

page 40

Page 41 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + resFINAppel et retour d’une fonctionL’ appel d’une fonction provoque l’arrêt du programme/fonction appelante et l’exécution du code de la fonction avec les paramètres.Les paramètres de la fonction vont prendre les valeurs indiquées lors de cet appel. Eva ANSERMIN & Romuald GRIGNON41

page 41

Page 42 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + res FINOn appelle la fonctioncarré avec nb=4 Appel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON42

page 42

Page 43 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + res FINAppel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON43

page 43

Page 44 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carreaécrirea + “2 = ” + res FINOn retourne le resultat : carrea va etreremplacé par cette valeur retournée .Appel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON44

page 44

Page 45 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carrea // res- 16écrirea + “2 = ” + res FINAppel et retour d’une fonctionOn reprend le programme normalementaprès l’appel de la fonctionEva ANSERMIN & Romuald GRIGNON45

page 45

Page 46 : FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉELDÉBUTres ← nb nb RETOURNER resFINPROGRAMME testCarreVARIABLEa, res : RÉELDÉBUTa ← 4res ← carrea // res- 16écrirea + “2 = ” + res FINAppel et retour d’une fonctionEva ANSERMIN & Romuald GRIGNON46

page 46

Page 47 : Variables et fonctions Le programme principal peut être considéré comme la fonction qui s’exécute en premier dans l’algorithme. Les variables déclarées dans une fonction ne sont accessibles que dans celle-ci; on dit qu’elles sont locales. Lorsqu’on sort de la fonction, ces variables ne sont plus utilisables.Les seuls moyens de transmettre des données entre les différentes fonctions / programme principal sont donc :Les paramètres : pour donner des informations à la fonction appelée.L’instruction RETOURNER : pour transmettre le résultat de la fonction une seule valeur.Eva ANSERMIN & Romuald GRIGNON47

page 47

Page 48 : RETOURNERLe mot clef RETOURNER permet de transmettre une unique valeur au reste du programme : on ne retourne qu’une variable ! L’instruction RETOURNER provoque un arrêt de la fonction et un retour à l’instruction appelante : toute les instructions qui suivent RETOURNER ne s’exécuteront jamais !Le type de retour doit être cohérent avec ce qui est retourné.FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatECRIRE « Instruction inutile ! »FINEva ANSERMIN & Romuald GRIGNON48

page 48

Page 49 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINZone des fonctionsProgramme principalEva ANSERMIN & Romuald GRIGNON49

page 49

Page 50 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbresVariables programme principal: Eva ANSERMIN & Romuald GRIGNON50

page 50

Page 51 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3Variables programme principal: Eva ANSERMIN & Romuald GRIGNON51

page 51

Page 52 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3Variables fct cube: nbres3‘cube3’Variables programme principal: Eva ANSERMIN & Romuald GRIGNON52

page 52

Page 53 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3Variables fct cube: nbres3‘cube3’Variables programme principal: Eva ANSERMIN & Romuald GRIGNON53

page 53

Page 54 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3‘3 carre3’Variables fct cube: nbres3‘cube3’Variables programme principal: nbres3Variables fct carre: Eva ANSERMIN & Romuald GRIGNON54

page 54

Page 55 : Exemple d’execution:nbres3‘3 carre3’Variables fct cube: nbres3‘cube3’Variables programme principal: nbres3Variables fct carre: FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINEva ANSERMIN & Romuald GRIGNON55

page 55

Page 56 : Exemple d’execution:nbres3‘3 carre3’Variables fct cube: nbres3‘cube3’Variables programme principal: nbres39Variables fct carre: FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINEva ANSERMIN & Romuald GRIGNON56

page 56

Page 57 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3‘3 carre3’Variables fct cube: nbres3‘cube3’Variables programme principal: nbres39Variables fct carre: Eva ANSERMIN & Romuald GRIGNON57

page 57

Page 58 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3‘3 9’Variables fct cube: nbres3‘cube3’Variables programme principal: Eva ANSERMIN & Romuald GRIGNON58

page 58

Page 59 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres327Variables fct cube: nbres3‘cube3’Variables programme principal: Eva ANSERMIN & Romuald GRIGNON59

page 59

Page 60 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3‘cube3’Variables programme principal: nbres327Variables fct cube: Eva ANSERMIN & Romuald GRIGNON60

page 60

Page 61 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres3‘27’Variables programme principal: Eva ANSERMIN & Romuald GRIGNON61

page 61

Page 62 : Exemple d’execution:FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINnbres327Variables programme principal: Eva ANSERMIN & Romuald GRIGNON62

page 62

Page 63 : Exemple d’execution:27FONCTION carrenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb nb RETOURNER res // on retourne le résultatFINFONCTION cubenb : RÉEL : RÉELVARIABLEres : RÉEL // on déclare une variable résultatDÉBUTres ← nb carrenb RETOURNER res // on retourne le résultatFINPROGRAMME testCubeVARIABLEnb, res : RÉELDÉBUTnb ← 3res ← cubenbécrireresFINEva ANSERMIN & Romuald GRIGNON63

page 63

Page 64 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINEva ANSERMIN & Romuald GRIGNON64

page 64

Page 65 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxyVariables programme principal: Eva ANSERMIN & Romuald GRIGNON65

page 65

Page 66 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy10Variables programme principal: Eva ANSERMIN & Romuald GRIGNON66

page 66

Page 67 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: Eva ANSERMIN & Romuald GRIGNON67

page 67

Page 68 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres1510Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON68

page 68

Page 69 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres1510Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON69

page 69

Page 70 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres15105Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON70

page 70

Page 71 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x // retour = 5ECRIRE soustractionx, y FINxy1015Variables programme principal: Eva ANSERMIN & Romuald GRIGNON71

page 71

Page 72 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: 5Eva ANSERMIN & Romuald GRIGNON72

page 72

Page 73 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres1015Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON73

page 73

Page 74 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres1015Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON74

page 74

Page 75 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINxy1015Variables programme principal: abres1015-5Variables fct soustraction: Eva ANSERMIN & Romuald GRIGNON75

page 75

Page 76 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y // retour = -5FINxy1015Variables programme principal: Eva ANSERMIN & Romuald GRIGNON76

page 76

Page 77 : Fonction à plusieurs paramètres :FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FIN5-5Eva ANSERMIN & Romuald GRIGNON77

page 77

Page 78 : Fonction à plusieurs paramètres :C’est l’ordre des paramètres qui importe !!!FONCTION soustractiona,b : RÉEL : RÉELVARIABLEres : réelDÉBUTres ← a - bRETOURNER resFINPROGRAMME TESTVARIABLE x,y : reelDEBUTx ← 10y ← 15ECRIRE soustractiony, x ECRIRE soustractionx, y FINEva ANSERMIN & Romuald GRIGNON78

page 78

Page 79 : III. Les procéduresEva ANSERMIN & Romuald GRIGNON79

page 79

Page 80 : Procédure●Une procédure est un ensemble d’instructions prenant en entrée des paramètres et qui ne retourne rien.●Elles sont souvent utilisées pour réaliser des affichages ou réaliser des traitements sans effets de bord.●Exemple simple :●Une procédure peut avoir des paramètres d’entrée : elle n’a juste pas d’instructionRETOURNER et s’arrête au mot clef FIN.PROCEDURE salutationnom : chaîneDÉBUTECRIRE“Bonjour”+nom+”!”FINEva ANSERMIN & Romuald GRIGNON80

page 80

Page 81 : PROCEDURE affMenu // quand il n’a pas de paramètre, écrire DÉBUTECRIRE" -- MENU --"ECRIRE"1 : Faire ceci"ECRIRE"2 : Faire cela"ECRIRE"3 : Configuration"ECRIRE"0 : Quitter"ECRIRE"Faites votre choix"FINPROGRAMME ContinuerVARIABLESchoix : entierDÉBUTFAIRE // pourquoi cette boucle ? affMenulirechoixTANT QUE choix 0 ou choix 3SELON choix :CAS 1: ...CAS 2: ...CAS 3: ...CAS 0: ...FIN SELONFINUn exemple complet-- MENU --1 : Faire ceci2 : Faire cela3 : Configuration0 : QuitterFaites votre choixEva ANSERMIN & Romuald GRIGNON81

page 81

Page 82 : Et notre exemple de depart ? PROGRAMME sondageVARIABLESrep1, rep2, rep3 : entierDÉBUTFAIREECRIRE“Vous préférez: 1: les chats? 2: les chiens?”LIRErep1TANT QUErep11 ET rep12FAIREECRIRE“Vous préférez: 1: les pâtes? 2: le riz?”LIRErep2TANT QUErep21 ET rep22FAIREECRIRE“Vous préférez: 1: Pikachu? 2: Salamèche?”LIRErep3TANT QUErep31 ET rep32……FINEva ANSERMIN & Romuald GRIGNON82

page 82

Page 83 : Et notre exemple de depart ? FONCTION askq : chaine:entierVARIABLE rep :entierREPETERECRIREqLIRErepTANT QUErep1 ET rep2RETOURNER repPROGRAMME sondageVARIABLESrep1, rep2, rep3 : entierDÉBUTRep1 - ask« Vous préférez: 1: les chats? 2: les chiens? »Rep2 - ask« Vous préférez: 1: les pâtes? 2: le riz?»Rep3 - ask« Vous préférez: 1: Pikachu? 2: Salameche?» ……FINEva ANSERMIN & Romuald GRIGNON83

page 83

Page 84 : III. Langage CEva ANSERMIN & Romuald GRIGNON84

page 84

Page 85 : Procéduresvoid proc1int a, float b instructionsProcédure proc1a: entier, b: réel instructionsEva ANSERMIN & Romuald GRIGNON85

page 85

Page 86 : ●Utilisation du mot clé void●Syntaxe : void nomProcparamètres instructions ;Procéduresvoid afficherint n int i ;for i=1; i=n; i++ printf"d", i ;Eva ANSERMIN & Romuald GRIGNON86

page 86

Page 87 : FonctionsFonction mafunctiona: entier, b:réel: entierDEBUT… RETOURNER …FINint mafonctionint a, float b …return … ;Eva ANSERMIN & Romuald GRIGNON87

page 87

Page 88 : ●Syntaxe :typeRetourné nomFonctionparamètres …return…Fonctionsint factorielleint n int f = 1 ;int i ;for i=1; i=n; i++ f = f i;return f ;Eva ANSERMIN & Romuald GRIGNON88

page 88

Page 89 : La fonction mainvoid main… int main…return 0 ;Mode fonction :Mode procédure:●En C le programme principal est vu comme une fonction/procédure. C’est une fonction qui s’appelle main. Elle peut même avoir des paramètres !●C’est cette fonction qui sera parcourue lors de l’exécution du programme.Eva ANSERMIN & Romuald GRIGNON89

page 89

Page 90 : ●Le compilateur C lit les fichiers source de haut en bas. Il constatera donc une erreur si une fonction/procédure est déclarée APRÈS sa première utilisation. L’exemple suivant provoque une erreur de compilation.Prototypageinclude stdio.hint main printf"d", toto3 ;return 0 ;int toto int n return 2 n ;Eva ANSERMIN & Romuald GRIGNON90

page 90

Page 91 : ●Solution : déclarer les fonctions dans le bon ordre.Prototypageint toto int n return 2 n ;int main printf"d",toto3 ;return 0 ;Eva ANSERMIN & Romuald GRIGNON91

page 91

Page 92 : Quelques fonctions utiles●Les bibliothèques sont des recueils de fonctions déjà écrites que vous pouvezutiliser une fois la bonne bibliothèque incluse avec define●Fonctions mathématiques dans math.h : ○sqrtfloat a : racine carrée de a○powint a, int b : a puissance b○cosfloat a, sinfloat a, tanfloat a○…●Autres : ○rand : génère un entier aléatoire stdlib.h○printf… affiche des caractères à l’écran stdio.h○scanf… permet de saisir des valeurs au clavier stdio.h○…•Le site koor.fr fourni une liste et des exemples d’utilisation des fonctions existantes en C.Eva ANSERMIN & Romuald GRIGNON92

page 92

Page 93 : Structure générale d’un fichier .c Instructions du préprocesseur inclusion bibliothèqueCode de la fonction 1Code de la fonction 2….Code de la fonction mainEva ANSERMIN & Romuald GRIGNON93

page 93

Page 94 : Pour conclure...Objectifs de concision, clarté, indépendance et réutilisabilité.Une fonction = une fonctionnalité ; une fonction ne doit pas faire plus d’une vingtaine de lignes !Pensez à respecter les préconditions / à appeler correctement vos fonctionsnombres de paramètres, ordre, types, etc….Eva ANSERMIN & Romuald GRIGNON94

page 94

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94

Le contenu de cet article est la propriété exclusive de son auteur.