[{"data":1,"prerenderedAt":3305},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions":585,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions__counterpart":2149,"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions__slides":2429,"annexes-memo:\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions":2784,"annexes-slides:\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions":3000},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",{"id":586,"title":395,"bo":587,"body":589,"description":2134,"eval":2135,"extension":2136,"labo":2135,"meta":2137,"navigation":774,"path":396,"quizzes":2138,"readingTime":661,"seo":2147,"stem":397,"tp":2135,"__hash__":2148},"cours\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions.md",[588],"PG01",{"type":590,"value":591,"toc":2123},"minimark",[592,597,617,624,628,648,688,691,722,729,733,746,852,876,913,945,949,955,1096,1112,1242,1245,1253,1311,1315,1318,1350,1494,1497,1780,1795,1799,1805,1869,1879,1918,1922,1932,2014,2017,2040,2044,2102,2106,2119],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,613,614],"p",{},"Quand un même calcul revient à plusieurs endroits d'un programme, le\ncopier-coller n'est pas la bonne solution : la moindre correction devient\nfastidieuse, et le code devient illisible. La ",[602,603,604],"strong",{},"fonction"," est la réponse —\non ",[602,607,608],{},"nomme"," un bloc de code et on l'",[602,611,612],{},"appelle"," chaque fois qu'on en a\nbesoin. ",[615,616],"bo-ref",{"code":588},[598,618,619,620,623],{},"Une fonction est aussi un ",[602,621,622],{},"outil de pensée"," : elle donne un nom à une idée,\nisole un calcul de son contexte, et permet de raisonner sur des morceaux\nindépendamment du reste. C'est l'un des piliers de la structuration des\nprogrammes.",[593,625,627],{"id":626},"définir-une-fonction","Définir une fonction",[598,629,630,631,635,636,639,640,643,644,647],{},"En Python, la définition d'une fonction se fait avec le mot-clé ",[632,633,634],"code",{},"def",", suivi\ndu nom de la fonction, de la ",[602,637,638],{},"liste de ses paramètres"," entre parenthèses,\npuis d'un ",[632,641,642],{},":"," qui ouvre le bloc indenté du ",[602,645,646],{},"corps"," de la fonction.",[649,650,655],"pre",{"className":651,"code":652,"language":653,"meta":654,"style":654},"language-python shiki shiki-themes github-light github-light github-dark","def carre(n):\n    return n * n\n","python","",[632,656,657,673],{"__ignoreMap":654},[658,659,662,665,669],"span",{"class":660,"line":661},"line",1,[658,663,634],{"class":664},"s8jYJ",[658,666,668],{"class":667},"snPdu"," carre",[658,670,672],{"class":671},"sxrX7","(n):\n",[658,674,676,679,682,685],{"class":660,"line":675},2,[658,677,678],{"class":664},"    return",[658,680,681],{"class":671}," n ",[658,683,684],{"class":664},"*",[658,686,687],{"class":671}," n\n",[598,689,690],{},"Cette fonction :",[692,693,694,702,712],"ul",{},[695,696,697,698,701],"li",{},"s'appelle ",[632,699,700],{},"carre",",",[695,703,704,705,708,709,701],{},"attend ",[602,706,707],{},"un paramètre"," nommé ",[632,710,711],{},"n",[695,713,714,717,718,721],{},[602,715,716],{},"retourne"," la valeur ",[632,719,720],{},"n * n",".",[598,723,724,725,728],{},"Le mot-clé ",[632,726,727],{},"return"," termine immédiatement la fonction et renvoie la valeur\nindiquée à l'endroit où la fonction a été appelée.",[593,730,732],{"id":731},"appeler-une-fonction","Appeler une fonction",[598,734,735,738,739,742,743,721],{},[602,736,737],{},"Définir"," une fonction ne l'exécute pas — il faut ensuite l'",[602,740,741],{},"appeler"," en\nlui passant des ",[602,744,745],{},"arguments",[649,747,749],{"className":651,"code":748,"language":653,"meta":654,"style":654},"def carre(n):\n    return n * n\n\nresultat = carre(5)\nprint(resultat)         # 25\nprint(carre(7))         # 49\nprint(carre(2) + carre(3))  # 4 + 9 = 13\n",[632,750,751,759,769,776,795,808,825],{"__ignoreMap":654},[658,752,753,755,757],{"class":660,"line":661},[658,754,634],{"class":664},[658,756,668],{"class":667},[658,758,672],{"class":671},[658,760,761,763,765,767],{"class":660,"line":675},[658,762,678],{"class":664},[658,764,681],{"class":671},[658,766,684],{"class":664},[658,768,687],{"class":671},[658,770,772],{"class":660,"line":771},3,[658,773,775],{"emptyLinePlaceholder":774},true,"\n",[658,777,779,782,785,788,792],{"class":660,"line":778},4,[658,780,781],{"class":671},"resultat ",[658,783,784],{"class":664},"=",[658,786,787],{"class":671}," carre(",[658,789,791],{"class":790},"sBjJW","5",[658,793,794],{"class":671},")\n",[658,796,798,801,804],{"class":660,"line":797},5,[658,799,800],{"class":790},"print",[658,802,803],{"class":671},"(resultat)         ",[658,805,807],{"class":806},"sCsY4","# 25\n",[658,809,811,813,816,819,822],{"class":660,"line":810},6,[658,812,800],{"class":790},[658,814,815],{"class":671},"(carre(",[658,817,818],{"class":790},"7",[658,820,821],{"class":671},"))         ",[658,823,824],{"class":806},"# 49\n",[658,826,828,830,832,835,838,841,843,846,849],{"class":660,"line":827},7,[658,829,800],{"class":790},[658,831,815],{"class":671},[658,833,834],{"class":790},"2",[658,836,837],{"class":671},") ",[658,839,840],{"class":664},"+",[658,842,787],{"class":671},[658,844,845],{"class":790},"3",[658,847,848],{"class":671},"))  ",[658,850,851],{"class":806},"# 4 + 9 = 13\n",[598,853,854,855,858,859,861,862,864,865,868,869,872,873,721],{},"À l'appel ",[632,856,857],{},"carre(5)",", le paramètre ",[632,860,711],{}," prend la valeur ",[632,863,791],{}," le temps de\nl'exécution du corps de la fonction. Le ",[632,866,867],{},"return n * n"," renvoie alors ",[632,870,871],{},"25",",\nqui est stocké dans la variable ",[632,874,875],{},"resultat",[877,878,879,885,910],"note",{},[598,880,881,884],{},[602,882,883],{},"Vocabulaire à fixer"," :",[692,886,887,900],{},[695,888,889,892,893,895,896,899],{},[602,890,891],{},"Paramètre"," : nom déclaré dans la définition (",[632,894,711],{}," dans ",[632,897,898],{},"def carre(n)",").",[695,901,902,905,906,895,908,899],{},[602,903,904],{},"Argument"," : valeur passée à l'appel (",[632,907,791],{},[632,909,857],{},[598,911,912],{},"L'argument est ce qu'on donne ; le paramètre est le nom qu'on utilise à\nl'intérieur de la fonction.",[914,915,918,932],"self-eval-qcm",{"correct":916,"slug":917},"1","fonctions-c1",[919,920,921],"template",{"v-slot:question":654},[598,922,923,924,927,928,931],{},"Dans ",[632,925,926],{},"def aire(rayon): return 3.14 * rayon * rayon",", comment s'appelle ",[632,929,930],{},"rayon"," ?",[919,933,934],{"v-slot:choices":654},[692,935,936,939,942],{},[695,937,938],{},"Un argument",[695,940,941],{},"Un paramètre",[695,943,944],{},"Une valeur de retour",[593,946,948],{"id":947},"plusieurs-paramètres-valeur-de-retour","Plusieurs paramètres, valeur de retour",[598,950,951,952,721],{},"Une fonction peut avoir ",[602,953,954],{},"zéro, un ou plusieurs paramètres",[649,956,958],{"className":651,"code":957,"language":653,"meta":654,"style":654},"def somme(a, b):\n    return a + b\n\ndef saluer(prenom):\n    return \"Bonjour \" + prenom\n\ndef afficher_separateur():\n    print(\"-\" * 20)\n\nprint(somme(3, 4))         # 7\nprint(saluer(\"Ada\"))       # Bonjour Ada\nafficher_separateur()      # --------------------\n",[632,959,960,970,982,986,996,1010,1014,1024,1044,1049,1070,1087],{"__ignoreMap":654},[658,961,962,964,967],{"class":660,"line":661},[658,963,634],{"class":664},[658,965,966],{"class":667}," somme",[658,968,969],{"class":671},"(a, b):\n",[658,971,972,974,977,979],{"class":660,"line":675},[658,973,678],{"class":664},[658,975,976],{"class":671}," a ",[658,978,840],{"class":664},[658,980,981],{"class":671}," b\n",[658,983,984],{"class":660,"line":771},[658,985,775],{"emptyLinePlaceholder":774},[658,987,988,990,993],{"class":660,"line":778},[658,989,634],{"class":664},[658,991,992],{"class":667}," saluer",[658,994,995],{"class":671},"(prenom):\n",[658,997,998,1000,1004,1007],{"class":660,"line":797},[658,999,678],{"class":664},[658,1001,1003],{"class":1002},"sIIMD"," \"Bonjour \"",[658,1005,1006],{"class":664}," +",[658,1008,1009],{"class":671}," prenom\n",[658,1011,1012],{"class":660,"line":810},[658,1013,775],{"emptyLinePlaceholder":774},[658,1015,1016,1018,1021],{"class":660,"line":827},[658,1017,634],{"class":664},[658,1019,1020],{"class":667}," afficher_separateur",[658,1022,1023],{"class":671},"():\n",[658,1025,1027,1030,1033,1036,1039,1042],{"class":660,"line":1026},8,[658,1028,1029],{"class":790},"    print",[658,1031,1032],{"class":671},"(",[658,1034,1035],{"class":1002},"\"-\"",[658,1037,1038],{"class":664}," *",[658,1040,1041],{"class":790}," 20",[658,1043,794],{"class":671},[658,1045,1047],{"class":660,"line":1046},9,[658,1048,775],{"emptyLinePlaceholder":774},[658,1050,1052,1054,1057,1059,1062,1065,1067],{"class":660,"line":1051},10,[658,1053,800],{"class":790},[658,1055,1056],{"class":671},"(somme(",[658,1058,845],{"class":790},[658,1060,1061],{"class":671},", ",[658,1063,1064],{"class":790},"4",[658,1066,821],{"class":671},[658,1068,1069],{"class":806},"# 7\n",[658,1071,1073,1075,1078,1081,1084],{"class":660,"line":1072},11,[658,1074,800],{"class":790},[658,1076,1077],{"class":671},"(saluer(",[658,1079,1080],{"class":1002},"\"Ada\"",[658,1082,1083],{"class":671},"))       ",[658,1085,1086],{"class":806},"# Bonjour Ada\n",[658,1088,1090,1093],{"class":660,"line":1089},12,[658,1091,1092],{"class":671},"afficher_separateur()      ",[658,1094,1095],{"class":806},"# --------------------\n",[598,1097,1098,1101,1102,1105,1106,1108,1109,721],{},[632,1099,1100],{},"afficher_separateur"," ",[602,1103,1104],{},"ne retourne rien d'utile"," : elle a un effet de bord\n(elle affiche) mais pas de valeur de retour explicite. En Python, une\nfonction sans ",[632,1107,727],{}," renvoie automatiquement la valeur spéciale ",[632,1110,1111],{},"None",[1113,1114,1115],"python-snippet",{},[649,1116,1118],{"className":651,"code":1117,"language":653,"meta":654,"style":654},"def somme(a, b):\n    return a + b\n\ndef maximum(a, b):\n    if a > b:\n        return a\n    return b\n\nprint(\"Somme   :\", somme(3, 4))\nprint(\"Maximum :\", maximum(7, 2))\nprint(\"Maximum :\", maximum(2, 9))\n",[632,1119,1120,1128,1138,1142,1151,1164,1172,1178,1182,1203,1223],{"__ignoreMap":654},[658,1121,1122,1124,1126],{"class":660,"line":661},[658,1123,634],{"class":664},[658,1125,966],{"class":667},[658,1127,969],{"class":671},[658,1129,1130,1132,1134,1136],{"class":660,"line":675},[658,1131,678],{"class":664},[658,1133,976],{"class":671},[658,1135,840],{"class":664},[658,1137,981],{"class":671},[658,1139,1140],{"class":660,"line":771},[658,1141,775],{"emptyLinePlaceholder":774},[658,1143,1144,1146,1149],{"class":660,"line":778},[658,1145,634],{"class":664},[658,1147,1148],{"class":667}," maximum",[658,1150,969],{"class":671},[658,1152,1153,1156,1158,1161],{"class":660,"line":797},[658,1154,1155],{"class":664},"    if",[658,1157,976],{"class":671},[658,1159,1160],{"class":664},">",[658,1162,1163],{"class":671}," b:\n",[658,1165,1166,1169],{"class":660,"line":810},[658,1167,1168],{"class":664},"        return",[658,1170,1171],{"class":671}," a\n",[658,1173,1174,1176],{"class":660,"line":827},[658,1175,678],{"class":664},[658,1177,981],{"class":671},[658,1179,1180],{"class":660,"line":1026},[658,1181,775],{"emptyLinePlaceholder":774},[658,1183,1184,1186,1188,1191,1194,1196,1198,1200],{"class":660,"line":1046},[658,1185,800],{"class":790},[658,1187,1032],{"class":671},[658,1189,1190],{"class":1002},"\"Somme   :\"",[658,1192,1193],{"class":671},", somme(",[658,1195,845],{"class":790},[658,1197,1061],{"class":671},[658,1199,1064],{"class":790},[658,1201,1202],{"class":671},"))\n",[658,1204,1205,1207,1209,1212,1215,1217,1219,1221],{"class":660,"line":1051},[658,1206,800],{"class":790},[658,1208,1032],{"class":671},[658,1210,1211],{"class":1002},"\"Maximum :\"",[658,1213,1214],{"class":671},", maximum(",[658,1216,818],{"class":790},[658,1218,1061],{"class":671},[658,1220,834],{"class":790},[658,1222,1202],{"class":671},[658,1224,1225,1227,1229,1231,1233,1235,1237,1240],{"class":660,"line":1072},[658,1226,800],{"class":790},[658,1228,1032],{"class":671},[658,1230,1211],{"class":1002},[658,1232,1214],{"class":671},[658,1234,834],{"class":790},[658,1236,1061],{"class":671},[658,1238,1239],{"class":790},"9",[658,1241,1202],{"class":671},[598,1243,1244],{},"Sortie attendue :",[649,1246,1251],{"className":1247,"code":1249,"language":1250},[1248],"language-text","Somme   : 7\nMaximum : 7\nMaximum : 9\n","text",[632,1252,1249],{"__ignoreMap":654},[1254,1255,1256,1272],"tip",{},[598,1257,1258,1259,1261,1262,1265,1266,1269,1270,884],{},"Quand un ",[632,1260,727],{}," est exécuté, ",[602,1263,1264],{},"la fonction s'arrête immédiatement",".\nInutile d'écrire un ",[632,1267,1268],{},"else"," après un ",[632,1271,727],{},[649,1273,1275],{"className":651,"code":1274,"language":653,"meta":654,"style":654},"def maximum(a, b):\n    if a > b:\n        return a\n    return b   # exécuté uniquement si a \u003C= b\n",[632,1276,1277,1285,1295,1301],{"__ignoreMap":654},[658,1278,1279,1281,1283],{"class":660,"line":661},[658,1280,634],{"class":664},[658,1282,1148],{"class":667},[658,1284,969],{"class":671},[658,1286,1287,1289,1291,1293],{"class":660,"line":675},[658,1288,1155],{"class":664},[658,1290,976],{"class":671},[658,1292,1160],{"class":664},[658,1294,1163],{"class":671},[658,1296,1297,1299],{"class":660,"line":771},[658,1298,1168],{"class":664},[658,1300,1171],{"class":671},[658,1302,1303,1305,1308],{"class":660,"line":778},[658,1304,678],{"class":664},[658,1306,1307],{"class":671}," b   ",[658,1309,1310],{"class":806},"# exécuté uniquement si a \u003C= b\n",[593,1312,1314],{"id":1313},"pourquoi-écrire-des-fonctions","Pourquoi écrire des fonctions ?",[598,1316,1317],{},"Trois bénéfices majeurs :",[1319,1320,1321,1327,1344],"ol",{},[695,1322,1323,1326],{},[602,1324,1325],{},"Réutiliser"," : écrire une fois, appeler partout.",[695,1328,1329,1332,1333,1061,1336,1339,1340,1343],{},[602,1330,1331],{},"Nommer"," : donner un nom au calcul (",[632,1334,1335],{},"distance",[632,1337,1338],{},"est_premier",",\n",[632,1341,1342],{},"convertir_en_celsius","…) rend le code parlant.",[695,1345,1346,1349],{},[602,1347,1348],{},"Isoler"," : ce qui se passe à l'intérieur de la fonction ne pollue pas\nl'extérieur. On peut tester la fonction seule.",[877,1351,1352],{},[598,1353,1354,1360,1361,1364,1365,1368,1369,1372,1373,1376,1377,721],{},[602,1355,1356,1359],{},[632,1357,1358],{},"import math"," en avant-première."," Le mot-clé ",[632,1362,1363],{},"import"," (utiliser une\nbibliothèque) sera détaillé au ",[602,1366,1367],{},"cours 6 de ce chapitre",". Ici, retenez\nseulement que ",[632,1370,1371],{},"math"," est une bibliothèque standard et que ",[632,1374,1375],{},"math.sqrt(x)","\ncalcule ",[658,1378,1381,1406],{"className":1379},[1380],"katex",[658,1382,1385],{"className":1383},[1384],"katex-mathml",[1371,1386,1388],{"xmlns":1387},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[1389,1390,1391,1401],"semantics",{},[1392,1393,1394],"mrow",{},[1395,1396,1397],"msqrt",{},[1398,1399,1400],"mi",{},"x",[1402,1403,1405],"annotation",{"encoding":1404},"application\u002Fx-tex","\\sqrt{x}",[658,1407,1411],{"className":1408,"ariaHidden":1410},[1409],"katex-html","true",[658,1412,1415,1420],{"className":1413},[1414],"base",[658,1416],{"className":1417,"style":1419},[1418],"strut","height:1.04em;vertical-align:-0.2397em;",[658,1421,1425],{"className":1422},[1423,1424],"mord","sqrt",[658,1426,1430,1485],{"className":1427},[1428,1429],"vlist-t","vlist-t2",[658,1431,1434,1480],{"className":1432},[1433],"vlist-r",[658,1435,1439,1457],{"className":1436,"style":1438},[1437],"vlist","height:0.8003em;",[658,1440,1444,1449],{"className":1441,"style":1443},[1442],"svg-align","top:-3em;",[658,1445],{"className":1446,"style":1448},[1447],"pstrut","height:3em;",[658,1450,1453],{"className":1451,"style":1452},[1423],"padding-left:0.833em;",[658,1454,1400],{"className":1455},[1423,1456],"mathnormal",[658,1458,1460,1463],{"style":1459},"top:-2.7603em;",[658,1461],{"className":1462,"style":1448},[1447],[658,1464,1468],{"className":1465,"style":1467},[1466],"hide-tail","min-width:0.853em;height:1.08em;",[1469,1470,1476],"svg",{"xmlns":1471,"width":1472,"height":1473,"viewBox":1474,"preserveAspectRatio":1475},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","400em","1.08em","0 0 400000 1080","xMinYMin slice",[1477,1478],"path",{"d":1479},"M95,702\nc-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,-10,-9.5,-14\nc0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54\nc44.2,-33.3,65.8,-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10\ns173,378,173,378c0.7,0,35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429\nc69,-144,104.5,-217.7,106.5,-221\nl0 -0\nc5.3,-9.3,12,-14,20,-14\nH400000v40H845.2724\ns-225.272,467,-225.272,467s-235,486,-235,486c-2.7,4.7,-9,7,-19,7\nc-6,0,-10,-1,-12,-3s-194,-422,-194,-422s-65,47,-65,47z\nM834 80h400000v40h-400000z",[658,1481,1484],{"className":1482},[1483],"vlist-s","​",[658,1486,1488],{"className":1487},[1433],[658,1489,1492],{"className":1490,"style":1491},[1437],"height:0.2397em;",[658,1493],{},[598,1495,1496],{},"Comparez :",[1498,1499,1500,1665],"code-group",{},[649,1501,1504],{"className":651,"code":1502,"filename":1503,"language":653,"meta":654,"style":654},"# Calculer plusieurs distances entre points 2D\nimport math\nx1, y1 = 0, 0\nx2, y2 = 3, 4\nd1 = math.sqrt((x2-x1)**2 + (y2-y1)**2)\n\nx3, y3 = 1, 1\nx4, y4 = 4, 5\nd2 = math.sqrt((x4-x3)**2 + (y4-y3)**2)\n\nprint(d1, d2)\n","sans-fonction.py",[632,1505,1506,1511,1518,1533,1548,1585,1589,1604,1619,1654,1658],{"__ignoreMap":654},[658,1507,1508],{"class":660,"line":661},[658,1509,1510],{"class":806},"# Calculer plusieurs distances entre points 2D\n",[658,1512,1513,1515],{"class":660,"line":675},[658,1514,1363],{"class":664},[658,1516,1517],{"class":671}," math\n",[658,1519,1520,1523,1525,1528,1530],{"class":660,"line":771},[658,1521,1522],{"class":671},"x1, y1 ",[658,1524,784],{"class":664},[658,1526,1527],{"class":790}," 0",[658,1529,1061],{"class":671},[658,1531,1532],{"class":790},"0\n",[658,1534,1535,1538,1540,1543,1545],{"class":660,"line":778},[658,1536,1537],{"class":671},"x2, y2 ",[658,1539,784],{"class":664},[658,1541,1542],{"class":790}," 3",[658,1544,1061],{"class":671},[658,1546,1547],{"class":790},"4\n",[658,1549,1550,1553,1555,1558,1561,1564,1567,1569,1571,1574,1576,1579,1581,1583],{"class":660,"line":797},[658,1551,1552],{"class":671},"d1 ",[658,1554,784],{"class":664},[658,1556,1557],{"class":671}," math.sqrt((x2",[658,1559,1560],{"class":664},"-",[658,1562,1563],{"class":671},"x1)",[658,1565,1566],{"class":664},"**",[658,1568,834],{"class":790},[658,1570,1006],{"class":664},[658,1572,1573],{"class":671}," (y2",[658,1575,1560],{"class":664},[658,1577,1578],{"class":671},"y1)",[658,1580,1566],{"class":664},[658,1582,834],{"class":790},[658,1584,794],{"class":671},[658,1586,1587],{"class":660,"line":810},[658,1588,775],{"emptyLinePlaceholder":774},[658,1590,1591,1594,1596,1599,1601],{"class":660,"line":827},[658,1592,1593],{"class":671},"x3, y3 ",[658,1595,784],{"class":664},[658,1597,1598],{"class":790}," 1",[658,1600,1061],{"class":671},[658,1602,1603],{"class":790},"1\n",[658,1605,1606,1609,1611,1614,1616],{"class":660,"line":1026},[658,1607,1608],{"class":671},"x4, y4 ",[658,1610,784],{"class":664},[658,1612,1613],{"class":790}," 4",[658,1615,1061],{"class":671},[658,1617,1618],{"class":790},"5\n",[658,1620,1621,1624,1626,1629,1631,1634,1636,1638,1640,1643,1645,1648,1650,1652],{"class":660,"line":1046},[658,1622,1623],{"class":671},"d2 ",[658,1625,784],{"class":664},[658,1627,1628],{"class":671}," math.sqrt((x4",[658,1630,1560],{"class":664},[658,1632,1633],{"class":671},"x3)",[658,1635,1566],{"class":664},[658,1637,834],{"class":790},[658,1639,1006],{"class":664},[658,1641,1642],{"class":671}," (y4",[658,1644,1560],{"class":664},[658,1646,1647],{"class":671},"y3)",[658,1649,1566],{"class":664},[658,1651,834],{"class":790},[658,1653,794],{"class":671},[658,1655,1656],{"class":660,"line":1051},[658,1657,775],{"emptyLinePlaceholder":774},[658,1659,1660,1662],{"class":660,"line":1072},[658,1661,800],{"class":790},[658,1663,1664],{"class":671},"(d1, d2)\n",[649,1666,1669],{"className":651,"code":1667,"filename":1668,"language":653,"meta":654,"style":654},"import math\n\ndef distance(x1, y1, x2, y2):\n    return math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)\n\nprint(distance(0, 0, 3, 4))   # 5.0\nprint(distance(1, 1, 4, 5))   # 5.0\n","avec-fonction.py",[632,1670,1671,1677,1681,1691,1724,1728,1756],{"__ignoreMap":654},[658,1672,1673,1675],{"class":660,"line":661},[658,1674,1363],{"class":664},[658,1676,1517],{"class":671},[658,1678,1679],{"class":660,"line":675},[658,1680,775],{"emptyLinePlaceholder":774},[658,1682,1683,1685,1688],{"class":660,"line":771},[658,1684,634],{"class":664},[658,1686,1687],{"class":667}," distance",[658,1689,1690],{"class":671},"(x1, y1, x2, y2):\n",[658,1692,1693,1695,1698,1700,1703,1705,1708,1710,1713,1715,1718,1720,1722],{"class":660,"line":778},[658,1694,678],{"class":664},[658,1696,1697],{"class":671}," math.sqrt((x2 ",[658,1699,1560],{"class":664},[658,1701,1702],{"class":671}," x1) ",[658,1704,1566],{"class":664},[658,1706,1707],{"class":790}," 2",[658,1709,1006],{"class":664},[658,1711,1712],{"class":671}," (y2 ",[658,1714,1560],{"class":664},[658,1716,1717],{"class":671}," y1) ",[658,1719,1566],{"class":664},[658,1721,1707],{"class":790},[658,1723,794],{"class":671},[658,1725,1726],{"class":660,"line":797},[658,1727,775],{"emptyLinePlaceholder":774},[658,1729,1730,1732,1735,1738,1740,1742,1744,1746,1748,1750,1753],{"class":660,"line":810},[658,1731,800],{"class":790},[658,1733,1734],{"class":671},"(distance(",[658,1736,1737],{"class":790},"0",[658,1739,1061],{"class":671},[658,1741,1737],{"class":790},[658,1743,1061],{"class":671},[658,1745,845],{"class":790},[658,1747,1061],{"class":671},[658,1749,1064],{"class":790},[658,1751,1752],{"class":671},"))   ",[658,1754,1755],{"class":806},"# 5.0\n",[658,1757,1758,1760,1762,1764,1766,1768,1770,1772,1774,1776,1778],{"class":660,"line":827},[658,1759,800],{"class":790},[658,1761,1734],{"class":671},[658,1763,916],{"class":790},[658,1765,1061],{"class":671},[658,1767,916],{"class":790},[658,1769,1061],{"class":671},[658,1771,1064],{"class":790},[658,1773,1061],{"class":671},[658,1775,791],{"class":790},[658,1777,1752],{"class":671},[658,1779,1755],{"class":806},[598,1781,1782,1783,1786,1787,1790,1791,1794],{},"La version avec fonction est plus ",[602,1784,1785],{},"courte",", plus ",[602,1788,1789],{},"lisible",", et la formule\nest écrite ",[602,1792,1793],{},"une seule fois"," — donc moins d'occasions de se tromper.",[593,1796,1798],{"id":1797},"portée-des-variables-notion","Portée des variables (notion)",[598,1800,1801,1802,721],{},"Les variables définies à l'intérieur d'une fonction (paramètres ou variables\nlocales) ",[602,1803,1804],{},"n'existent que pendant l'exécution de la fonction",[649,1806,1808],{"className":651,"code":1807,"language":653,"meta":654,"style":654},"def double(n):\n    resultat = n * 2\n    return resultat\n\nprint(double(5))      # 10\nprint(resultat)       # NameError : resultat n'existe pas ici\n",[632,1809,1810,1819,1833,1840,1844,1859],{"__ignoreMap":654},[658,1811,1812,1814,1817],{"class":660,"line":661},[658,1813,634],{"class":664},[658,1815,1816],{"class":667}," double",[658,1818,672],{"class":671},[658,1820,1821,1824,1826,1828,1830],{"class":660,"line":675},[658,1822,1823],{"class":671},"    resultat ",[658,1825,784],{"class":664},[658,1827,681],{"class":671},[658,1829,684],{"class":664},[658,1831,1832],{"class":790}," 2\n",[658,1834,1835,1837],{"class":660,"line":771},[658,1836,678],{"class":664},[658,1838,1839],{"class":671}," resultat\n",[658,1841,1842],{"class":660,"line":778},[658,1843,775],{"emptyLinePlaceholder":774},[658,1845,1846,1848,1851,1853,1856],{"class":660,"line":797},[658,1847,800],{"class":790},[658,1849,1850],{"class":671},"(double(",[658,1852,791],{"class":790},[658,1854,1855],{"class":671},"))      ",[658,1857,1858],{"class":806},"# 10\n",[658,1860,1861,1863,1866],{"class":660,"line":810},[658,1862,800],{"class":790},[658,1864,1865],{"class":671},"(resultat)       ",[658,1867,1868],{"class":806},"# NameError : resultat n'existe pas ici\n",[598,1870,1871,1872,1875,1876,721],{},"À l'inverse, une fonction peut ",[602,1873,1874],{},"lire"," une variable définie à l'extérieur,\nmais ce n'est pas une bonne pratique — on préfère ",[602,1877,1878],{},"passer toutes les\ndonnées nécessaires en paramètres",[1880,1881,1882,1889],"warning",{},[598,1883,1884,1885,1888],{},"Évitez de modifier une variable globale à l'intérieur d'une fonction (mot-clé\n",[632,1886,1887],{},"global","). Cela rend le code imprévisible. Préférez toujours :",[649,1890,1892],{"className":651,"code":1891,"language":653,"meta":654,"style":654},"def f(x):\n    return x + 1   # transforme et retourne, sans toucher à l'extérieur\n",[632,1893,1894,1904],{"__ignoreMap":654},[658,1895,1896,1898,1901],{"class":660,"line":661},[658,1897,634],{"class":664},[658,1899,1900],{"class":667}," f",[658,1902,1903],{"class":671},"(x):\n",[658,1905,1906,1908,1911,1913,1915],{"class":660,"line":675},[658,1907,678],{"class":664},[658,1909,1910],{"class":671}," x ",[658,1912,840],{"class":664},[658,1914,1598],{"class":790},[658,1916,1917],{"class":806},"   # transforme et retourne, sans toucher à l'extérieur\n",[593,1919,1921],{"id":1920},"plusieurs-valeurs-de-retour","Plusieurs valeurs de retour",[598,1923,1924,1925,1928,1929,721],{},"Une fonction peut ",[602,1926,1927],{},"renvoyer un tuple"," (une suite figée de valeurs) pour\ntransmettre plusieurs résultats à la fois ; la notion de tuple sera étudiée\nen détail au chapitre ",[602,1930,1931],{},"PC — Types construits",[649,1933,1935],{"className":651,"code":1934,"language":653,"meta":654,"style":654},"def division_euclidienne(a, b):\n    quotient = a \u002F\u002F b\n    reste = a % b\n    return quotient, reste\n\nq, r = division_euclidienne(17, 5)\nprint(q, r)        # 3 2\n",[632,1936,1937,1946,1960,1974,1981,1985,2004],{"__ignoreMap":654},[658,1938,1939,1941,1944],{"class":660,"line":661},[658,1940,634],{"class":664},[658,1942,1943],{"class":667}," division_euclidienne",[658,1945,969],{"class":671},[658,1947,1948,1951,1953,1955,1958],{"class":660,"line":675},[658,1949,1950],{"class":671},"    quotient ",[658,1952,784],{"class":664},[658,1954,976],{"class":671},[658,1956,1957],{"class":664},"\u002F\u002F",[658,1959,981],{"class":671},[658,1961,1962,1965,1967,1969,1972],{"class":660,"line":771},[658,1963,1964],{"class":671},"    reste ",[658,1966,784],{"class":664},[658,1968,976],{"class":671},[658,1970,1971],{"class":664},"%",[658,1973,981],{"class":671},[658,1975,1976,1978],{"class":660,"line":778},[658,1977,678],{"class":664},[658,1979,1980],{"class":671}," quotient, reste\n",[658,1982,1983],{"class":660,"line":797},[658,1984,775],{"emptyLinePlaceholder":774},[658,1986,1987,1990,1992,1995,1998,2000,2002],{"class":660,"line":810},[658,1988,1989],{"class":671},"q, r ",[658,1991,784],{"class":664},[658,1993,1994],{"class":671}," division_euclidienne(",[658,1996,1997],{"class":790},"17",[658,1999,1061],{"class":671},[658,2001,791],{"class":790},[658,2003,794],{"class":671},[658,2005,2006,2008,2011],{"class":660,"line":827},[658,2007,800],{"class":790},[658,2009,2010],{"class":671},"(q, r)        ",[658,2012,2013],{"class":806},"# 3 2\n",[598,2015,2016],{},"Cette syntaxe sert souvent pour les fonctions qui renvoient un couple\nnaturel : (min, max), (succès, valeur), (quotient, reste).",[914,2018,2020,2027],{"correct":916,"slug":2019},"fonctions-c2",[919,2021,2022],{"v-slot:question":654},[598,2023,2024,2025,931],{},"Que retourne une fonction Python qui ne contient pas de ",[632,2026,727],{},[919,2028,2029],{"v-slot:choices":654},[692,2030,2031,2034,2037],{},[695,2032,2033],{},"Rien du tout",[695,2035,2036],{},"La valeur None",[695,2038,2039],{},"La dernière variable affectée",[593,2041,2043],{"id":2042},"pièges-courants","Pièges courants",[1880,2045,2046],{},[692,2047,2048,2061,2080,2096],{},[695,2049,2050,2053,2054,2057,2058,2060],{},[602,2051,2052],{},"Définir vs appeler"," : ",[632,2055,2056],{},"def carre(n): return n*n"," ne calcule rien tant\nqu'on n'écrit pas ",[632,2059,857],{}," quelque part.",[695,2062,2063,2068,2069,2071,2072,2075,2076,895,2078,721],{},[602,2064,2065,2066],{},"Oublier ",[632,2067,727],{}," : la fonction renvoie alors ",[632,2070,1111],{},", et un code du\ntype ",[632,2073,2074],{},"x = ma_fonction()"," met ",[632,2077,1111],{},[632,2079,1400],{},[695,2081,2082,2053,2090,2092,2093,2095],{},[602,2083,2084,2085,2087,2088],{},"Mélanger ",[632,2086,800],{}," et ",[632,2089,727],{},[632,2091,800],{}," affiche, ",[632,2094,727],{}," renvoie. Ce\nn'est pas la même chose. Une fonction utilitaire retourne plutôt que\nd'afficher.",[695,2097,2098,2101],{},[602,2099,2100],{},"Variables locales hors de portée"," : on ne peut pas lire à l'extérieur\nd'une fonction une variable créée à l'intérieur.",[593,2103,2105],{"id":2104},"pour-aller-plus-loin","Pour aller plus loin",[598,2107,2108,2109,2112,2113,1101,2116,721],{},"Une fonction bien écrite, c'est ",[602,2110,2111],{},"une fonction spécifiée"," : on sait ce\nqu'elle attend en entrée et ce qu'elle promet en sortie. C'est l'objet du\ncours suivant sur la ",[602,2114,2115],{},"spécification",[615,2117],{"code":2118},"PG04",[2120,2121,2122],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":654,"searchDepth":675,"depth":675,"links":2124},[2125,2126,2127,2128,2129,2130,2131,2132,2133],{"id":595,"depth":675,"text":596},{"id":626,"depth":675,"text":627},{"id":731,"depth":675,"text":732},{"id":947,"depth":675,"text":948},{"id":1313,"depth":675,"text":1314},{"id":1797,"depth":675,"text":1798},{"id":1920,"depth":675,"text":1921},{"id":2042,"depth":675,"text":2043},{"id":2104,"depth":675,"text":2105},"Définition, appel, paramètres et valeur de retour — découper un programme en blocs réutilisables.",null,"md",{},[2139,2144],{"slug":917,"kind":2140,"question":2141,"choices":2142,"correct":916,"multi":2143,"explanation":654},"qcm","Dans def aire(rayon): return 3.14 * rayon * rayon, comment s'appelle rayon ?",[938,941,944],false,{"slug":2019,"kind":2140,"question":2145,"choices":2146,"correct":916,"multi":2143,"explanation":654},"Que retourne une fonction Python qui ne contient pas de return ?",[2033,2036,2039],{"title":395,"description":2134},"1CGR5hT_d23AjLre5NvpqkpXqltj-kSXkeImDWKJ-T4",{"id":2150,"title":2151,"bo":2152,"body":2153,"description":2422,"eval":2135,"extension":2136,"labo":2135,"meta":2423,"navigation":2143,"path":2424,"quizzes":2425,"readingTime":661,"seo":2426,"stem":2427,"tp":2135,"__hash__":2428},"coursMemo\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions.memo.md","Fonctions — l'essentiel",[588],{"type":590,"value":2154,"toc":2415},[2155,2159,2173,2177,2223,2227,2283,2285,2321,2325,2412],[593,2156,2158],{"id":2157},"en-une-phrase","En une phrase",[598,2160,2161,2162,2164,2165,2168,2169,2172],{},"Une ",[602,2163,604],{}," est un bloc de code nommé, qui prend des ",[602,2166,2167],{},"paramètres"," et\npeut ",[602,2170,2171],{},"retourner"," une valeur — pour réutiliser, nommer et isoler un calcul.",[593,2174,2176],{"id":2175},"à-mémoriser","À mémoriser",[692,2178,2179,2186,2193,2201,2206,2214],{},[695,2180,2181,2182,2185],{},"Définir : ",[632,2183,2184],{},"def nom(p1, p2):"," + corps indenté.",[695,2187,2188,2189,2192],{},"Appeler : ",[632,2190,2191],{},"nom(arg1, arg2)"," à n'importe quel endroit du programme.",[695,2194,2195,2197,2198,2200],{},[602,2196,891],{}," = nom dans la définition. ",[602,2199,904],{}," = valeur à l'appel.",[695,2202,2203,2205],{},[632,2204,727],{}," termine la fonction et renvoie une valeur.",[695,2207,2208,2209,2211,2212,721],{},"Sans ",[632,2210,727],{},", la fonction renvoie ",[632,2213,1111],{},[695,2215,2216,2217,2053,2220,721],{},"Plusieurs valeurs de retour via un ",[602,2218,2219],{},"tuple",[632,2221,2222],{},"return q, r",[593,2224,2226],{"id":2225},"à-savoir-reconnaître","À savoir reconnaître",[2228,2229,2230,2243],"table",{},[2231,2232,2233],"thead",{},[2234,2235,2236,2240],"tr",{},[2237,2238,2239],"th",{},"Situation",[2237,2241,2242],{},"Action",[2244,2245,2246,2255,2265,2275],"tbody",{},[2234,2247,2248,2252],{},[2249,2250,2251],"td",{},"Même calcul utilisé plusieurs fois",[2249,2253,2254],{},"Le mettre dans une fonction",[2234,2256,2257,2260],{},[2249,2258,2259],{},"Fonction qui doit renvoyer un résultat",[2249,2261,2262,2263],{},"Utiliser ",[632,2264,727],{},[2234,2266,2267,2270],{},[2249,2268,2269],{},"Fonction qui doit juste afficher",[2249,2271,2262,2272,2274],{},[632,2273,800],{}," (effet de bord)",[2234,2276,2277,2280],{},[2249,2278,2279],{},"Variables internes à une fonction",[2249,2281,2282],{},"Elles disparaissent à la sortie",[593,2284,2043],{"id":2042},[692,2286,2287,2298,2308,2315],{},[695,2288,2289,2291,2292,2053,2294,2297],{},[602,2290,737],{}," ≠ ",[602,2293,741],{},[632,2295,2296],{},"def f(): ..."," ne s'exécute pas tout seul.",[695,2299,2300,2291,2302,2304,2305,2307],{},[632,2301,800],{},[632,2303,727],{}," — utilisez ",[632,2306,727],{}," pour transmettre une valeur.",[695,2309,2065,2310,2312,2313,721],{},[632,2311,727],{}," → la fonction renvoie ",[632,2314,1111],{},[695,2316,2317,2318,721],{},"Variable locale lue depuis l'extérieur → ",[632,2319,2320],{},"NameError",[593,2322,2324],{"id":2323},"syntaxe-python","Syntaxe Python",[649,2326,2328],{"className":651,"code":2327,"language":653,"meta":654,"style":654},"def carre(n):\n    return n * n\n\ndef division_euclidienne(a, b):\n    return a \u002F\u002F b, a % b\n\nprint(carre(5))                         # 25\nq, r = division_euclidienne(17, 5)      # 3, 2\n",[632,2329,2330,2338,2348,2352,2360,2375,2379,2392],{"__ignoreMap":654},[658,2331,2332,2334,2336],{"class":660,"line":661},[658,2333,634],{"class":664},[658,2335,668],{"class":667},[658,2337,672],{"class":671},[658,2339,2340,2342,2344,2346],{"class":660,"line":675},[658,2341,678],{"class":664},[658,2343,681],{"class":671},[658,2345,684],{"class":664},[658,2347,687],{"class":671},[658,2349,2350],{"class":660,"line":771},[658,2351,775],{"emptyLinePlaceholder":774},[658,2353,2354,2356,2358],{"class":660,"line":778},[658,2355,634],{"class":664},[658,2357,1943],{"class":667},[658,2359,969],{"class":671},[658,2361,2362,2364,2366,2368,2371,2373],{"class":660,"line":797},[658,2363,678],{"class":664},[658,2365,976],{"class":671},[658,2367,1957],{"class":664},[658,2369,2370],{"class":671}," b, a ",[658,2372,1971],{"class":664},[658,2374,981],{"class":671},[658,2376,2377],{"class":660,"line":810},[658,2378,775],{"emptyLinePlaceholder":774},[658,2380,2381,2383,2385,2387,2390],{"class":660,"line":827},[658,2382,800],{"class":790},[658,2384,815],{"class":671},[658,2386,791],{"class":790},[658,2388,2389],{"class":671},"))                         ",[658,2391,807],{"class":806},[658,2393,2394,2396,2398,2400,2402,2404,2406,2409],{"class":660,"line":1026},[658,2395,1989],{"class":671},[658,2397,784],{"class":664},[658,2399,1994],{"class":671},[658,2401,1997],{"class":790},[658,2403,1061],{"class":671},[658,2405,791],{"class":790},[658,2407,2408],{"class":671},")      ",[658,2410,2411],{"class":806},"# 3, 2\n",[2120,2413,2414],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":654,"searchDepth":675,"depth":675,"links":2416},[2417,2418,2419,2420,2421],{"id":2157,"depth":675,"text":2158},{"id":2175,"depth":675,"text":2176},{"id":2225,"depth":675,"text":2226},{"id":2042,"depth":675,"text":2043},{"id":2323,"depth":675,"text":2324},"Mémo de révision sur la définition, l'appel, paramètres et valeur de retour.",{},"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions.memo",[],{"title":2151,"description":2422},"1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions.memo","PHlN8ovyDWYeIT3zNRxDRTuCNscJN0Ti00x6rBsCcIM",{"id":2430,"title":2431,"body":2432,"description":2778,"extension":2136,"meta":2779,"navigation":2143,"path":2780,"seo":2781,"stem":2782,"__hash__":2783},"coursSlides\u002F1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions.slides.md","Fonctions — diapositives",{"type":590,"value":2433,"toc":2776},[2434,2438,2441,2444,2448,2464,2466,2470,2492,2514,2516,2520,2552,2555,2557,2561,2577,2579,2583,2626,2628,2634,2669,2676,2678,2684,2699,2701,2705,2756,2759,2761,2765,2773],[2435,2436,395],"h1",{"id":2437},"fonctions",[598,2439,2440],{},"Donner un nom à un calcul.",[2442,2443],"hr",{},[2435,2445,2447],{"id":2446},"pourquoi-des-fonctions","Pourquoi des fonctions ?",[692,2449,2450,2454,2459],{},[695,2451,2452,1326],{},[602,2453,1325],{},[695,2455,2456,2458],{},[602,2457,1331],{}," : donner du sens au code.",[695,2460,2461,2463],{},[602,2462,1348],{}," : ce qui se passe dedans reste dedans.",[2442,2465],{},[2435,2467,2469],{"id":2468},"définition","Définition",[649,2471,2472],{"className":651,"code":652,"language":653,"meta":654,"style":654},[632,2473,2474,2482],{"__ignoreMap":654},[658,2475,2476,2478,2480],{"class":660,"line":661},[658,2477,634],{"class":664},[658,2479,668],{"class":667},[658,2481,672],{"class":671},[658,2483,2484,2486,2488,2490],{"class":660,"line":675},[658,2485,678],{"class":664},[658,2487,681],{"class":671},[658,2489,684],{"class":664},[658,2491,687],{"class":671},[692,2493,2494,2499,2504,2509],{},[695,2495,2496,2498],{},[632,2497,634],{}," : mot-clé.",[695,2500,2501,2503],{},[632,2502,700],{}," : nom.",[695,2505,2506,2508],{},[632,2507,711],{}," : paramètre.",[695,2510,2511,2513],{},[632,2512,867],{}," : valeur renvoyée.",[2442,2515],{},[2435,2517,2519],{"id":2518},"appel","Appel",[649,2521,2523],{"className":651,"code":2522,"language":653,"meta":654,"style":654},"resultat = carre(5)   # 25\nprint(carre(7))       # 49\n",[632,2524,2525,2540],{"__ignoreMap":654},[658,2526,2527,2529,2531,2533,2535,2538],{"class":660,"line":661},[658,2528,781],{"class":671},[658,2530,784],{"class":664},[658,2532,787],{"class":671},[658,2534,791],{"class":790},[658,2536,2537],{"class":671},")   ",[658,2539,807],{"class":806},[658,2541,2542,2544,2546,2548,2550],{"class":660,"line":675},[658,2543,800],{"class":790},[658,2545,815],{"class":671},[658,2547,818],{"class":790},[658,2549,1083],{"class":671},[658,2551,824],{"class":806},[598,2553,2554],{},"Définir ≠ appeler.",[2442,2556],{},[2435,2558,2560],{"id":2559},"paramètre-vs-argument","Paramètre vs argument",[692,2562,2563,2570],{},[695,2564,2565,2567,2568,899],{},[602,2566,891],{}," : nom dans la définition (",[632,2569,711],{},[695,2571,2572,2574,2575,899],{},[602,2573,904],{}," : valeur à l'appel (",[632,2576,791],{},[2442,2578],{},[2435,2580,2582],{"id":2581},"plusieurs-paramètres","Plusieurs paramètres",[649,2584,2586],{"className":651,"code":2585,"language":653,"meta":654,"style":654},"def somme(a, b):\n    return a + b\n\nprint(somme(3, 4))   # 7\n",[632,2587,2588,2596,2606,2610],{"__ignoreMap":654},[658,2589,2590,2592,2594],{"class":660,"line":661},[658,2591,634],{"class":664},[658,2593,966],{"class":667},[658,2595,969],{"class":671},[658,2597,2598,2600,2602,2604],{"class":660,"line":675},[658,2599,678],{"class":664},[658,2601,976],{"class":671},[658,2603,840],{"class":664},[658,2605,981],{"class":671},[658,2607,2608],{"class":660,"line":771},[658,2609,775],{"emptyLinePlaceholder":774},[658,2611,2612,2614,2616,2618,2620,2622,2624],{"class":660,"line":778},[658,2613,800],{"class":790},[658,2615,1056],{"class":671},[658,2617,845],{"class":790},[658,2619,1061],{"class":671},[658,2621,1064],{"class":790},[658,2623,1752],{"class":671},[658,2625,1069],{"class":806},[2442,2627],{},[2435,2629,2631,2633],{"id":2630},"return-arrête-la-fonction",[632,2632,727],{}," arrête la fonction",[649,2635,2637],{"className":651,"code":2636,"language":653,"meta":654,"style":654},"def maximum(a, b):\n    if a > b:\n        return a\n    return b\n",[632,2638,2639,2647,2657,2663],{"__ignoreMap":654},[658,2640,2641,2643,2645],{"class":660,"line":661},[658,2642,634],{"class":664},[658,2644,1148],{"class":667},[658,2646,969],{"class":671},[658,2648,2649,2651,2653,2655],{"class":660,"line":675},[658,2650,1155],{"class":664},[658,2652,976],{"class":671},[658,2654,1160],{"class":664},[658,2656,1163],{"class":671},[658,2658,2659,2661],{"class":660,"line":771},[658,2660,1168],{"class":664},[658,2662,1171],{"class":671},[658,2664,2665,2667],{"class":660,"line":778},[658,2666,678],{"class":664},[658,2668,981],{"class":671},[598,2670,2671,2672,1269,2674,721],{},"Pas besoin d'",[632,2673,1268],{},[632,2675,727],{},[2442,2677],{},[2435,2679,2681,2682],{"id":2680},"avec-ou-sans-return","Avec ou sans ",[632,2683,727],{},[692,2685,2686,2692],{},[695,2687,2208,2688,2312,2690,721],{},[632,2689,727],{},[632,2691,1111],{},[695,2693,2694,2092,2696,2698],{},[632,2695,800],{},[632,2697,727],{}," transmet. Ce n'est pas la même chose.",[2442,2700],{},[2435,2702,2704],{"id":2703},"plusieurs-valeurs","Plusieurs valeurs",[649,2706,2708],{"className":651,"code":2707,"language":653,"meta":654,"style":654},"def div_eucl(a, b):\n    return a \u002F\u002F b, a % b\n\nq, r = div_eucl(17, 5)   # 3, 2\n",[632,2709,2710,2719,2733,2737],{"__ignoreMap":654},[658,2711,2712,2714,2717],{"class":660,"line":661},[658,2713,634],{"class":664},[658,2715,2716],{"class":667}," div_eucl",[658,2718,969],{"class":671},[658,2720,2721,2723,2725,2727,2729,2731],{"class":660,"line":675},[658,2722,678],{"class":664},[658,2724,976],{"class":671},[658,2726,1957],{"class":664},[658,2728,2370],{"class":671},[658,2730,1971],{"class":664},[658,2732,981],{"class":671},[658,2734,2735],{"class":660,"line":771},[658,2736,775],{"emptyLinePlaceholder":774},[658,2738,2739,2741,2743,2746,2748,2750,2752,2754],{"class":660,"line":778},[658,2740,1989],{"class":671},[658,2742,784],{"class":664},[658,2744,2745],{"class":671}," div_eucl(",[658,2747,1997],{"class":790},[658,2749,1061],{"class":671},[658,2751,791],{"class":790},[658,2753,2537],{"class":671},[658,2755,2411],{"class":806},[598,2757,2758],{},"Tuple en retour, dépaquetage à l'appel.",[2442,2760],{},[2435,2762,2764],{"id":2763},"à-retenir","À retenir",[598,2766,2767,2768,2770,2771,721],{},"Une fonction = un nom + des paramètres + un calcul + un retour.\nTrois mots-clés : ",[632,2769,634],{},", paramètres, ",[632,2772,727],{},[2120,2774,2775],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":654,"searchDepth":675,"depth":675,"links":2777},[],"Deck pour la séance sur la définition et l'appel de fonctions.",{},"\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions.slides",{"title":2431,"description":2778},"1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions.slides","Pfn3C0Kcd9Ot285N0x39OHwcKdP-XxYSRJfhYNftjbU",{"id":2150,"title":2151,"bo":2785,"body":2786,"description":2422,"eval":2135,"extension":2136,"labo":2135,"meta":2997,"navigation":2143,"path":2424,"quizzes":2998,"readingTime":661,"seo":2999,"stem":2427,"tp":2135,"__hash__":2428},[588],{"type":590,"value":2787,"toc":2990},[2788,2790,2798,2800,2832,2834,2874,2876,2904,2906,2988],[593,2789,2158],{"id":2157},[598,2791,2161,2792,2164,2794,2168,2796,2172],{},[602,2793,604],{},[602,2795,2167],{},[602,2797,2171],{},[593,2799,2176],{"id":2175},[692,2801,2802,2806,2810,2816,2820,2826],{},[695,2803,2181,2804,2185],{},[632,2805,2184],{},[695,2807,2188,2808,2192],{},[632,2809,2191],{},[695,2811,2812,2197,2814,2200],{},[602,2813,891],{},[602,2815,904],{},[695,2817,2818,2205],{},[632,2819,727],{},[695,2821,2208,2822,2211,2824,721],{},[632,2823,727],{},[632,2825,1111],{},[695,2827,2216,2828,2053,2830,721],{},[602,2829,2219],{},[632,2831,2222],{},[593,2833,2226],{"id":2225},[2228,2835,2836,2844],{},[2231,2837,2838],{},[2234,2839,2840,2842],{},[2237,2841,2239],{},[2237,2843,2242],{},[2244,2845,2846,2852,2860,2868],{},[2234,2847,2848,2850],{},[2249,2849,2251],{},[2249,2851,2254],{},[2234,2853,2854,2856],{},[2249,2855,2259],{},[2249,2857,2262,2858],{},[632,2859,727],{},[2234,2861,2862,2864],{},[2249,2863,2269],{},[2249,2865,2262,2866,2274],{},[632,2867,800],{},[2234,2869,2870,2872],{},[2249,2871,2279],{},[2249,2873,2282],{},[593,2875,2043],{"id":2042},[692,2877,2878,2886,2894,2900],{},[695,2879,2880,2291,2882,2053,2884,2297],{},[602,2881,737],{},[602,2883,741],{},[632,2885,2296],{},[695,2887,2888,2291,2890,2304,2892,2307],{},[632,2889,800],{},[632,2891,727],{},[632,2893,727],{},[695,2895,2065,2896,2312,2898,721],{},[632,2897,727],{},[632,2899,1111],{},[695,2901,2317,2902,721],{},[632,2903,2320],{},[593,2905,2324],{"id":2323},[649,2907,2908],{"className":651,"code":2327,"language":653,"meta":654,"style":654},[632,2909,2910,2918,2928,2932,2940,2954,2958,2970],{"__ignoreMap":654},[658,2911,2912,2914,2916],{"class":660,"line":661},[658,2913,634],{"class":664},[658,2915,668],{"class":667},[658,2917,672],{"class":671},[658,2919,2920,2922,2924,2926],{"class":660,"line":675},[658,2921,678],{"class":664},[658,2923,681],{"class":671},[658,2925,684],{"class":664},[658,2927,687],{"class":671},[658,2929,2930],{"class":660,"line":771},[658,2931,775],{"emptyLinePlaceholder":774},[658,2933,2934,2936,2938],{"class":660,"line":778},[658,2935,634],{"class":664},[658,2937,1943],{"class":667},[658,2939,969],{"class":671},[658,2941,2942,2944,2946,2948,2950,2952],{"class":660,"line":797},[658,2943,678],{"class":664},[658,2945,976],{"class":671},[658,2947,1957],{"class":664},[658,2949,2370],{"class":671},[658,2951,1971],{"class":664},[658,2953,981],{"class":671},[658,2955,2956],{"class":660,"line":810},[658,2957,775],{"emptyLinePlaceholder":774},[658,2959,2960,2962,2964,2966,2968],{"class":660,"line":827},[658,2961,800],{"class":790},[658,2963,815],{"class":671},[658,2965,791],{"class":790},[658,2967,2389],{"class":671},[658,2969,807],{"class":806},[658,2971,2972,2974,2976,2978,2980,2982,2984,2986],{"class":660,"line":1026},[658,2973,1989],{"class":671},[658,2975,784],{"class":664},[658,2977,1994],{"class":671},[658,2979,1997],{"class":790},[658,2981,1061],{"class":671},[658,2983,791],{"class":790},[658,2985,2408],{"class":671},[658,2987,2411],{"class":806},[2120,2989,2414],{},{"title":654,"searchDepth":675,"depth":675,"links":2991},[2992,2993,2994,2995,2996],{"id":2157,"depth":675,"text":2158},{"id":2175,"depth":675,"text":2176},{"id":2225,"depth":675,"text":2226},{"id":2042,"depth":675,"text":2043},{"id":2323,"depth":675,"text":2324},{},[],{"title":2151,"description":2422},{"id":2430,"title":2431,"body":3001,"description":2778,"extension":2136,"meta":3303,"navigation":2143,"path":2780,"seo":3304,"stem":2782,"__hash__":2783},{"type":590,"value":3002,"toc":3301},[3003,3005,3007,3009,3011,3025,3027,3029,3051,3069,3071,3073,3103,3105,3107,3109,3123,3125,3127,3169,3171,3175,3209,3215,3217,3221,3235,3237,3239,3287,3289,3291,3293,3299],[2435,3004,395],{"id":2437},[598,3006,2440],{},[2442,3008],{},[2435,3010,2447],{"id":2446},[692,3012,3013,3017,3021],{},[695,3014,3015,1326],{},[602,3016,1325],{},[695,3018,3019,2458],{},[602,3020,1331],{},[695,3022,3023,2463],{},[602,3024,1348],{},[2442,3026],{},[2435,3028,2469],{"id":2468},[649,3030,3031],{"className":651,"code":652,"language":653,"meta":654,"style":654},[632,3032,3033,3041],{"__ignoreMap":654},[658,3034,3035,3037,3039],{"class":660,"line":661},[658,3036,634],{"class":664},[658,3038,668],{"class":667},[658,3040,672],{"class":671},[658,3042,3043,3045,3047,3049],{"class":660,"line":675},[658,3044,678],{"class":664},[658,3046,681],{"class":671},[658,3048,684],{"class":664},[658,3050,687],{"class":671},[692,3052,3053,3057,3061,3065],{},[695,3054,3055,2498],{},[632,3056,634],{},[695,3058,3059,2503],{},[632,3060,700],{},[695,3062,3063,2508],{},[632,3064,711],{},[695,3066,3067,2513],{},[632,3068,867],{},[2442,3070],{},[2435,3072,2519],{"id":2518},[649,3074,3075],{"className":651,"code":2522,"language":653,"meta":654,"style":654},[632,3076,3077,3091],{"__ignoreMap":654},[658,3078,3079,3081,3083,3085,3087,3089],{"class":660,"line":661},[658,3080,781],{"class":671},[658,3082,784],{"class":664},[658,3084,787],{"class":671},[658,3086,791],{"class":790},[658,3088,2537],{"class":671},[658,3090,807],{"class":806},[658,3092,3093,3095,3097,3099,3101],{"class":660,"line":675},[658,3094,800],{"class":790},[658,3096,815],{"class":671},[658,3098,818],{"class":790},[658,3100,1083],{"class":671},[658,3102,824],{"class":806},[598,3104,2554],{},[2442,3106],{},[2435,3108,2560],{"id":2559},[692,3110,3111,3117],{},[695,3112,3113,2567,3115,899],{},[602,3114,891],{},[632,3116,711],{},[695,3118,3119,2574,3121,899],{},[602,3120,904],{},[632,3122,791],{},[2442,3124],{},[2435,3126,2582],{"id":2581},[649,3128,3129],{"className":651,"code":2585,"language":653,"meta":654,"style":654},[632,3130,3131,3139,3149,3153],{"__ignoreMap":654},[658,3132,3133,3135,3137],{"class":660,"line":661},[658,3134,634],{"class":664},[658,3136,966],{"class":667},[658,3138,969],{"class":671},[658,3140,3141,3143,3145,3147],{"class":660,"line":675},[658,3142,678],{"class":664},[658,3144,976],{"class":671},[658,3146,840],{"class":664},[658,3148,981],{"class":671},[658,3150,3151],{"class":660,"line":771},[658,3152,775],{"emptyLinePlaceholder":774},[658,3154,3155,3157,3159,3161,3163,3165,3167],{"class":660,"line":778},[658,3156,800],{"class":790},[658,3158,1056],{"class":671},[658,3160,845],{"class":790},[658,3162,1061],{"class":671},[658,3164,1064],{"class":790},[658,3166,1752],{"class":671},[658,3168,1069],{"class":806},[2442,3170],{},[2435,3172,3173,2633],{"id":2630},[632,3174,727],{},[649,3176,3177],{"className":651,"code":2636,"language":653,"meta":654,"style":654},[632,3178,3179,3187,3197,3203],{"__ignoreMap":654},[658,3180,3181,3183,3185],{"class":660,"line":661},[658,3182,634],{"class":664},[658,3184,1148],{"class":667},[658,3186,969],{"class":671},[658,3188,3189,3191,3193,3195],{"class":660,"line":675},[658,3190,1155],{"class":664},[658,3192,976],{"class":671},[658,3194,1160],{"class":664},[658,3196,1163],{"class":671},[658,3198,3199,3201],{"class":660,"line":771},[658,3200,1168],{"class":664},[658,3202,1171],{"class":671},[658,3204,3205,3207],{"class":660,"line":778},[658,3206,678],{"class":664},[658,3208,981],{"class":671},[598,3210,2671,3211,1269,3213,721],{},[632,3212,1268],{},[632,3214,727],{},[2442,3216],{},[2435,3218,2681,3219],{"id":2680},[632,3220,727],{},[692,3222,3223,3229],{},[695,3224,2208,3225,2312,3227,721],{},[632,3226,727],{},[632,3228,1111],{},[695,3230,3231,2092,3233,2698],{},[632,3232,800],{},[632,3234,727],{},[2442,3236],{},[2435,3238,2704],{"id":2703},[649,3240,3241],{"className":651,"code":2707,"language":653,"meta":654,"style":654},[632,3242,3243,3251,3265,3269],{"__ignoreMap":654},[658,3244,3245,3247,3249],{"class":660,"line":661},[658,3246,634],{"class":664},[658,3248,2716],{"class":667},[658,3250,969],{"class":671},[658,3252,3253,3255,3257,3259,3261,3263],{"class":660,"line":675},[658,3254,678],{"class":664},[658,3256,976],{"class":671},[658,3258,1957],{"class":664},[658,3260,2370],{"class":671},[658,3262,1971],{"class":664},[658,3264,981],{"class":671},[658,3266,3267],{"class":660,"line":771},[658,3268,775],{"emptyLinePlaceholder":774},[658,3270,3271,3273,3275,3277,3279,3281,3283,3285],{"class":660,"line":778},[658,3272,1989],{"class":671},[658,3274,784],{"class":664},[658,3276,2745],{"class":671},[658,3278,1997],{"class":790},[658,3280,1061],{"class":671},[658,3282,791],{"class":790},[658,3284,2537],{"class":671},[658,3286,2411],{"class":806},[598,3288,2758],{},[2442,3290],{},[2435,3292,2764],{"id":2763},[598,3294,2767,3295,2770,3297,721],{},[632,3296,634],{},[632,3298,727],{},[2120,3300,2775],{},{"title":654,"searchDepth":675,"depth":675,"links":3302},[],{},{"title":2431,"description":2778},1788035582232]