[{"data":1,"prerenderedAt":2706},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite":585,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite__counterpart":1554,"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite__slides":1839,"annexes-memo:\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite":2189,"annexes-slides:\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite":2419},[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":545,"bo":587,"body":589,"description":1540,"eval":1541,"extension":1542,"labo":1541,"meta":1543,"navigation":981,"path":546,"quizzes":1544,"readingTime":793,"seo":1552,"stem":547,"tp":1541,"__hash__":1553},"cours\u002F2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite.md",[588],"TD02",{"type":590,"value":591,"toc":1531},"minimark",[592,597,618,633,644,648,745,776,780,855,869,899,903,910,933,1001,1016,1023,1026,1378,1381,1461,1470,1491,1495,1525,1527],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610,613,614,617],"p",{},"Un programme sérieux ne tient pas dans un seul fichier. Au-delà de quelques\ncentaines de lignes, il devient illisible et coûteux à maintenir. On\n",[602,603,604],"strong",{},"découpe"," alors le code en unités cohérentes — les ",[602,607,608],{},"modules"," — chacune\nresponsable d'un domaine, chacune ",[602,611,612],{},"documentée"," et ",[602,615,616],{},"réutilisable",".",[598,619,620,621,624,625,628,629,632],{},"Cette discipline est l'objet de l'item ",[622,623],"bo-ref",{"code":588},". Elle suppose deux\ncompétences complémentaires : savoir ",[602,626,627],{},"consommer"," une bibliothèque\n(comprendre sa documentation, l'utiliser correctement) et savoir\n",[602,630,631],{},"produire"," ses propres modules, documentés à un niveau tel qu'un tiers\npuisse les utiliser sans lire le code source.",[598,634,635,636,639,640,643],{},"Une bibliothèque, c'est un ",[602,637,638],{},"atelier d'outils prêts à l'emploi"," : vous\nn'allez pas refondre un marteau à chaque clou à planter. Documenter votre\npropre module, c'est laisser un ",[602,641,642],{},"mode d'emploi"," pour celui qui ouvrira la\nboîte après vous — souvent vous-même dans six mois.",[593,645,647],{"id":646},"modules-packages-bibliothèques","Modules, packages, bibliothèques",[649,650,651,667],"table",{},[652,653,654],"thead",{},[655,656,657,661,664],"tr",{},[658,659,660],"th",{},"Terme",[658,662,663],{},"Définition",[658,665,666],{},"Exemple",[668,669,670,691,710,730],"tbody",{},[655,671,672,678,686],{},[673,674,675],"td",{},[602,676,677],{},"Module",[673,679,680,681,685],{},"Un fichier ",[682,683,684],"code",{},".py"," qu'on peut importer.",[673,687,688],{},[682,689,690],{},"math.py",[655,692,693,698,705],{},[673,694,695],{},[602,696,697],{},"Package",[673,699,700,701,704],{},"Un dossier contenant un ",[682,702,703],{},"__init__.py"," et plusieurs modules.",[673,706,707],{},[682,708,709],{},"numpy\u002F",[655,711,712,718,721],{},[673,713,714,717],{},[602,715,716],{},"Bibliothèque"," (lib)",[673,719,720],{},"Ensemble de modules\u002Fpackages fournis ensemble.",[673,722,723,726,727],{},[682,724,725],{},"numpy",", ",[682,728,729],{},"requests",[655,731,732,737,740],{},[673,733,734],{},[602,735,736],{},"API",[673,738,739],{},"Surface publique exposée par une bibliothèque (fonctions, classes).",[673,741,742],{},[682,743,744],{},"numpy.array(...)",[746,747,748],"note",{},[598,749,750,751,754,755,726,758,726,761,726,764,767,768,771,772,775],{},"La ",[602,752,753],{},"bibliothèque standard"," de Python regroupe des centaines de modules livrés\navec l'interpréteur (",[682,756,757],{},"math",[682,759,760],{},"random",[682,762,763],{},"os",[682,765,766],{},"json",", …). Les bibliothèques\n",[602,769,770],{},"tierces"," s'installent via ",[682,773,774],{},"pip"," depuis PyPI.",[593,777,779],{"id":778},"importer-quatre-syntaxes-utiles","Importer — quatre syntaxes utiles",[781,782,787],"pre",{"className":783,"code":784,"language":785,"meta":786,"style":786},"language-python shiki shiki-themes github-light github-light github-dark","import math                            # accès via math.sqrt(2)\nfrom math import sqrt                  # accès direct sqrt(2)\nfrom math import sqrt, pi              # plusieurs symboles\nimport numpy as np                     # alias court\n","python","",[682,788,789,806,823,838],{"__ignoreMap":786},[790,791,794,798,802],"span",{"class":792,"line":793},"line",1,[790,795,797],{"class":796},"s8jYJ","import",[790,799,801],{"class":800},"sxrX7"," math                            ",[790,803,805],{"class":804},"sCsY4","# accès via math.sqrt(2)\n",[790,807,809,812,815,817,820],{"class":792,"line":808},2,[790,810,811],{"class":796},"from",[790,813,814],{"class":800}," math ",[790,816,797],{"class":796},[790,818,819],{"class":800}," sqrt                  ",[790,821,822],{"class":804},"# accès direct sqrt(2)\n",[790,824,826,828,830,832,835],{"class":792,"line":825},3,[790,827,811],{"class":796},[790,829,814],{"class":800},[790,831,797],{"class":796},[790,833,834],{"class":800}," sqrt, pi              ",[790,836,837],{"class":804},"# plusieurs symboles\n",[790,839,841,843,846,849,852],{"class":792,"line":840},4,[790,842,797],{"class":796},[790,844,845],{"class":800}," numpy ",[790,847,848],{"class":796},"as",[790,850,851],{"class":800}," np                     ",[790,853,854],{"class":804},"# alias court\n",[856,857,858],"warning",{},[598,859,860,861,864,865,868],{},"Évitez ",[682,862,863],{},"from math import *"," : il ",[602,866,867],{},"pollue"," l'espace de noms et masque\nsilencieusement les variables locales qui auraient le même nom.",[870,871,874,884],"self-eval-qcm",{"correct":872,"slug":873},"1","modularite-c1",[875,876,877],"template",{"v-slot:question":786},[598,878,879,880,883],{},"Quelle ligne permet d'écrire ",[682,881,882],{},"sqrt(2)"," directement ?",[875,885,886],{"v-slot:choices":786},[887,888,889,893,896],"ul",{},[890,891,892],"li",{},"import math",[890,894,895],{},"from math import sqrt",[890,897,898],{},"import math as sqrt",[593,900,902],{"id":901},"exploiter-la-documentation","Exploiter la documentation",[598,904,905,906,909],{},"Toute bibliothèque sérieuse expose ",[602,907,908],{},"trois niveaux"," de documentation :",[911,912,913,921,927],"ol",{},[890,914,915,920],{},[602,916,917],{},[682,918,919],{},"help(objet)"," dans l'interpréteur — affiche la docstring de l'objet.",[890,922,923,926],{},[602,924,925],{},"La documentation en ligne"," — référence officielle, tutoriels, exemples.",[890,928,929,932],{},[602,930,931],{},"Le code source"," — pour les cas extrêmes, mais à éviter en première\napproche.",[781,934,936],{"className":783,"code":935,"language":785,"meta":786,"style":786},">>> import math\n>>> help(math.sqrt)\nHelp on built-in function sqrt in module math:\n\nsqrt(x, \u002F)\n    Return the square root of x.\n",[682,937,938,949,960,977,983,995],{"__ignoreMap":786},[790,939,940,943,946],{"class":792,"line":793},[790,941,942],{"class":796},">>>",[790,944,945],{"class":796}," import",[790,947,948],{"class":800}," math\n",[790,950,951,953,957],{"class":792,"line":808},[790,952,942],{"class":796},[790,954,956],{"class":955},"sBjJW"," help",[790,958,959],{"class":800},"(math.sqrt)\n",[790,961,962,965,968,971,974],{"class":792,"line":825},[790,963,964],{"class":800},"Help on built",[790,966,967],{"class":796},"-in",[790,969,970],{"class":800}," function sqrt ",[790,972,973],{"class":796},"in",[790,975,976],{"class":800}," module math:\n",[790,978,979],{"class":792,"line":840},[790,980,982],{"emptyLinePlaceholder":981},true,"\n",[790,984,986,989,992],{"class":792,"line":985},5,[790,987,988],{"class":800},"sqrt(x, ",[790,990,991],{"class":796},"\u002F",[790,993,994],{"class":800},")\n",[790,996,998],{"class":792,"line":997},6,[790,999,1000],{"class":800},"    Return the square root of x.\n",[598,1002,1003,1004,1007,1008,1011,1012,1015],{},"Devant une fonction inconnue, le réflexe est ",[682,1005,1006],{},"help(...)"," ou ",[682,1009,1010],{},"?"," dans Jupyter,\n",[602,1013,1014],{},"avant"," Stack Overflow.",[593,1017,1019,1020],{"id":1018},"créer-son-propre-module-geompy","Créer son propre module — ",[682,1021,1022],{},"geom.py",[598,1024,1025],{},"Le meilleur moyen d'apprendre est d'en écrire un. Voici un module minimaliste\nde géométrie :",[781,1027,1029],{"className":783,"code":1028,"language":785,"meta":786,"style":786},"# fichier geom.py\n\"\"\"Module geom — primitives géométriques pour figures simples.\n\nCe module fournit des fonctions pour calculer l'aire et le périmètre\nde figures usuelles (cercle, rectangle, triangle).\n\"\"\"\n\nfrom math import pi\n\n\ndef aire_cercle(rayon: float) -> float:\n    \"\"\"Retourne l'aire d'un cercle de rayon donné.\n\n    >>> round(aire_cercle(1), 4)\n    3.1416\n    \"\"\"\n    assert rayon >= 0, \"le rayon doit être positif\"\n    return pi * rayon ** 2\n\n\ndef perimetre_cercle(rayon: float) -> float:\n    \"\"\"Retourne le périmètre (circonférence) d'un cercle.\n\n    >>> round(perimetre_cercle(1), 4)\n    6.2832\n    \"\"\"\n    assert rayon >= 0, \"le rayon doit être positif\"\n    return 2 * pi * rayon\n\n\ndef aire_rectangle(largeur: float, hauteur: float) -> float:\n    \"\"\"Retourne l'aire d'un rectangle.\n\n    >>> aire_rectangle(3, 4)\n    12\n    \"\"\"\n    assert largeur >= 0 and hauteur >= 0, \"dimensions positives\"\n    return largeur * hauteur\n",[682,1030,1031,1036,1042,1046,1051,1056,1061,1066,1078,1083,1088,1112,1118,1123,1132,1138,1144,1164,1184,1189,1194,1212,1218,1223,1231,1237,1242,1257,1275,1280,1285,1309,1315,1320,1328,1334,1339,1366],{"__ignoreMap":786},[790,1032,1033],{"class":792,"line":793},[790,1034,1035],{"class":804},"# fichier geom.py\n",[790,1037,1038],{"class":792,"line":808},[790,1039,1041],{"class":1040},"sIIMD","\"\"\"Module geom — primitives géométriques pour figures simples.\n",[790,1043,1044],{"class":792,"line":825},[790,1045,982],{"emptyLinePlaceholder":981},[790,1047,1048],{"class":792,"line":840},[790,1049,1050],{"class":1040},"Ce module fournit des fonctions pour calculer l'aire et le périmètre\n",[790,1052,1053],{"class":792,"line":985},[790,1054,1055],{"class":1040},"de figures usuelles (cercle, rectangle, triangle).\n",[790,1057,1058],{"class":792,"line":997},[790,1059,1060],{"class":1040},"\"\"\"\n",[790,1062,1064],{"class":792,"line":1063},7,[790,1065,982],{"emptyLinePlaceholder":981},[790,1067,1069,1071,1073,1075],{"class":792,"line":1068},8,[790,1070,811],{"class":796},[790,1072,814],{"class":800},[790,1074,797],{"class":796},[790,1076,1077],{"class":800}," pi\n",[790,1079,1081],{"class":792,"line":1080},9,[790,1082,982],{"emptyLinePlaceholder":981},[790,1084,1086],{"class":792,"line":1085},10,[790,1087,982],{"emptyLinePlaceholder":981},[790,1089,1091,1094,1098,1101,1104,1107,1109],{"class":792,"line":1090},11,[790,1092,1093],{"class":796},"def",[790,1095,1097],{"class":1096},"snPdu"," aire_cercle",[790,1099,1100],{"class":800},"(rayon: ",[790,1102,1103],{"class":955},"float",[790,1105,1106],{"class":800},") -> ",[790,1108,1103],{"class":955},[790,1110,1111],{"class":800},":\n",[790,1113,1115],{"class":792,"line":1114},12,[790,1116,1117],{"class":1040},"    \"\"\"Retourne l'aire d'un cercle de rayon donné.\n",[790,1119,1121],{"class":792,"line":1120},13,[790,1122,982],{"emptyLinePlaceholder":981},[790,1124,1126,1129],{"class":792,"line":1125},14,[790,1127,1128],{"class":796},"    >>> ",[790,1130,1131],{"class":1040},"round(aire_cercle(1), 4)\n",[790,1133,1135],{"class":792,"line":1134},15,[790,1136,1137],{"class":1040},"    3.1416\n",[790,1139,1141],{"class":792,"line":1140},16,[790,1142,1143],{"class":1040},"    \"\"\"\n",[790,1145,1147,1150,1153,1156,1159,1161],{"class":792,"line":1146},17,[790,1148,1149],{"class":796},"    assert",[790,1151,1152],{"class":800}," rayon ",[790,1154,1155],{"class":796},">=",[790,1157,1158],{"class":955}," 0",[790,1160,726],{"class":800},[790,1162,1163],{"class":1040},"\"le rayon doit être positif\"\n",[790,1165,1167,1170,1173,1176,1178,1181],{"class":792,"line":1166},18,[790,1168,1169],{"class":796},"    return",[790,1171,1172],{"class":800}," pi ",[790,1174,1175],{"class":796},"*",[790,1177,1152],{"class":800},[790,1179,1180],{"class":796},"**",[790,1182,1183],{"class":955}," 2\n",[790,1185,1187],{"class":792,"line":1186},19,[790,1188,982],{"emptyLinePlaceholder":981},[790,1190,1192],{"class":792,"line":1191},20,[790,1193,982],{"emptyLinePlaceholder":981},[790,1195,1197,1199,1202,1204,1206,1208,1210],{"class":792,"line":1196},21,[790,1198,1093],{"class":796},[790,1200,1201],{"class":1096}," perimetre_cercle",[790,1203,1100],{"class":800},[790,1205,1103],{"class":955},[790,1207,1106],{"class":800},[790,1209,1103],{"class":955},[790,1211,1111],{"class":800},[790,1213,1215],{"class":792,"line":1214},22,[790,1216,1217],{"class":1040},"    \"\"\"Retourne le périmètre (circonférence) d'un cercle.\n",[790,1219,1221],{"class":792,"line":1220},23,[790,1222,982],{"emptyLinePlaceholder":981},[790,1224,1226,1228],{"class":792,"line":1225},24,[790,1227,1128],{"class":796},[790,1229,1230],{"class":1040},"round(perimetre_cercle(1), 4)\n",[790,1232,1234],{"class":792,"line":1233},25,[790,1235,1236],{"class":1040},"    6.2832\n",[790,1238,1240],{"class":792,"line":1239},26,[790,1241,1143],{"class":1040},[790,1243,1245,1247,1249,1251,1253,1255],{"class":792,"line":1244},27,[790,1246,1149],{"class":796},[790,1248,1152],{"class":800},[790,1250,1155],{"class":796},[790,1252,1158],{"class":955},[790,1254,726],{"class":800},[790,1256,1163],{"class":1040},[790,1258,1260,1262,1265,1268,1270,1272],{"class":792,"line":1259},28,[790,1261,1169],{"class":796},[790,1263,1264],{"class":955}," 2",[790,1266,1267],{"class":796}," *",[790,1269,1172],{"class":800},[790,1271,1175],{"class":796},[790,1273,1274],{"class":800}," rayon\n",[790,1276,1278],{"class":792,"line":1277},29,[790,1279,982],{"emptyLinePlaceholder":981},[790,1281,1283],{"class":792,"line":1282},30,[790,1284,982],{"emptyLinePlaceholder":981},[790,1286,1288,1290,1293,1296,1298,1301,1303,1305,1307],{"class":792,"line":1287},31,[790,1289,1093],{"class":796},[790,1291,1292],{"class":1096}," aire_rectangle",[790,1294,1295],{"class":800},"(largeur: ",[790,1297,1103],{"class":955},[790,1299,1300],{"class":800},", hauteur: ",[790,1302,1103],{"class":955},[790,1304,1106],{"class":800},[790,1306,1103],{"class":955},[790,1308,1111],{"class":800},[790,1310,1312],{"class":792,"line":1311},32,[790,1313,1314],{"class":1040},"    \"\"\"Retourne l'aire d'un rectangle.\n",[790,1316,1318],{"class":792,"line":1317},33,[790,1319,982],{"emptyLinePlaceholder":981},[790,1321,1323,1325],{"class":792,"line":1322},34,[790,1324,1128],{"class":796},[790,1326,1327],{"class":1040},"aire_rectangle(3, 4)\n",[790,1329,1331],{"class":792,"line":1330},35,[790,1332,1333],{"class":1040},"    12\n",[790,1335,1337],{"class":792,"line":1336},36,[790,1338,1143],{"class":1040},[790,1340,1342,1344,1347,1349,1351,1354,1357,1359,1361,1363],{"class":792,"line":1341},37,[790,1343,1149],{"class":796},[790,1345,1346],{"class":800}," largeur ",[790,1348,1155],{"class":796},[790,1350,1158],{"class":955},[790,1352,1353],{"class":796}," and",[790,1355,1356],{"class":800}," hauteur ",[790,1358,1155],{"class":796},[790,1360,1158],{"class":955},[790,1362,726],{"class":800},[790,1364,1365],{"class":1040},"\"dimensions positives\"\n",[790,1367,1369,1371,1373,1375],{"class":792,"line":1368},38,[790,1370,1169],{"class":796},[790,1372,1346],{"class":800},[790,1374,1175],{"class":796},[790,1376,1377],{"class":800}," hauteur\n",[598,1379,1380],{},"L'utiliser depuis un autre script :",[781,1382,1384],{"className":783,"code":1383,"language":785,"meta":786,"style":786},"# fichier main.py\nimport geom\n\nprint(geom.aire_cercle(2))             # 12.566370614359172\nprint(geom.aire_rectangle(3, 4))       # 12\nhelp(geom)                             # affiche la docstring du module\nhelp(geom.aire_cercle)                 # affiche la docstring de la fonction\n",[682,1385,1386,1391,1398,1402,1419,1440,1451],{"__ignoreMap":786},[790,1387,1388],{"class":792,"line":793},[790,1389,1390],{"class":804},"# fichier main.py\n",[790,1392,1393,1395],{"class":792,"line":808},[790,1394,797],{"class":796},[790,1396,1397],{"class":800}," geom\n",[790,1399,1400],{"class":792,"line":825},[790,1401,982],{"emptyLinePlaceholder":981},[790,1403,1404,1407,1410,1413,1416],{"class":792,"line":840},[790,1405,1406],{"class":955},"print",[790,1408,1409],{"class":800},"(geom.aire_cercle(",[790,1411,1412],{"class":955},"2",[790,1414,1415],{"class":800},"))             ",[790,1417,1418],{"class":804},"# 12.566370614359172\n",[790,1420,1421,1423,1426,1429,1431,1434,1437],{"class":792,"line":985},[790,1422,1406],{"class":955},[790,1424,1425],{"class":800},"(geom.aire_rectangle(",[790,1427,1428],{"class":955},"3",[790,1430,726],{"class":800},[790,1432,1433],{"class":955},"4",[790,1435,1436],{"class":800},"))       ",[790,1438,1439],{"class":804},"# 12\n",[790,1441,1442,1445,1448],{"class":792,"line":997},[790,1443,1444],{"class":955},"help",[790,1446,1447],{"class":800},"(geom)                             ",[790,1449,1450],{"class":804},"# affiche la docstring du module\n",[790,1452,1453,1455,1458],{"class":792,"line":1063},[790,1454,1444],{"class":955},[790,1456,1457],{"class":800},"(geom.aire_cercle)                 ",[790,1459,1460],{"class":804},"# affiche la docstring de la fonction\n",[1462,1463,1464],"tip",{},[598,1465,1466,1469],{},[602,1467,1468],{},"Quatre éléments font un module utilisable"," : une docstring de module, une\ndocstring par fonction publique, un typage clair des paramètres, et des\nexemples dans les docstrings (qui servent aussi de doctests).",[870,1471,1473,1478],{"correct":872,"slug":1472},"modularite-c2",[875,1474,1475],{"v-slot:question":786},[598,1476,1477],{},"Quel élément est ABSENT du module geom.py qui le rendrait moins fiable ?",[875,1479,1480],{"v-slot:choices":786},[887,1481,1482,1485,1488],{},[890,1483,1484],{},"Une docstring de module",[890,1486,1487],{},"Un jeu de tests externe",[890,1489,1490],{},"Des assertions sur les arguments",[593,1492,1494],{"id":1493},"pour-aller-plus-loin","Pour aller plus loin",[598,1496,1497,1498,1501,1502,1505,1506,1509,1510,1513,1514,1517,1518,1521,1522,617],{},"Un module mature s'accompagne d'un ",[682,1499,1500],{},"__main__"," qui permet de l'exécuter\ndirectement (",[682,1503,1504],{},"python geom.py","), de tests dans un fichier ",[682,1507,1508],{},"test_geom.py",", et\nd'un ",[682,1511,1512],{},"README.md"," qui décrit le projet. Au-delà, on ",[602,1515,1516],{},"package"," le tout\n(",[682,1519,1520],{},"pyproject.toml",") pour le publier sur PyPI et le rendre installable par\n",[682,1523,1524],{},"pip install",[622,1526],{"code":588},[1528,1529,1530],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":786,"searchDepth":808,"depth":808,"links":1532},[1533,1534,1535,1536,1537,1539],{"id":595,"depth":808,"text":596},{"id":646,"depth":808,"text":647},{"id":778,"depth":808,"text":779},{"id":901,"depth":808,"text":902},{"id":1018,"depth":808,"text":1538},"Créer son propre module — geom.py",{"id":1493,"depth":808,"text":1494},"Structurer le code en modules et packages, exploiter les bibliothèques et leur documentation, créer un module documenté réutilisable.",null,"md",{},[1545,1550],{"slug":873,"kind":1546,"question":1547,"choices":1548,"correct":872,"multi":1549,"explanation":786},"qcm","Quelle ligne permet d'écrire sqrt(2) directement ?",[892,895,898],false,{"slug":1472,"kind":1546,"question":1477,"choices":1551,"correct":872,"multi":1549,"explanation":786},[1484,1487,1490],{"title":545,"description":1540},"Fz-nTqFMmzoDLKSCdyYEuXzjzelsqIzOknK6IYUTIyU",{"id":1555,"title":1556,"bo":1557,"body":1558,"description":1832,"eval":1541,"extension":1542,"labo":1541,"meta":1833,"navigation":1549,"path":1834,"quizzes":1835,"readingTime":793,"seo":1836,"stem":1837,"tp":1541,"__hash__":1838},"coursMemo\u002F2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite.memo.md","Modularité — l'essentiel",[588],{"type":590,"value":1559,"toc":1825},[1560,1564,1572,1576,1626,1630,1674,1678,1698,1702,1795,1822],[593,1561,1563],{"id":1562},"en-une-phrase","En une phrase",[598,1565,1566],{},[602,1567,1568,1569,1571],{},"Un module est un fichier ",[682,1570,684],{}," importable ; on consomme les bibliothèques via leur doc, on produit ses propres modules documentés et typés.",[593,1573,1575],{"id":1574},"à-mémoriser","À mémoriser",[887,1577,1578,1594,1599,1612,1620],{},[890,1579,1580,1582,1583,1585,1586,1588,1589,1585,1591,1593],{},[602,1581,677],{}," = fichier ",[682,1584,684],{},". ",[602,1587,697],{}," = dossier avec ",[682,1590,703],{},[602,1592,716],{}," = ensemble cohérent.",[890,1595,1596,1598],{},[602,1597,736],{}," = surface publique d'une bibliothèque (fonctions, classes exposées).",[890,1600,1601,1604,1605,726,1607,726,1609,617],{},[602,1602,1603],{},"Imports"," : ",[682,1606,892],{},[682,1608,895],{},[682,1610,1611],{},"import numpy as np",[890,1613,1614,1604,1617,1619],{},[602,1615,1616],{},"Documentation",[682,1618,1006],{},", doc en ligne, code source en dernier recours.",[890,1621,1622,1625],{},[602,1623,1624],{},"Un bon module"," = docstring de module + docstrings par fonction + typage + tests\u002Fdoctests.",[593,1627,1629],{"id":1628},"à-savoir-reconnaître","À savoir reconnaître",[649,1631,1632,1642],{},[652,1633,1634],{},[655,1635,1636,1639],{},[658,1637,1638],{},"Situation",[658,1640,1641],{},"Action",[668,1643,1644,1654,1666],{},[655,1645,1646,1649],{},[673,1647,1648],{},"Nom de bibliothèque inconnu",[673,1650,1651,1653],{},[682,1652,1006],{}," dans l'interpréteur.",[655,1655,1656,1659],{},[673,1657,1658],{},"Conflit de noms entre modules",[673,1660,1661,1662,1665],{},"Utiliser un alias (",[682,1663,1664],{},"import x as y",").",[655,1667,1668,1671],{},[673,1669,1670],{},"Code répété entre deux scripts",[673,1672,1673],{},"Extraire dans un module commun.",[593,1675,1677],{"id":1676},"pièges-courants","Pièges courants",[887,1679,1680,1685,1695],{},[890,1681,1682,1684],{},[682,1683,863],{}," : pollue l'espace de noms.",[890,1686,1687,1688,1691,1692,617],{},"Oublier la docstring de module — ",[682,1689,1690],{},"help(mon_module)"," retourne alors ",[682,1693,1694],{},"None",[890,1696,1697],{},"Ne pas typer les paramètres — l'utilisateur ne sait pas ce qu'on attend.",[593,1699,1701],{"id":1700},"syntaxe-python","Syntaxe Python",[781,1703,1705],{"className":783,"code":1704,"language":785,"meta":786,"style":786},"# geom.py\n\"\"\"Primitives géométriques.\"\"\"\nfrom math import pi\n\ndef aire_cercle(rayon: float) -> float:\n    \"\"\"Aire d'un disque de rayon donné.\n\n    >>> round(aire_cercle(1), 4)\n    3.1416\n    \"\"\"\n    assert rayon >= 0\n    return pi * rayon ** 2\n",[682,1706,1707,1712,1717,1727,1731,1747,1752,1756,1762,1766,1770,1781],{"__ignoreMap":786},[790,1708,1709],{"class":792,"line":793},[790,1710,1711],{"class":804},"# geom.py\n",[790,1713,1714],{"class":792,"line":808},[790,1715,1716],{"class":1040},"\"\"\"Primitives géométriques.\"\"\"\n",[790,1718,1719,1721,1723,1725],{"class":792,"line":825},[790,1720,811],{"class":796},[790,1722,814],{"class":800},[790,1724,797],{"class":796},[790,1726,1077],{"class":800},[790,1728,1729],{"class":792,"line":840},[790,1730,982],{"emptyLinePlaceholder":981},[790,1732,1733,1735,1737,1739,1741,1743,1745],{"class":792,"line":985},[790,1734,1093],{"class":796},[790,1736,1097],{"class":1096},[790,1738,1100],{"class":800},[790,1740,1103],{"class":955},[790,1742,1106],{"class":800},[790,1744,1103],{"class":955},[790,1746,1111],{"class":800},[790,1748,1749],{"class":792,"line":997},[790,1750,1751],{"class":1040},"    \"\"\"Aire d'un disque de rayon donné.\n",[790,1753,1754],{"class":792,"line":1063},[790,1755,982],{"emptyLinePlaceholder":981},[790,1757,1758,1760],{"class":792,"line":1068},[790,1759,1128],{"class":796},[790,1761,1131],{"class":1040},[790,1763,1764],{"class":792,"line":1080},[790,1765,1137],{"class":1040},[790,1767,1768],{"class":792,"line":1085},[790,1769,1143],{"class":1040},[790,1771,1772,1774,1776,1778],{"class":792,"line":1090},[790,1773,1149],{"class":796},[790,1775,1152],{"class":800},[790,1777,1155],{"class":796},[790,1779,1780],{"class":955}," 0\n",[790,1782,1783,1785,1787,1789,1791,1793],{"class":792,"line":1114},[790,1784,1169],{"class":796},[790,1786,1172],{"class":800},[790,1788,1175],{"class":796},[790,1790,1152],{"class":800},[790,1792,1180],{"class":796},[790,1794,1183],{"class":955},[781,1796,1798],{"className":783,"code":1797,"language":785,"meta":786,"style":786},"# main.py\nimport geom\nprint(geom.aire_cercle(2))\n",[682,1799,1800,1805,1811],{"__ignoreMap":786},[790,1801,1802],{"class":792,"line":793},[790,1803,1804],{"class":804},"# main.py\n",[790,1806,1807,1809],{"class":792,"line":808},[790,1808,797],{"class":796},[790,1810,1397],{"class":800},[790,1812,1813,1815,1817,1819],{"class":792,"line":825},[790,1814,1406],{"class":955},[790,1816,1409],{"class":800},[790,1818,1412],{"class":955},[790,1820,1821],{"class":800},"))\n",[1528,1823,1824],{},"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}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}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":786,"searchDepth":808,"depth":808,"links":1826},[1827,1828,1829,1830,1831],{"id":1562,"depth":808,"text":1563},{"id":1574,"depth":808,"text":1575},{"id":1628,"depth":808,"text":1629},{"id":1676,"depth":808,"text":1677},{"id":1700,"depth":808,"text":1701},"Mémo de révision sur modules, packages, bibliothèques et création de modules documentés.",{},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite.memo",[],{"title":1556,"description":1832},"2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite.memo","7JBXkGhe3Y-q7BsEV7ul9f0TOZu_AxVP09HN58_wi1E",{"id":1840,"title":1841,"body":1842,"description":2183,"extension":1542,"meta":2184,"navigation":1549,"path":2185,"seo":2186,"stem":2187,"__hash__":2188},"coursSlides\u002F2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite.slides.md","Modularité — diapositives",{"type":590,"value":1843,"toc":2181},[1844,1848,1854,1857,1861,1872,1874,1878,1923,1925,1929,1973,1979,1981,1985,1997,2006,2008,2012,2098,2100,2104,2153,2155,2159,2166,2168,2172,2178],[1845,1846,545],"h1",{"id":1847},"modularité",[598,1849,1850,1851,1853],{},"Item ",[622,1852],{"code":588}," — Découper, documenter, réutiliser.",[1855,1856],"hr",{},[1845,1858,1860],{"id":1859},"pourquoi-moduler","Pourquoi moduler",[887,1862,1863,1866,1869],{},[890,1864,1865],{},"Un seul gros fichier devient illisible.",[890,1867,1868],{},"Un module = une unité cohérente, testable.",[890,1870,1871],{},"Un bon module se réutilise sans relire son code.",[1855,1873],{},[1845,1875,1877],{"id":1876},"vocabulaire","Vocabulaire",[649,1879,1880,1888],{},[652,1881,1882],{},[655,1883,1884,1886],{},[658,1885,660],{},[658,1887,663],{},[668,1889,1890,1900,1909,1916],{},[655,1891,1892,1894],{},[673,1893,677],{},[673,1895,1896,1897,1899],{},"Fichier ",[682,1898,684],{}," importable",[655,1901,1902,1904],{},[673,1903,697],{},[673,1905,1906,1907],{},"Dossier ",[682,1908,703],{},[655,1910,1911,1913],{},[673,1912,716],{},[673,1914,1915],{},"Ensemble cohérent de modules",[655,1917,1918,1920],{},[673,1919,736],{},[673,1921,1922],{},"Surface publique exposée",[1855,1924],{},[1845,1926,1928],{"id":1927},"quatre-syntaxes-dimport","Quatre syntaxes d'import",[781,1930,1932],{"className":783,"code":1931,"language":785,"meta":786,"style":786},"import math\nfrom math import sqrt\nfrom math import sqrt, pi\nimport numpy as np\n",[682,1933,1934,1940,1951,1962],{"__ignoreMap":786},[790,1935,1936,1938],{"class":792,"line":793},[790,1937,797],{"class":796},[790,1939,948],{"class":800},[790,1941,1942,1944,1946,1948],{"class":792,"line":808},[790,1943,811],{"class":796},[790,1945,814],{"class":800},[790,1947,797],{"class":796},[790,1949,1950],{"class":800}," sqrt\n",[790,1952,1953,1955,1957,1959],{"class":792,"line":825},[790,1954,811],{"class":796},[790,1956,814],{"class":800},[790,1958,797],{"class":796},[790,1960,1961],{"class":800}," sqrt, pi\n",[790,1963,1964,1966,1968,1970],{"class":792,"line":840},[790,1965,797],{"class":796},[790,1967,845],{"class":800},[790,1969,848],{"class":796},[790,1971,1972],{"class":800}," np\n",[598,1974,1975,1976,1978],{},"Éviter ",[682,1977,863],{}," — pollue l'espace de noms.",[1855,1980],{},[1845,1982,1984],{"id":1983},"exploiter-la-doc","Exploiter la doc",[911,1986,1987,1991,1994],{},[890,1988,1989,1653],{},[682,1990,919],{},[890,1992,1993],{},"Doc en ligne officielle.",[890,1995,1996],{},"Code source (en dernier recours).",[598,1998,1999,2001,2002,2005],{},[682,2000,1444],{}," lit la ",[602,2003,2004],{},"docstring"," — d'où l'importance d'en écrire.",[1855,2007],{},[1845,2009,2011],{"id":2010},"créer-un-module-geompy","Créer un module — geom.py",[781,2013,2015],{"className":783,"code":2014,"language":785,"meta":786,"style":786},"\"\"\"Primitives géométriques.\"\"\"\nfrom math import pi\n\ndef aire_cercle(rayon: float) -> float:\n    \"\"\"Aire d'un disque.\n\n    >>> round(aire_cercle(1), 4)\n    3.1416\n    \"\"\"\n    assert rayon >= 0\n    return pi * rayon ** 2\n",[682,2016,2017,2021,2031,2035,2051,2056,2060,2066,2070,2074,2084],{"__ignoreMap":786},[790,2018,2019],{"class":792,"line":793},[790,2020,1716],{"class":1040},[790,2022,2023,2025,2027,2029],{"class":792,"line":808},[790,2024,811],{"class":796},[790,2026,814],{"class":800},[790,2028,797],{"class":796},[790,2030,1077],{"class":800},[790,2032,2033],{"class":792,"line":825},[790,2034,982],{"emptyLinePlaceholder":981},[790,2036,2037,2039,2041,2043,2045,2047,2049],{"class":792,"line":840},[790,2038,1093],{"class":796},[790,2040,1097],{"class":1096},[790,2042,1100],{"class":800},[790,2044,1103],{"class":955},[790,2046,1106],{"class":800},[790,2048,1103],{"class":955},[790,2050,1111],{"class":800},[790,2052,2053],{"class":792,"line":985},[790,2054,2055],{"class":1040},"    \"\"\"Aire d'un disque.\n",[790,2057,2058],{"class":792,"line":997},[790,2059,982],{"emptyLinePlaceholder":981},[790,2061,2062,2064],{"class":792,"line":1063},[790,2063,1128],{"class":796},[790,2065,1131],{"class":1040},[790,2067,2068],{"class":792,"line":1068},[790,2069,1137],{"class":1040},[790,2071,2072],{"class":792,"line":1080},[790,2073,1143],{"class":1040},[790,2075,2076,2078,2080,2082],{"class":792,"line":1085},[790,2077,1149],{"class":796},[790,2079,1152],{"class":800},[790,2081,1155],{"class":796},[790,2083,1780],{"class":955},[790,2085,2086,2088,2090,2092,2094,2096],{"class":792,"line":1090},[790,2087,1169],{"class":796},[790,2089,1172],{"class":800},[790,2091,1175],{"class":796},[790,2093,1152],{"class":800},[790,2095,1180],{"class":796},[790,2097,1183],{"class":955},[1855,2099],{},[1845,2101,2103],{"id":2102},"lutiliser","L'utiliser",[781,2105,2107],{"className":783,"code":2106,"language":785,"meta":786,"style":786},"import geom\n\nprint(geom.aire_cercle(2))   # 12.566...\nhelp(geom)                   # docstring du module\nhelp(geom.aire_cercle)       # docstring de la fonction\n",[682,2108,2109,2115,2119,2133,2143],{"__ignoreMap":786},[790,2110,2111,2113],{"class":792,"line":793},[790,2112,797],{"class":796},[790,2114,1397],{"class":800},[790,2116,2117],{"class":792,"line":808},[790,2118,982],{"emptyLinePlaceholder":981},[790,2120,2121,2123,2125,2127,2130],{"class":792,"line":825},[790,2122,1406],{"class":955},[790,2124,1409],{"class":800},[790,2126,1412],{"class":955},[790,2128,2129],{"class":800},"))   ",[790,2131,2132],{"class":804},"# 12.566...\n",[790,2134,2135,2137,2140],{"class":792,"line":840},[790,2136,1444],{"class":955},[790,2138,2139],{"class":800},"(geom)                   ",[790,2141,2142],{"class":804},"# docstring du module\n",[790,2144,2145,2147,2150],{"class":792,"line":985},[790,2146,1444],{"class":955},[790,2148,2149],{"class":800},"(geom.aire_cercle)       ",[790,2151,2152],{"class":804},"# docstring de la fonction\n",[1855,2154],{},[1845,2156,2158],{"id":2157},"schéma-dorganisation","Schéma d'organisation",[2160,2161],"illustration",{"alt":2162,"kind":2163,"src":2164,"svg":2165},"Le script main.py importe le module local geom.py et la bibliothèque standard math ; deux flèches partent du script vers chaque module.","mermaid","\u002Fillustrations\u002F2.nsi-tale\u002Ftd-langages-prog\u002Forganisation-modules.svg","\u003Csvg id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules\" xmlns=\"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg\" xmlns:xlink=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxlink\" class=\"illustration-svg flowchart\" viewBox=\"0 0 442 241\" role=\"graphics-document document\" aria-roledescription=\"flowchart-v2\">\u003Cstyle>#ill-2-nsi-tale-td-langages-prog-organisation-modules{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:14px;fill:var(--diagram-text);}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .error-icon{fill:#fdecec;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .error-text{fill:var(--diagram-text);stroke:var(--diagram-text);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-thickness-normal{stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-thickness-thick{stroke-width:3.5px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-pattern-solid{stroke-dasharray:0;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-thickness-invisible{stroke-width:0;fill:none;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-pattern-dashed{stroke-dasharray:3;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edge-pattern-dotted{stroke-dasharray:2;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .marker{fill:var(--diagram-line);stroke:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .marker.cross{stroke:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules svg{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:14px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules p{margin:0;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .label{font-family:Geist,Inter,system-ui,-apple-system,sans-serif;color:var(--diagram-text);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label text{fill:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label span{color:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label span p{background-color:transparent;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .label text,#ill-2-nsi-tale-td-langages-prog-organisation-modules span{fill:var(--diagram-text);color:var(--diagram-text);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node circle,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node ellipse,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node polygon,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node path{fill:var(--diagram-node-bg);stroke:var(--diagram-node-border);stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .rough-node .label text,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node .label text,#ill-2-nsi-tale-td-langages-prog-organisation-modules .image-shape .label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .icon-shape .label{text-anchor:middle;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .rough-node .label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node .label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .image-shape .label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .icon-shape .label{text-align:center;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node.clickable{cursor:pointer;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .root .anchor path{fill:var(--diagram-line)!important;stroke-width:0;stroke:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .arrowheadPath{fill:rgba(255, 255, 255, 0);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgePath .path{stroke:var(--diagram-line);stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .flowchart-link{stroke:var(--diagram-line);fill:none;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel{background-color:var(--diagram-surface);text-align:center;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel p{background-color:var(--diagram-surface);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel rect{opacity:0.5;background-color:var(--diagram-surface);fill:var(--diagram-surface);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .labelBkg{background-color:rgba(250, 251, 252, 0.5);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster rect{fill:var(--diagram-surface);stroke:var(--diagram-border);stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster text{fill:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster span{color:var(--diagram-line);}#ill-2-nsi-tale-td-langages-prog-organisation-modules div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Geist,Inter,system-ui,-apple-system,sans-serif;font-size:12px;background:var(--diagram-surface);border:1px solid var(--diagram-border);border-radius:2px;pointer-events:none;z-index:100;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .flowchartTitleText{text-anchor:middle;font-size:18px;fill:var(--diagram-text);}#ill-2-nsi-tale-td-langages-prog-organisation-modules rect.text{fill:none;stroke-width:0;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .icon-shape,#ill-2-nsi-tale-td-langages-prog-organisation-modules .image-shape{background-color:var(--diagram-surface);text-align:center;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .icon-shape p,#ill-2-nsi-tale-td-langages-prog-organisation-modules .image-shape p{background-color:var(--diagram-surface);padding:2px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .icon-shape .label rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules .image-shape .label rect{opacity:0.5;background-color:var(--diagram-surface);fill:var(--diagram-surface);}#ill-2-nsi-tale-td-langages-prog-organisation-modules .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node .neo-node{stroke:var(--diagram-node-border);}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].cluster rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node polygon{stroke:url(#ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node path{stroke:url(#ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient);stroke-width:1px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node .outer-path{filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node .neo-line path{stroke:var(--diagram-node-border);filter:none;}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node circle{stroke:url(#ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].node circle .state-start{fill:var(--diagram-text);}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].icon-shape .icon{fill:url(#ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-td-langages-prog-organisation-modules [data-look=\"neo\"].icon-shape .icon-neo path{stroke:url(#ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient);filter:drop-shadow( 1px 2px 2px rgba(185,185,185,1));}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node circle,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node ellipse,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node polygon,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node path{stroke-width:1.5px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgePath .path{stroke-width:1.5px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .nodeLabel,#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel,#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .messageText,#ill-2-nsi-tale-td-langages-prog-organisation-modules .actor text{font-family:Geist,Inter,system-ui,sans-serif!important;font-weight:500!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .nodeLabel,#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .nodeLabel p,#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster-label p{color:var(--diagram-text)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .nodeLabel .markdown-node-label,#ill-2-nsi-tale-td-langages-prog-organisation-modules .nodeLabel .markdown-node-label p{color:var(--diagram-text)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .stateLabel text,#ill-2-nsi-tale-td-langages-prog-organisation-modules .stateLabel{fill:var(--diagram-text)!important;font-weight:600!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel{padding:0px 6px;background-color:var(--diagram-surface)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel rect.background,#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel rect{fill:var(--diagram-surface)!important;opacity:1!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel .label text,#ill-2-nsi-tale-td-langages-prog-organisation-modules .edgeLabel text{fill:var(--diagram-line)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .cluster rect{rx:4px;ry:4px;stroke-width:1px!important;stroke-dasharray:3,3!important;fill:transparent!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .node rect,#ill-2-nsi-tale-td-langages-prog-organisation-modules .node polygon,#ill-2-nsi-tale-td-langages-prog-organisation-modules .stateGroup rect{rx:4px;ry:4px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules marker,#ill-2-nsi-tale-td-langages-prog-organisation-modules marker path{fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .marker{fill:var(--diagram-line)!important;stroke:var(--diagram-line)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .actor{stroke-width:1.5px;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .messageText,#ill-2-nsi-tale-td-langages-prog-organisation-modules .messageText tspan{fill:var(--diagram-text)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .titleText{fill:var(--diagram-text)!important;font-weight:600!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .note text,#ill-2-nsi-tale-td-langages-prog-organisation-modules .note .nodeLabel{fill:var(--diagram-line)!important;color:var(--diagram-line)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .statediagram-cluster rect{fill:transparent!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules .statediagram-state .divider{stroke:var(--diagram-border)!important;}#ill-2-nsi-tale-td-langages-prog-organisation-modules :root{--mermaid-font-family:Geist,Inter,system-ui,-apple-system,sans-serif;}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#eef0fc\"]{fill:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#eef0fc\"]{stroke:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#eef0fc\"]{stop-color:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(238, 240, 252)\"]{fill:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(238, 240, 252)\"]{stroke:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(238, 240, 252)\"]{stop-color:var(--diagram-node-bg)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#4948b8\"]{fill:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#4948b8\"]{stroke:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#4948b8\"]{stop-color:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(73, 72, 184)\"]{fill:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(73, 72, 184)\"]{stroke:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(73, 72, 184)\"]{stop-color:var(--diagram-node-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#c8cdf5\"]{fill:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#c8cdf5\"]{stroke:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#c8cdf5\"]{stop-color:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(200, 205, 245)\"]{fill:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(200, 205, 245)\"]{stroke:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(200, 205, 245)\"]{stop-color:var(--diagram-accent-soft)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#1f2127\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#1f2127\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#1f2127\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(31, 33, 39)\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(31, 33, 39)\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(31, 33, 39)\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#000000\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#000000\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#000000\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(0, 0, 0)\"]{fill:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(0, 0, 0)\"]{stroke:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(0, 0, 0)\"]{stop-color:var(--diagram-text)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#56595e\"]{fill:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#56595e\"]{stroke:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#56595e\"]{stop-color:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(86, 89, 94)\"]{fill:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(86, 89, 94)\"]{stroke:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(86, 89, 94)\"]{stop-color:var(--diagram-line)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#fafbfc\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#fafbfc\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#fafbfc\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(250, 251, 252)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(250, 251, 252)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(250, 251, 252)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#f3f4f6\"]{fill:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#f3f4f6\"]{stroke:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#f3f4f6\"]{stop-color:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(243, 244, 246)\"]{fill:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(243, 244, 246)\"]{stroke:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(243, 244, 246)\"]{stop-color:var(--diagram-surface-alt)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#c4c8cd\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#c4c8cd\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#c4c8cd\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(196, 200, 205)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(196, 200, 205)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(196, 200, 205)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#e5e7eb\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#e5e7eb\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#e5e7eb\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(229, 231, 235)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(229, 231, 235)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(229, 231, 235)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#e0e0e0\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#e0e0e0\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#e0e0e0\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(224, 224, 224)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(224, 224, 224)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(224, 224, 224)\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#EDF2AE\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#EDF2AE\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#EDF2AE\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(237, 242, 174)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(237, 242, 174)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(237, 242, 174)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#fff5ad\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#fff5ad\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#fff5ad\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(255, 245, 173)\"]{fill:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(255, 245, 173)\"]{stroke:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(255, 245, 173)\"]{stop-color:var(--diagram-surface)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"#666\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"#666\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"#666\"]{stop-color:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [fill=\"rgb(0, 6, 102)\"]{fill:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stroke=\"rgb(0, 6, 102)\"]{stroke:var(--diagram-border)}#ill-2-nsi-tale-td-langages-prog-organisation-modules [stop-color=\"rgb(0, 6, 102)\"]{stop-color:var(--diagram-border)}\u003C\u002Fstyle>\u003Cg>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\u003Cpath d=\"M 0 0 L 10 5 L 0 10 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"4.5\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"8\" markerHeight=\"8\" orient=\"auto\">\u003Cpath d=\"M 0 5 L 10 10 L 10 0 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"11.5\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"10.5\" markerHeight=\"14\" orient=\"auto\">\u003Cpath d=\"M 0 0 L 11.5 7 L 0 14 z\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 11.5 14\" refX=\"1\" refY=\"7\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11.5\" markerHeight=\"14\" orient=\"auto\">\u003Cpolygon points=\"0,7 11.5,14 11.5,0\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-circleEnd\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"11\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-circleStart\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-1\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 1; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-circleEnd-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refY=\"5\" refX=\"12.25\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-circleStart-margin\" class=\"marker flowchart-v2\" viewBox=\"0 0 10 10\" refX=\"-2\" refY=\"5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"14\" markerHeight=\"14\" orient=\"auto\">\u003Ccircle cx=\"5\" cy=\"5\" r=\"5\" class=\"arrowMarkerPath\" style=\"stroke-width: 0; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-crossEnd\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"12\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Cpath d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-crossStart\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 11 11\" refX=\"-1\" refY=\"5.2\" markerUnits=\"userSpaceOnUse\" markerWidth=\"11\" markerHeight=\"11\" orient=\"auto\">\u003Cpath d=\"M 1,1 l 9,9 M 10,1 l -9,9\" class=\"arrowMarkerPath\" style=\"stroke-width: 2; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-crossEnd-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"17.7\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\">\u003Cpath d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5;\"\u002F>\u003C\u002Fmarker>\u003Cmarker id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-crossStart-margin\" class=\"marker cross flowchart-v2\" viewBox=\"0 0 15 15\" refX=\"-3.5\" refY=\"7.5\" markerUnits=\"userSpaceOnUse\" markerWidth=\"12\" markerHeight=\"12\" orient=\"auto\">\u003Cpath d=\"M 1,1 L 14,14 M 1,14 L 14,1\" class=\"arrowMarkerPath\" style=\"stroke-width: 2.5; stroke-dasharray: 1, 0;\"\u002F>\u003C\u002Fmarker>\u003Cg class=\"root\">\u003Cg class=\"clusters\"\u002F>\u003Cg class=\"edgePaths\">\u003Cpath d=\"M147.734,81.964L137.654,88.386C127.573,94.809,107.411,107.655,97.331,119.827C87.25,132,87.25,143.5,87.25,149.25L87.25,155\" id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-L_S_G_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S_G_0\" data-points=\"W3sieCI6MTQ3LjczNDM3NSwieSI6ODEuOTYzNTQxNjY2NjY2NjZ9LHsieCI6ODcuMjUsInkiOjEyMC41fSx7IngiOjg3LjI1LCJ5IjoxNTl9XQ==\" data-look=\"classic\" marker-end=\"url(#ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointEnd)\"\u002F>\u003Cpath d=\"M263.766,81.964L273.846,88.386C283.927,94.809,304.089,107.655,314.169,119.827C324.25,132,324.25,143.5,324.25,149.25L324.25,155\" id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-L_S_M_0\" class=\"edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link\" style=\";\" data-edge=\"true\" data-et=\"edge\" data-id=\"L_S_M_0\" data-points=\"W3sieCI6MjYzLjc2NTYyNSwieSI6ODEuOTYzNTQxNjY2NjY2NjZ9LHsieCI6MzI0LjI1LCJ5IjoxMjAuNX0seyJ4IjozMjQuMjUsInkiOjE1OX1d\" data-look=\"classic\" marker-end=\"url(#ill-2-nsi-tale-td-langages-prog-organisation-modules_flowchart-v2-pointEnd)\"\u002F>\u003C\u002Fg>\u003Cg class=\"edgeLabels\">\u003Cg class=\"edgeLabel\" transform=\"translate(87.25, 120.5)\">\u003Cg class=\"label\" data-id=\"L_S_G_0\" transform=\"translate(0, -8.500000953674316)\">\u003Cg>\u003Crect class=\"background\" style=\"\" x=\"-43.140625\" y=\"-1.9999990463256836\" width=\"86.28125\" height=\"21\"\u002F>\u003Ctext y=\"-10.1\" text-anchor=\"middle\" style=\"\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\">\u003Ctspan font-style=\"normal\" class=\"text-inner-tspan\" font-weight=\"normal\">import\u003C\u002Ftspan>\u003Ctspan font-style=\"normal\" class=\"text-inner-tspan\" font-weight=\"normal\"> geom\u003C\u002Ftspan>\u003C\u002Ftspan>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"edgeLabel\" transform=\"translate(324.25, 120.5)\">\u003Cg class=\"label\" data-id=\"L_S_M_0\" transform=\"translate(0, -8.500000953674316)\">\u003Cg>\u003Crect class=\"background\" style=\"\" x=\"-41.265625\" y=\"-1.9999990463256836\" width=\"82.53125\" height=\"21\"\u002F>\u003Ctext y=\"-10.1\" text-anchor=\"middle\" style=\"\">\u003Ctspan class=\"text-outer-tspan row\" x=\"0\" y=\"-0.1em\" dy=\"1.1em\" text-anchor=\"middle\">\u003Ctspan font-style=\"normal\" class=\"text-inner-tspan\" font-weight=\"normal\">import\u003C\u002Ftspan>\u003Ctspan font-style=\"normal\" class=\"text-inner-tspan\" font-weight=\"normal\"> math\u003C\u002Ftspan>\u003C\u002Ftspan>\u003C\u002Ftext>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"nodes\">\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-flowchart-S-0\" data-look=\"classic\" transform=\"translate(205.75, 45)\">\u003Crect class=\"basic label-container\" style=\"\" x=\"-58.015625\" y=\"-33\" width=\"116.03125\" height=\"66\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-26.015625, -21)\">\u003Crect\u002F>\u003CforeignObject width=\"52.03125\" height=\"42\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>main.py\u003Cbr \u002F>(script)\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-flowchart-G-1\" data-look=\"classic\" transform=\"translate(87.25, 196)\">\u003Crect class=\"basic label-container\" style=\"\" x=\"-79.25\" y=\"-33\" width=\"158.5\" height=\"66\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-47.25, -21)\">\u003Crect\u002F>\u003CforeignObject width=\"94.5\" height=\"42\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>geom.py\u003Cbr \u002F>(module local)\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003Cg class=\"node default\" id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-flowchart-M-2\" data-look=\"classic\" transform=\"translate(324.25, 196)\">\u003Crect class=\"basic label-container\" style=\"\" x=\"-109.75\" y=\"-33\" width=\"219.5\" height=\"66\"\u002F>\u003Cg class=\"label\" style=\"\" transform=\"translate(-77.75, -21)\">\u003Crect\u002F>\u003CforeignObject width=\"155.5\" height=\"42\">\u003Cdiv xmlns=\"http:\u002F\u002Fwww.w3.org\u002F1999\u002Fxhtml\" style=\"display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;\">\u003Cspan class=\"nodeLabel\">\u003Cp>math\u003Cbr \u002F>(bibliothèque standard)\u003C\u002Fp>\u003C\u002Fspan>\u003C\u002Fdiv>\u003C\u002FforeignObject>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003C\u002Fg>\u003Cdefs>\u003Cfilter id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-drop-shadow\" height=\"130%\" width=\"130%\">\u003CfeDropShadow dx=\"4\" dy=\"4\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"\u002F>\u003C\u002Ffilter>\u003C\u002Fdefs>\u003Cdefs>\u003Cfilter id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-drop-shadow-small\" height=\"150%\" width=\"150%\">\u003CfeDropShadow dx=\"2\" dy=\"2\" stdDeviation=\"0\" flood-opacity=\"0.06\" flood-color=\"#000000\"\u002F>\u003C\u002Ffilter>\u003C\u002Fdefs>\u003ClinearGradient id=\"ill-2-nsi-tale-td-langages-prog-organisation-modules-gradient\" gradientUnits=\"objectBoundingBox\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\u003Cstop offset=\"0%\" stop-color=\"#4948b8\" stop-opacity=\"1\"\u002F>\u003Cstop offset=\"100%\" stop-color=\"#c4c8cd\" stop-opacity=\"1\"\u002F>\u003C\u002FlinearGradient>\u003C\u002Fsvg>",[1855,2167],{},[1845,2169,2171],{"id":2170},"à-retenir","À retenir",[598,2173,2174,2177],{},[602,2175,2176],{},"Un module utilisable = docstring + typage + exemples + tests.","\nLe code que vous écrivez aujourd'hui est lu par le vous de demain.",[1528,2179,2180],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}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 .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}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":786,"searchDepth":808,"depth":808,"links":2182},[],"Deck pour la séance sur modules, bibliothèques et création de modules documentés.",{},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite.slides",{"title":1841,"description":2183},"2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite.slides","S7DRMbrBZGTEhijBRhTrH8FiGKQkDlQckKM2S-D7DPw",{"id":1555,"title":1556,"bo":2190,"body":2191,"description":1832,"eval":1541,"extension":1542,"labo":1541,"meta":2416,"navigation":1549,"path":1834,"quizzes":2417,"readingTime":793,"seo":2418,"stem":1837,"tp":1541,"__hash__":1838},[588],{"type":590,"value":2192,"toc":2409},[2193,2195,2201,2203,2241,2243,2277,2279,2293,2295,2383,2407],[593,2194,1563],{"id":1562},[598,2196,2197],{},[602,2198,1568,2199,1571],{},[682,2200,684],{},[593,2202,1575],{"id":1574},[887,2204,2205,2217,2221,2231,2237],{},[890,2206,2207,1582,2209,1585,2211,1588,2213,1585,2215,1593],{},[602,2208,677],{},[682,2210,684],{},[602,2212,697],{},[682,2214,703],{},[602,2216,716],{},[890,2218,2219,1598],{},[602,2220,736],{},[890,2222,2223,1604,2225,726,2227,726,2229,617],{},[602,2224,1603],{},[682,2226,892],{},[682,2228,895],{},[682,2230,1611],{},[890,2232,2233,1604,2235,1619],{},[602,2234,1616],{},[682,2236,1006],{},[890,2238,2239,1625],{},[602,2240,1624],{},[593,2242,1629],{"id":1628},[649,2244,2245,2253],{},[652,2246,2247],{},[655,2248,2249,2251],{},[658,2250,1638],{},[658,2252,1641],{},[668,2254,2255,2263,2271],{},[655,2256,2257,2259],{},[673,2258,1648],{},[673,2260,2261,1653],{},[682,2262,1006],{},[655,2264,2265,2267],{},[673,2266,1658],{},[673,2268,1661,2269,1665],{},[682,2270,1664],{},[655,2272,2273,2275],{},[673,2274,1670],{},[673,2276,1673],{},[593,2278,1677],{"id":1676},[887,2280,2281,2285,2291],{},[890,2282,2283,1684],{},[682,2284,863],{},[890,2286,1687,2287,1691,2289,617],{},[682,2288,1690],{},[682,2290,1694],{},[890,2292,1697],{},[593,2294,1701],{"id":1700},[781,2296,2297],{"className":783,"code":1704,"language":785,"meta":786,"style":786},[682,2298,2299,2303,2307,2317,2321,2337,2341,2345,2351,2355,2359,2369],{"__ignoreMap":786},[790,2300,2301],{"class":792,"line":793},[790,2302,1711],{"class":804},[790,2304,2305],{"class":792,"line":808},[790,2306,1716],{"class":1040},[790,2308,2309,2311,2313,2315],{"class":792,"line":825},[790,2310,811],{"class":796},[790,2312,814],{"class":800},[790,2314,797],{"class":796},[790,2316,1077],{"class":800},[790,2318,2319],{"class":792,"line":840},[790,2320,982],{"emptyLinePlaceholder":981},[790,2322,2323,2325,2327,2329,2331,2333,2335],{"class":792,"line":985},[790,2324,1093],{"class":796},[790,2326,1097],{"class":1096},[790,2328,1100],{"class":800},[790,2330,1103],{"class":955},[790,2332,1106],{"class":800},[790,2334,1103],{"class":955},[790,2336,1111],{"class":800},[790,2338,2339],{"class":792,"line":997},[790,2340,1751],{"class":1040},[790,2342,2343],{"class":792,"line":1063},[790,2344,982],{"emptyLinePlaceholder":981},[790,2346,2347,2349],{"class":792,"line":1068},[790,2348,1128],{"class":796},[790,2350,1131],{"class":1040},[790,2352,2353],{"class":792,"line":1080},[790,2354,1137],{"class":1040},[790,2356,2357],{"class":792,"line":1085},[790,2358,1143],{"class":1040},[790,2360,2361,2363,2365,2367],{"class":792,"line":1090},[790,2362,1149],{"class":796},[790,2364,1152],{"class":800},[790,2366,1155],{"class":796},[790,2368,1780],{"class":955},[790,2370,2371,2373,2375,2377,2379,2381],{"class":792,"line":1114},[790,2372,1169],{"class":796},[790,2374,1172],{"class":800},[790,2376,1175],{"class":796},[790,2378,1152],{"class":800},[790,2380,1180],{"class":796},[790,2382,1183],{"class":955},[781,2384,2385],{"className":783,"code":1797,"language":785,"meta":786,"style":786},[682,2386,2387,2391,2397],{"__ignoreMap":786},[790,2388,2389],{"class":792,"line":793},[790,2390,1804],{"class":804},[790,2392,2393,2395],{"class":792,"line":808},[790,2394,797],{"class":796},[790,2396,1397],{"class":800},[790,2398,2399,2401,2403,2405],{"class":792,"line":825},[790,2400,1406],{"class":955},[790,2402,1409],{"class":800},[790,2404,1412],{"class":955},[790,2406,1821],{"class":800},[1528,2408,1824],{},{"title":786,"searchDepth":808,"depth":808,"links":2410},[2411,2412,2413,2414,2415],{"id":1562,"depth":808,"text":1563},{"id":1574,"depth":808,"text":1575},{"id":1628,"depth":808,"text":1629},{"id":1676,"depth":808,"text":1677},{"id":1700,"depth":808,"text":1701},{},[],{"title":1556,"description":1832},{"id":1840,"title":1841,"body":2420,"description":2183,"extension":1542,"meta":2704,"navigation":1549,"path":2185,"seo":2705,"stem":2187,"__hash__":2188},{"type":590,"value":2421,"toc":2702},[2422,2424,2428,2430,2432,2440,2442,2444,2484,2486,2488,2528,2532,2534,2536,2546,2552,2554,2556,2640,2642,2644,2686,2688,2690,2692,2694,2696,2700],[1845,2423,545],{"id":1847},[598,2425,1850,2426,1853],{},[622,2427],{"code":588},[1855,2429],{},[1845,2431,1860],{"id":1859},[887,2433,2434,2436,2438],{},[890,2435,1865],{},[890,2437,1868],{},[890,2439,1871],{},[1855,2441],{},[1845,2443,1877],{"id":1876},[649,2445,2446,2454],{},[652,2447,2448],{},[655,2449,2450,2452],{},[658,2451,660],{},[658,2453,663],{},[668,2455,2456,2464,2472,2478],{},[655,2457,2458,2460],{},[673,2459,677],{},[673,2461,1896,2462,1899],{},[682,2463,684],{},[655,2465,2466,2468],{},[673,2467,697],{},[673,2469,1906,2470],{},[682,2471,703],{},[655,2473,2474,2476],{},[673,2475,716],{},[673,2477,1915],{},[655,2479,2480,2482],{},[673,2481,736],{},[673,2483,1922],{},[1855,2485],{},[1845,2487,1928],{"id":1927},[781,2489,2490],{"className":783,"code":1931,"language":785,"meta":786,"style":786},[682,2491,2492,2498,2508,2518],{"__ignoreMap":786},[790,2493,2494,2496],{"class":792,"line":793},[790,2495,797],{"class":796},[790,2497,948],{"class":800},[790,2499,2500,2502,2504,2506],{"class":792,"line":808},[790,2501,811],{"class":796},[790,2503,814],{"class":800},[790,2505,797],{"class":796},[790,2507,1950],{"class":800},[790,2509,2510,2512,2514,2516],{"class":792,"line":825},[790,2511,811],{"class":796},[790,2513,814],{"class":800},[790,2515,797],{"class":796},[790,2517,1961],{"class":800},[790,2519,2520,2522,2524,2526],{"class":792,"line":840},[790,2521,797],{"class":796},[790,2523,845],{"class":800},[790,2525,848],{"class":796},[790,2527,1972],{"class":800},[598,2529,1975,2530,1978],{},[682,2531,863],{},[1855,2533],{},[1845,2535,1984],{"id":1983},[911,2537,2538,2542,2544],{},[890,2539,2540,1653],{},[682,2541,919],{},[890,2543,1993],{},[890,2545,1996],{},[598,2547,2548,2001,2550,2005],{},[682,2549,1444],{},[602,2551,2004],{},[1855,2553],{},[1845,2555,2011],{"id":2010},[781,2557,2558],{"className":783,"code":2014,"language":785,"meta":786,"style":786},[682,2559,2560,2564,2574,2578,2594,2598,2602,2608,2612,2616,2626],{"__ignoreMap":786},[790,2561,2562],{"class":792,"line":793},[790,2563,1716],{"class":1040},[790,2565,2566,2568,2570,2572],{"class":792,"line":808},[790,2567,811],{"class":796},[790,2569,814],{"class":800},[790,2571,797],{"class":796},[790,2573,1077],{"class":800},[790,2575,2576],{"class":792,"line":825},[790,2577,982],{"emptyLinePlaceholder":981},[790,2579,2580,2582,2584,2586,2588,2590,2592],{"class":792,"line":840},[790,2581,1093],{"class":796},[790,2583,1097],{"class":1096},[790,2585,1100],{"class":800},[790,2587,1103],{"class":955},[790,2589,1106],{"class":800},[790,2591,1103],{"class":955},[790,2593,1111],{"class":800},[790,2595,2596],{"class":792,"line":985},[790,2597,2055],{"class":1040},[790,2599,2600],{"class":792,"line":997},[790,2601,982],{"emptyLinePlaceholder":981},[790,2603,2604,2606],{"class":792,"line":1063},[790,2605,1128],{"class":796},[790,2607,1131],{"class":1040},[790,2609,2610],{"class":792,"line":1068},[790,2611,1137],{"class":1040},[790,2613,2614],{"class":792,"line":1080},[790,2615,1143],{"class":1040},[790,2617,2618,2620,2622,2624],{"class":792,"line":1085},[790,2619,1149],{"class":796},[790,2621,1152],{"class":800},[790,2623,1155],{"class":796},[790,2625,1780],{"class":955},[790,2627,2628,2630,2632,2634,2636,2638],{"class":792,"line":1090},[790,2629,1169],{"class":796},[790,2631,1172],{"class":800},[790,2633,1175],{"class":796},[790,2635,1152],{"class":800},[790,2637,1180],{"class":796},[790,2639,1183],{"class":955},[1855,2641],{},[1845,2643,2103],{"id":2102},[781,2645,2646],{"className":783,"code":2106,"language":785,"meta":786,"style":786},[682,2647,2648,2654,2658,2670,2678],{"__ignoreMap":786},[790,2649,2650,2652],{"class":792,"line":793},[790,2651,797],{"class":796},[790,2653,1397],{"class":800},[790,2655,2656],{"class":792,"line":808},[790,2657,982],{"emptyLinePlaceholder":981},[790,2659,2660,2662,2664,2666,2668],{"class":792,"line":825},[790,2661,1406],{"class":955},[790,2663,1409],{"class":800},[790,2665,1412],{"class":955},[790,2667,2129],{"class":800},[790,2669,2132],{"class":804},[790,2671,2672,2674,2676],{"class":792,"line":840},[790,2673,1444],{"class":955},[790,2675,2139],{"class":800},[790,2677,2142],{"class":804},[790,2679,2680,2682,2684],{"class":792,"line":985},[790,2681,1444],{"class":955},[790,2683,2149],{"class":800},[790,2685,2152],{"class":804},[1855,2687],{},[1845,2689,2158],{"id":2157},[2160,2691],{"alt":2162,"kind":2163,"src":2164,"svg":2165},[1855,2693],{},[1845,2695,2171],{"id":2170},[598,2697,2698,2177],{},[602,2699,2176],{},[1528,2701,2180],{},{"title":786,"searchDepth":808,"depth":808,"links":2703},[],{},{"title":1841,"description":2183},1788035585225]