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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 29 : I. Principe des fonctionsEva ANSERMIN & Romuald GRIGNON29
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 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 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 33 : II. Utilisation des fonctionsEva ANSERMIN & Romuald GRIGNON33
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 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 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 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 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 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 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 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 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 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 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 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 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 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 48 : RETOURNERLe 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 79 : III. Les procéduresEva ANSERMIN & Romuald GRIGNON79
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 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 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 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 84 : III. Langage CEva ANSERMIN & Romuald GRIGNON84
Page 85 : Procéduresvoid proc1int a, float b instructionsProcédure proc1a: entier, b: réel instructionsEva ANSERMIN & Romuald GRIGNON85
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 87 : FonctionsFonction mafunctiona: entier, b:réel: entierDEBUT… RETOURNER …FINint mafonctionint a, float b …return … ;Eva ANSERMIN & Romuald GRIGNON87
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 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 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 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 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 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 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
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