[{"data":1,"prerenderedAt":3436},["ShallowReactive",2],{"navigation":3,"\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles":585,"\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles__counterpart":1863,"\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles__slides":2248,"annexes-memo:\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles":2728,"annexes-slides:\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles":3028},[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":199,"bo":587,"body":589,"description":1850,"eval":1851,"extension":1852,"labo":1851,"meta":1853,"navigation":1001,"path":200,"quizzes":1854,"readingTime":680,"seo":1861,"stem":201,"tp":1851,"__hash__":1862},"cours\u002F0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles.md",[588],"SH02",{"type":590,"value":591,"toc":1834},"minimark",[592,597,611,639,642,649,667,719,726,734,752,771,775,785,821,824,830,833,839,844,916,934,962,968,981,1049,1063,1203,1213,1231,1235,1238,1305,1308,1339,1502,1527,1550,1554,1568,1609,1618,1624,1627,1697,1724,1728,1785,1789,1792,1824,1830],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,610],"p",{},"Imaginez devoir afficher « Bonjour » dix fois. Avec ce que vous savez, il\nfaudrait écrire dix lignes de ",[602,603,604],"code",{},"print",". Pour cent fois, ce serait absurde. Les\nordinateurs sont conçus pour ",[607,608,609],"strong",{},"répéter"," rapidement et sans erreur — c'est même\nl'une des choses qu'ils font le mieux.",[598,612,613,614,618,619,622,623,626,627,630,631,634,635,638],{},"L'instruction qui dit ",[615,616,617],"em",{},"« recommence ce bloc plusieurs fois »"," s'appelle une\n",[607,620,621],{},"boucle",". Python en propose deux : ",[602,624,625],{},"for",", quand on ",[607,628,629],{},"sait à l'avance"," combien\nde répétitions on veut, et ",[602,632,633],{},"while",", quand on veut continuer ",[607,636,637],{},"tant qu'une\ncondition reste vraie",".",[640,641],"bo-ref",{"code":588},[593,643,645,646,648],{"id":644},"la-boucle-for-bornée","La boucle ",[602,647,625],{}," — bornée",[598,650,651,652,655,656,659,660,662,663,666],{},"Une boucle est dite ",[607,653,654],{},"bornée"," quand le nombre de tours est ",[607,657,658],{},"fixé d'avance",".\nEn Python, on l'écrit avec ",[602,661,625],{}," et la fonction ",[602,664,665],{},"range"," :",[668,669,674],"pre",{"className":670,"code":671,"language":672,"meta":673,"style":673},"language-python shiki shiki-themes github-light github-light github-dark","for i in range(5):\n    print(\"Bonjour\")\n","python","",[602,675,676,704],{"__ignoreMap":673},[677,678,681,684,688,691,695,698,701],"span",{"class":679,"line":680},"line",1,[677,682,625],{"class":683},"s8jYJ",[677,685,687],{"class":686},"sxrX7"," i ",[677,689,690],{"class":683},"in",[677,692,694],{"class":693},"sBjJW"," range",[677,696,697],{"class":686},"(",[677,699,700],{"class":693},"5",[677,702,703],{"class":686},"):\n",[677,705,707,710,712,716],{"class":679,"line":706},2,[677,708,709],{"class":693},"    print",[677,711,697],{"class":686},[677,713,715],{"class":714},"sIIMD","\"Bonjour\"",[677,717,718],{"class":686},")\n",[598,720,721,722,725],{},"Ce programme affiche ",[607,723,724],{},"cinq fois"," la même chose :",[668,727,732],{"className":728,"code":730,"language":731,"meta":673},[729],"language-text","Bonjour\nBonjour\nBonjour\nBonjour\nBonjour\n","text",[602,733,730],{"__ignoreMap":673},[598,735,736,737,748,749,751],{},"Lecture : ",[615,738,739,740,743,744,747],{},"« pour chaque valeur ",[602,741,742],{},"i"," prise dans ",[602,745,746],{},"range(5)",", exécuter le bloc »",".\nÀ chaque tour, la variable ",[602,750,742],{}," prend la valeur suivante : 0, 1, 2, 3, 4.",[753,754,755],"warning",{},[598,756,757,762,763,766,767,770],{},[607,758,759,761],{},[602,760,746],{}," produit 0, 1, 2, 3, 4"," — c'est-à-dire ",[607,764,765],{},"cinq valeurs",", mais\nqui s'arrêtent ",[607,768,769],{},"avant 5",". La borne supérieure n'est jamais atteinte. C'est\nun piège classique à mémoriser une bonne fois pour toutes.",[593,772,774],{"id":773},"utiliser-la-variable-de-boucle","Utiliser la variable de boucle",[598,776,777,778,780,781,784],{},"La variable ",[602,779,742],{}," (ou tout autre nom que vous choisissez) ",[607,782,783],{},"peut être utilisée","\nà l'intérieur de la boucle :",[786,787,788],"python-snippet",{},[668,789,791],{"className":670,"code":790,"language":672,"meta":673,"style":673},"for i in range(5):\n    print(\"Tour numéro\", i)\n",[602,792,793,809],{"__ignoreMap":673},[677,794,795,797,799,801,803,805,807],{"class":679,"line":680},[677,796,625],{"class":683},[677,798,687],{"class":686},[677,800,690],{"class":683},[677,802,694],{"class":693},[677,804,697],{"class":686},[677,806,700],{"class":693},[677,808,703],{"class":686},[677,810,811,813,815,818],{"class":679,"line":706},[677,812,709],{"class":693},[677,814,697],{"class":686},[677,816,817],{"class":714},"\"Tour numéro\"",[677,819,820],{"class":686},", i)\n",[598,822,823],{},"Affichage :",[668,825,828],{"className":826,"code":827,"language":731,"meta":673},[729],"Tour numéro 0\nTour numéro 1\nTour numéro 2\nTour numéro 3\nTour numéro 4\n",[602,829,827],{"__ignoreMap":673},[598,831,832],{},"Cela rend les boucles bien plus puissantes que de simples répétitions\nidentiques.",[593,834,836,837],{"id":835},"varier-range","Varier ",[602,838,665],{},[598,840,841,843],{},[602,842,665],{}," accepte plusieurs formes :",[845,846,847,863],"table",{},[848,849,850],"thead",{},[851,852,853,857,860],"tr",{},[854,855,856],"th",{},"Écriture",[854,858,859],{},"Valeurs produites",[854,861,862],{},"Combien de tours",[864,865,866,878,890,903],"tbody",{},[851,867,868,873,876],{},[869,870,871],"td",{},[602,872,746],{},[869,874,875],{},"0, 1, 2, 3, 4",[869,877,700],{},[851,879,880,885,888],{},[869,881,882],{},[602,883,884],{},"range(1, 6)",[869,886,887],{},"1, 2, 3, 4, 5",[869,889,700],{},[851,891,892,897,900],{},[869,893,894],{},[602,895,896],{},"range(2, 10, 2)",[869,898,899],{},"2, 4, 6, 8",[869,901,902],{},"4",[851,904,905,910,913],{},[869,906,907],{},[602,908,909],{},"range(10, 0, -1)",[869,911,912],{},"10, 9, 8, …, 1",[869,914,915],{},"10",[598,917,918,919,922,923,926,927,930,931,638],{},"Avec deux arguments, c'est ",[602,920,921],{},"range(début, fin)"," — toujours, la borne ",[602,924,925],{},"fin"," est\n",[607,928,929],{},"exclue",". Avec trois arguments, le dernier est le ",[607,932,933],{},"pas",[935,936,940,946],"self-eval-qcm",{"correct":937,"explanation":938,"slug":939},"2","range(3,8) produit 3,4,5,6,7 — soit 5 valeurs.","boucles-c1",[941,942,943],"template",{"v-slot:question":673},[598,944,945],{},"Combien de tours dans for i in range(3, 8): ?",[941,947,948],{"v-slot:choices":673},[949,950,951,955,957,959],"ul",{},[952,953,954],"li",{},"3",[952,956,902],{},[952,958,700],{},[952,960,961],{},"8",[593,963,645,965,967],{"id":964},"la-boucle-while-non-bornée",[602,966,633],{}," — non bornée",[598,969,970,971,974,975,978,979,666],{},"Parfois, on ",[607,972,973],{},"ne sait pas à l'avance"," combien de tours seront nécessaires —\nseulement la ",[607,976,977],{},"condition"," qui doit rester vraie pour continuer. C'est le rôle\nde ",[602,980,633],{},[668,982,984],{"className":670,"code":983,"language":672,"meta":673,"style":673},"n = 1\n\nwhile n \u003C 100:\n    n = n * 2\n\nprint(n)\n",[602,985,986,997,1003,1020,1036,1041],{"__ignoreMap":673},[677,987,988,991,994],{"class":679,"line":680},[677,989,990],{"class":686},"n ",[677,992,993],{"class":683},"=",[677,995,996],{"class":693}," 1\n",[677,998,999],{"class":679,"line":706},[677,1000,1002],{"emptyLinePlaceholder":1001},true,"\n",[677,1004,1006,1008,1011,1014,1017],{"class":679,"line":1005},3,[677,1007,633],{"class":683},[677,1009,1010],{"class":686}," n ",[677,1012,1013],{"class":683},"\u003C",[677,1015,1016],{"class":693}," 100",[677,1018,1019],{"class":686},":\n",[677,1021,1023,1026,1028,1030,1033],{"class":679,"line":1022},4,[677,1024,1025],{"class":686},"    n ",[677,1027,993],{"class":683},[677,1029,1010],{"class":686},[677,1031,1032],{"class":683},"*",[677,1034,1035],{"class":693}," 2\n",[677,1037,1039],{"class":679,"line":1038},5,[677,1040,1002],{"emptyLinePlaceholder":1001},[677,1042,1044,1046],{"class":679,"line":1043},6,[677,1045,604],{"class":693},[677,1047,1048],{"class":686},"(n)\n",[598,1050,736,1051,1062],{},[615,1052,1053,1054,1057,1058,1061],{},"« tant que ",[602,1055,1056],{},"n \u003C 100",", faire ",[602,1059,1060],{},"n = n * 2"," »",". Python recommence le\nbloc tant que la condition est vraie. Déroulons :",[845,1064,1065,1088],{},[848,1066,1067],{},[851,1068,1069,1072,1079,1085],{},[854,1070,1071],{},"Tour",[854,1073,1074,1075,1078],{},"Valeur de ",[602,1076,1077],{},"n"," avant",[854,1080,1081,1082,1084],{},"Condition ",[602,1083,1056],{}," ?",[854,1086,1087],{},"Action",[864,1089,1090,1105,1118,1131,1144,1158,1173,1188],{},[851,1091,1092,1095,1097,1100],{},[869,1093,1094],{},"1",[869,1096,1094],{},[869,1098,1099],{},"vraie",[869,1101,1102,1104],{},[602,1103,1077],{}," devient 2",[851,1106,1107,1109,1111,1113],{},[869,1108,937],{},[869,1110,937],{},[869,1112,1099],{},[869,1114,1115,1117],{},[602,1116,1077],{}," devient 4",[851,1119,1120,1122,1124,1126],{},[869,1121,954],{},[869,1123,902],{},[869,1125,1099],{},[869,1127,1128,1130],{},[602,1129,1077],{}," devient 8",[851,1132,1133,1135,1137,1139],{},[869,1134,902],{},[869,1136,961],{},[869,1138,1099],{},[869,1140,1141,1143],{},[602,1142,1077],{}," devient 16",[851,1145,1146,1148,1151,1153],{},[869,1147,700],{},[869,1149,1150],{},"16",[869,1152,1099],{},[869,1154,1155,1157],{},[602,1156,1077],{}," devient 32",[851,1159,1160,1163,1166,1168],{},[869,1161,1162],{},"6",[869,1164,1165],{},"32",[869,1167,1099],{},[869,1169,1170,1172],{},[602,1171,1077],{}," devient 64",[851,1174,1175,1178,1181,1183],{},[869,1176,1177],{},"7",[869,1179,1180],{},"64",[869,1182,1099],{},[869,1184,1185,1187],{},[602,1186,1077],{}," devient 128",[851,1189,1190,1192,1195,1200],{},[869,1191,961],{},[869,1193,1194],{},"128",[869,1196,1197],{},[607,1198,1199],{},"fausse",[869,1201,1202],{},"sortir de la boucle",[598,1204,1205,1206,1209,1210,1212],{},"Le ",[602,1207,1208],{},"print(n)"," final affiche ",[607,1211,1194],{},". Avant d'écrire cette boucle, on aurait été\nincapable de prédire qu'il y aurait exactement 7 tours.",[1214,1215,1217],"callout",{"type":1216},"info",[598,1218,1219,1222,1223,1226,1227,1230],{},[607,1220,1221],{},"Bornée vs non bornée"," : la différence ne porte pas sur le nombre de tours\nen lui-même, mais sur le fait qu'on le ",[607,1224,1225],{},"connaît à l'écriture"," (bornée) ou\nqu'il dépend du ",[607,1228,1229],{},"déroulement"," (non bornée).",[593,1232,1234],{"id":1233},"bornée-ou-non-bornée-tableau-de-décision","Bornée ou non bornée ? Tableau de décision",[598,1236,1237],{},"Pour chaque situation, on indique le type de boucle approprié, puis on\nmatérialise l'idée par un mini-snippet Python juste après le tableau :",[845,1239,1240,1253],{},[848,1241,1242],{},[851,1243,1244,1247,1250],{},[854,1245,1246],{},"Situation",[854,1248,1249],{},"Type",[854,1251,1252],{},"Pourquoi",[864,1254,1255,1268,1281,1293],{},[851,1256,1257,1260,1265],{},[869,1258,1259],{},"Afficher les nombres de 1 à 100",[869,1261,1262,1264],{},[602,1263,625],{}," (bornée)",[869,1266,1267],{},"on sait : 100 tours",[851,1269,1270,1273,1278],{},[869,1271,1272],{},"Répéter une question jusqu'à obtenir une bonne réponse",[869,1274,1275,1277],{},[602,1276,633],{}," (non bornée)",[869,1279,1280],{},"on ne sait pas combien d'essais",[851,1282,1283,1286,1290],{},[869,1284,1285],{},"Parcourir chaque caractère d'un mot",[869,1287,1288,1264],{},[602,1289,625],{},[869,1291,1292],{},"autant de tours que de lettres",[851,1294,1295,1298,1302],{},[869,1296,1297],{},"Continuer un jeu tant que le joueur a des points",[869,1299,1300,1277],{},[602,1301,633],{},[869,1303,1304],{},"dépend des coups joués",[598,1306,1307],{},"Les snippets correspondants, ligne par ligne :",[1309,1310,1311],"note",{},[598,1312,1313,1320,1321,1324,1325,1328,1329,1331,1332,1335,1336,1338],{},[607,1314,1315,1317,1318,638],{},[602,1316,625],{}," ne sert pas qu'avec ",[602,1319,665],{}," Une ",[607,1322,1323],{},"chaîne de caractères"," (comme\n",[602,1326,1327],{},"\"Python\"",") peut elle aussi être parcourue caractère par caractère par un\n",[602,1330,625],{}," : à chaque tour, la variable prend la valeur d'une lettre, dans l'ordre.\nOn dit qu'une chaîne est ",[607,1333,1334],{},"parcourable"," au même titre qu'un ",[602,1337,665],{},". C'est\nce qu'illustre le 3ᵉ onglet ci-dessous.",[1340,1341,1342,1377,1424,1451],"code-group",{},[668,1343,1346],{"className":670,"code":1344,"filename":1345,"language":672,"meta":673,"style":673},"for i in range(1, 101):\n    print(i)\n","1 à 100",[602,1347,1348,1370],{"__ignoreMap":673},[677,1349,1350,1352,1354,1356,1358,1360,1362,1365,1368],{"class":679,"line":680},[677,1351,625],{"class":683},[677,1353,687],{"class":686},[677,1355,690],{"class":683},[677,1357,694],{"class":693},[677,1359,697],{"class":686},[677,1361,1094],{"class":693},[677,1363,1364],{"class":686},", ",[677,1366,1367],{"class":693},"101",[677,1369,703],{"class":686},[677,1371,1372,1374],{"class":679,"line":706},[677,1373,709],{"class":693},[677,1375,1376],{"class":686},"(i)\n",[668,1378,1381],{"className":670,"code":1379,"filename":1380,"language":672,"meta":673,"style":673},"# demander() est ici une fonction imaginaire (saisie utilisateur).\nreponse = \"\"\nwhile reponse != \"Paris\":\n    reponse = demander()\n","Question jusqu'à bonne réponse",[602,1382,1383,1389,1399,1414],{"__ignoreMap":673},[677,1384,1385],{"class":679,"line":680},[677,1386,1388],{"class":1387},"sCsY4","# demander() est ici une fonction imaginaire (saisie utilisateur).\n",[677,1390,1391,1394,1396],{"class":679,"line":706},[677,1392,1393],{"class":686},"reponse ",[677,1395,993],{"class":683},[677,1397,1398],{"class":714}," \"\"\n",[677,1400,1401,1403,1406,1409,1412],{"class":679,"line":1005},[677,1402,633],{"class":683},[677,1404,1405],{"class":686}," reponse ",[677,1407,1408],{"class":683},"!=",[677,1410,1411],{"class":714}," \"Paris\"",[677,1413,1019],{"class":686},[677,1415,1416,1419,1421],{"class":679,"line":1022},[677,1417,1418],{"class":686},"    reponse ",[677,1420,993],{"class":683},[677,1422,1423],{"class":686}," demander()\n",[668,1425,1428],{"className":670,"code":1426,"filename":1427,"language":672,"meta":673,"style":673},"for lettre in \"Python\":\n    print(lettre)\n","Lettres d'un mot",[602,1429,1430,1444],{"__ignoreMap":673},[677,1431,1432,1434,1437,1439,1442],{"class":679,"line":680},[677,1433,625],{"class":683},[677,1435,1436],{"class":686}," lettre ",[677,1438,690],{"class":683},[677,1440,1441],{"class":714}," \"Python\"",[677,1443,1019],{"class":686},[677,1445,1446,1448],{"class":679,"line":706},[677,1447,709],{"class":693},[677,1449,1450],{"class":686},"(lettre)\n",[668,1452,1455],{"className":670,"code":1453,"filename":1454,"language":672,"meta":673,"style":673},"# perdre() est ici une fonction imaginaire (points perdus à ce tour).\npoints = 100\nwhile points > 0:\n    points = points - perdre()\n","Tant qu'il reste des points",[602,1456,1457,1462,1472,1487],{"__ignoreMap":673},[677,1458,1459],{"class":679,"line":680},[677,1460,1461],{"class":1387},"# perdre() est ici une fonction imaginaire (points perdus à ce tour).\n",[677,1463,1464,1467,1469],{"class":679,"line":706},[677,1465,1466],{"class":686},"points ",[677,1468,993],{"class":683},[677,1470,1471],{"class":693}," 100\n",[677,1473,1474,1476,1479,1482,1485],{"class":679,"line":1005},[677,1475,633],{"class":683},[677,1477,1478],{"class":686}," points ",[677,1480,1481],{"class":683},">",[677,1483,1484],{"class":693}," 0",[677,1486,1019],{"class":686},[677,1488,1489,1492,1494,1496,1499],{"class":679,"line":1022},[677,1490,1491],{"class":686},"    points ",[677,1493,993],{"class":683},[677,1495,1478],{"class":686},[677,1497,1498],{"class":683},"-",[677,1500,1501],{"class":686}," perdre()\n",[598,1503,1504,1505,1508,1509,1512,1513,1516,1517,1520,1521,1523,1524,1526],{},"Les fonctions ",[602,1506,1507],{},"demander()"," et ",[602,1510,1511],{},"perdre()"," sont là ",[607,1514,1515],{},"à titre d'illustration"," —\nce sont des fonctions imaginaires qui représenteraient une saisie utilisateur\nou un coup perdu. Vous apprendrez à écrire vos propres fonctions au cours\nsuivant. Pour l'instant, ce qu'il faut voir, c'est la ",[607,1518,1519],{},"structure"," de la\nboucle : ",[602,1522,625],{}," quand le nombre de tours est connu d'avance, ",[602,1525,633],{}," quand il\ndépend de ce qui se passe pendant l'exécution.",[935,1528,1532,1537],{"correct":1529,"explanation":1530,"slug":1531},"0","On parcourt chaque lettre du mot — le nombre de tours est connu : c'est la longueur du mot.","boucles-c2",[941,1533,1534],{"v-slot:question":673},[598,1535,1536],{},"Pour compter les voyelles d'un mot donné, quel type de boucle est le plus naturel ?",[941,1538,1539],{"v-slot:choices":673},[949,1540,1541,1544,1547],{},[952,1542,1543],{},"for bornée",[952,1545,1546],{},"while non bornée",[952,1548,1549],{},"aucune des deux",[593,1551,1553],{"id":1552},"le-piège-mortel-la-boucle-infinie","Le piège mortel : la boucle infinie",[598,1555,1556,1557,1559,1560,1563,1564,1567],{},"Une boucle ",[602,1558,633],{}," doit ",[607,1561,1562],{},"finir un jour",". Pour cela, la condition doit pouvoir\ndevenir fausse — et donc, quelque chose ",[607,1565,1566],{},"dans la boucle"," doit la faire\névoluer. Sinon, le programme tourne indéfiniment.",[668,1569,1571],{"className":670,"code":1570,"language":672,"meta":673,"style":673},"# DANGER : boucle infinie\nn = 1\nwhile n \u003C 100:\n    print(n)\n    # rien ne change n... la condition reste vraie pour toujours\n",[602,1572,1573,1578,1586,1598,1604],{"__ignoreMap":673},[677,1574,1575],{"class":679,"line":680},[677,1576,1577],{"class":1387},"# DANGER : boucle infinie\n",[677,1579,1580,1582,1584],{"class":679,"line":706},[677,1581,990],{"class":686},[677,1583,993],{"class":683},[677,1585,996],{"class":693},[677,1587,1588,1590,1592,1594,1596],{"class":679,"line":1005},[677,1589,633],{"class":683},[677,1591,1010],{"class":686},[677,1593,1013],{"class":683},[677,1595,1016],{"class":693},[677,1597,1019],{"class":686},[677,1599,1600,1602],{"class":679,"line":1022},[677,1601,709],{"class":693},[677,1603,1048],{"class":686},[677,1605,1606],{"class":679,"line":1038},[677,1607,1608],{"class":1387},"    # rien ne change n... la condition reste vraie pour toujours\n",[753,1610,1611],{},[598,1612,1613,1614,1617],{},"Si vous lancez accidentellement une boucle infinie, le programme ne s'arrête\nplus tout seul. Sur un éditeur en ligne, fermez l'onglet ou cliquez sur\n« arrêter ». Vérifiez ",[607,1615,1616],{},"toujours"," qu'une variable de la condition change à\nl'intérieur du bloc.",[593,1619,1621,1622],{"id":1620},"exemple-complet-de-while","Exemple complet de ",[602,1623,633],{},[598,1625,1626],{},"Un compte à rebours qui s'arrête quand on atteint zéro :",[786,1628,1629],{},[668,1630,1632],{"className":670,"code":1631,"language":672,"meta":673,"style":673},"nombre = 10\n\nwhile nombre > 0:\n    print(nombre)\n    nombre = nombre - 1\n\nprint(\"Décollage !\")\n",[602,1633,1634,1644,1648,1661,1668,1681,1685],{"__ignoreMap":673},[677,1635,1636,1639,1641],{"class":679,"line":680},[677,1637,1638],{"class":686},"nombre ",[677,1640,993],{"class":683},[677,1642,1643],{"class":693}," 10\n",[677,1645,1646],{"class":679,"line":706},[677,1647,1002],{"emptyLinePlaceholder":1001},[677,1649,1650,1652,1655,1657,1659],{"class":679,"line":1005},[677,1651,633],{"class":683},[677,1653,1654],{"class":686}," nombre ",[677,1656,1481],{"class":683},[677,1658,1484],{"class":693},[677,1660,1019],{"class":686},[677,1662,1663,1665],{"class":679,"line":1022},[677,1664,709],{"class":693},[677,1666,1667],{"class":686},"(nombre)\n",[677,1669,1670,1673,1675,1677,1679],{"class":679,"line":1038},[677,1671,1672],{"class":686},"    nombre ",[677,1674,993],{"class":683},[677,1676,1654],{"class":686},[677,1678,1498],{"class":683},[677,1680,996],{"class":693},[677,1682,1683],{"class":679,"line":1043},[677,1684,1002],{"emptyLinePlaceholder":1001},[677,1686,1688,1690,1692,1695],{"class":679,"line":1687},7,[677,1689,604],{"class":693},[677,1691,697],{"class":686},[677,1693,1694],{"class":714},"\"Décollage !\"",[677,1696,718],{"class":686},[598,1698,1699,1700,1703,1704,1706,1707,1710,1711,1713,1714,1716,1717,1719,1720,1723],{},"À chaque tour, ",[602,1701,1702],{},"nombre"," diminue de 1. Au tour où ",[602,1705,1702],{}," vaut 1, la condition\n",[602,1708,1709],{},"nombre > 0"," est encore vraie : on affiche ",[602,1712,1094],{},", puis ",[602,1715,1702],{}," devient ",[602,1718,1529],{},". Le\ntour suivant, la condition est fausse : on sort, et le ",[602,1721,1722],{},"print(\"Décollage !\")","\nfinal s'exécute.",[593,1725,1727],{"id":1726},"pièges-courants","Pièges courants",[753,1729,1730],{},[949,1731,1732,1755,1766,1775],{},[952,1733,1734,1749,1750,1745,1752,1754],{},[607,1735,1736,1739,1740,1742,1743,1745,1746],{},[602,1737,1738],{},"range(n)"," produit ",[602,1741,1077],{}," valeurs de ",[602,1744,1529],{}," à ",[602,1747,1748],{},"n-1",", pas de ",[602,1751,1094],{},[602,1753,1077],{},". Ne\njamais l'oublier.",[952,1756,1757,1765],{},[607,1758,1759,1760,1762,1763],{},"Modifier ",[602,1761,742],{}," dans une boucle ",[602,1764,625],{}," est mal vu : Python le ré-assignera\nau tour suivant de toute façon. Inutile et trompeur.",[952,1767,1768,1771,1772,1774],{},[607,1769,1770],{},"Boucle infinie"," : toujours vérifier qu'une variable de la condition\n",[602,1773,633],{}," change dans le bloc.",[952,1776,1777,1780,1781,1784],{},[607,1778,1779],{},"Indentation"," : comme pour les ",[602,1782,1783],{},"if",", le bloc répété est décalé de 4\nespaces. Sans indentation, Python refuse de comprendre.",[593,1786,1788],{"id":1787},"pour-aller-plus-loin","Pour aller plus loin",[598,1790,1791],{},"On peut aussi parcourir directement une chaîne ou une liste :",[668,1793,1795],{"className":670,"code":1794,"language":672,"meta":673,"style":673},"mot = \"Python\"\nfor lettre in mot:\n    print(lettre)\n",[602,1796,1797,1807,1818],{"__ignoreMap":673},[677,1798,1799,1802,1804],{"class":679,"line":680},[677,1800,1801],{"class":686},"mot ",[677,1803,993],{"class":683},[677,1805,1806],{"class":714}," \"Python\"\n",[677,1808,1809,1811,1813,1815],{"class":679,"line":706},[677,1810,625],{"class":683},[677,1812,1436],{"class":686},[677,1814,690],{"class":683},[677,1816,1817],{"class":686}," mot:\n",[677,1819,1820,1822],{"class":679,"line":1005},[677,1821,709],{"class":693},[677,1823,1450],{"class":686},[598,1825,1826,1827,1829],{},"Cela affiche chaque lettre du mot, une par ligne. C'est encore une boucle\n",[607,1828,654],{}," (autant de tours que de lettres), juste écrite différemment.",[1831,1832,1833],"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 .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 .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 .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":673,"searchDepth":706,"depth":706,"links":1835},[1836,1837,1839,1840,1842,1844,1845,1846,1848,1849],{"id":595,"depth":706,"text":596},{"id":644,"depth":706,"text":1838},"La boucle for — bornée",{"id":773,"depth":706,"text":774},{"id":835,"depth":706,"text":1841},"Varier range",{"id":964,"depth":706,"text":1843},"La boucle while — non bornée",{"id":1233,"depth":706,"text":1234},{"id":1552,"depth":706,"text":1553},{"id":1620,"depth":706,"text":1847},"Exemple complet de while",{"id":1726,"depth":706,"text":1727},{"id":1787,"depth":706,"text":1788},"Répéter des instructions, soit un nombre de fois connu d'avance (for), soit jusqu'à ce qu'une condition cesse (while).",null,"md",{},[1855,1859],{"slug":939,"kind":1856,"question":945,"choices":1857,"correct":937,"multi":1858,"explanation":938},"qcm",[954,902,700,961],false,{"slug":1531,"kind":1856,"question":1536,"choices":1860,"correct":1529,"multi":1858,"explanation":1530},[1543,1546,1549],{"title":199,"description":1850},"DG14t_bR0ZkJsl100k60wzOiCccuwTgjF_f-kFWwTqg",{"id":1864,"title":1865,"bo":1866,"body":1867,"description":2241,"eval":1851,"extension":1852,"labo":1851,"meta":2242,"navigation":1858,"path":2243,"quizzes":2244,"readingTime":680,"seo":2245,"stem":2246,"tp":1851,"__hash__":2247},"coursMemo\u002F0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles.memo.md","Boucles — l'essentiel",[588],{"type":590,"value":1868,"toc":2232},[1869,1873,1889,1893,1941,1945,2022,2026,2106,2110,2183,2185,2218,2222,2229],[593,1870,1872],{"id":1871},"en-une-phrase","En une phrase",[598,1874,1875,1877,1878,1881,1882,1884,1885,1888],{},[602,1876,625],{}," répète un ",[607,1879,1880],{},"nombre de tours connu d'avance"," (boucle bornée). ",[602,1883,633],{},"\nrépète ",[607,1886,1887],{},"tant qu'une condition reste vraie"," (boucle non bornée).",[593,1890,1892],{"id":1891},"à-mémoriser","À mémoriser",[949,1894,1895,1907,1917,1926,1932],{},[952,1896,1897,1900,1901,1904,1905,638],{},[607,1898,1899],{},"Bornée"," : nombre de tours ",[607,1902,1903],{},"connu à l'écriture"," → ",[602,1906,625],{},[952,1908,1909,1900,1912,1904,1915,638],{},[607,1910,1911],{},"Non bornée",[607,1913,1914],{},"dépend de l'exécution",[602,1916,633],{},[952,1918,1919,1921,1922,1925],{},[602,1920,1738],{}," produit les nombres ",[607,1923,1924],{},"0, 1, … n-1"," (n valeurs, n exclu).",[952,1927,1928,1929,638],{},"Le corps d'une boucle est ",[607,1930,1931],{},"indenté de 4 espaces",[952,1933,1934,1935,1364,1937,1940],{},"Dans ",[602,1936,633],{},[607,1938,1939],{},"quelque chose dans la boucle doit faire évoluer"," la\ncondition, sinon → boucle infinie.",[593,1942,1944],{"id":1943},"syntaxe-python","Syntaxe Python",[845,1946,1947,1957],{},[848,1948,1949],{},[851,1950,1951,1954],{},[854,1952,1953],{},"Forme",[854,1955,1956],{},"Effet",[864,1958,1959,1972,1984,1996,2009],{},[851,1960,1961,1966],{},[869,1962,1963],{},[602,1964,1965],{},"for i in range(5):",[869,1967,1968,1969,1971],{},"tours pour ",[602,1970,742],{}," = 0, 1, 2, 3, 4",[851,1973,1974,1979],{},[869,1975,1976],{},[602,1977,1978],{},"for i in range(1, 6):",[869,1980,1968,1981,1983],{},[602,1982,742],{}," = 1, 2, 3, 4, 5",[851,1985,1986,1991],{},[869,1987,1988],{},[602,1989,1990],{},"for i in range(0, 10, 2):",[869,1992,1968,1993,1995],{},[602,1994,742],{}," = 0, 2, 4, 6, 8",[851,1997,1998,2003],{},[869,1999,2000],{},[602,2001,2002],{},"for lettre in mot:",[869,2004,2005,2006],{},"tour par lettre de la chaîne ",[602,2007,2008],{},"mot",[851,2010,2011,2016],{},[869,2012,2013],{},[602,2014,2015],{},"while condition:",[869,2017,2018,2019,2021],{},"tours tant que ",[602,2020,977],{}," est vraie",[593,2023,2025],{"id":2024},"exemples-types","Exemples types",[668,2027,2029],{"className":670,"code":2028,"language":672,"meta":673,"style":673},"# Bornée : afficher 10 fois \"Salut\"\nfor i in range(10):\n    print(\"Salut\")\n\n# Non bornée : doubler n jusqu'à dépasser 1000\nn = 1\nwhile n \u003C 1000:\n    n = n * 2\n",[602,2030,2031,2036,2052,2063,2067,2072,2080,2093],{"__ignoreMap":673},[677,2032,2033],{"class":679,"line":680},[677,2034,2035],{"class":1387},"# Bornée : afficher 10 fois \"Salut\"\n",[677,2037,2038,2040,2042,2044,2046,2048,2050],{"class":679,"line":706},[677,2039,625],{"class":683},[677,2041,687],{"class":686},[677,2043,690],{"class":683},[677,2045,694],{"class":693},[677,2047,697],{"class":686},[677,2049,915],{"class":693},[677,2051,703],{"class":686},[677,2053,2054,2056,2058,2061],{"class":679,"line":1005},[677,2055,709],{"class":693},[677,2057,697],{"class":686},[677,2059,2060],{"class":714},"\"Salut\"",[677,2062,718],{"class":686},[677,2064,2065],{"class":679,"line":1022},[677,2066,1002],{"emptyLinePlaceholder":1001},[677,2068,2069],{"class":679,"line":1038},[677,2070,2071],{"class":1387},"# Non bornée : doubler n jusqu'à dépasser 1000\n",[677,2073,2074,2076,2078],{"class":679,"line":1043},[677,2075,990],{"class":686},[677,2077,993],{"class":683},[677,2079,996],{"class":693},[677,2081,2082,2084,2086,2088,2091],{"class":679,"line":1687},[677,2083,633],{"class":683},[677,2085,1010],{"class":686},[677,2087,1013],{"class":683},[677,2089,2090],{"class":693}," 1000",[677,2092,1019],{"class":686},[677,2094,2096,2098,2100,2102,2104],{"class":679,"line":2095},8,[677,2097,1025],{"class":686},[677,2099,993],{"class":683},[677,2101,1010],{"class":686},[677,2103,1032],{"class":683},[677,2105,1035],{"class":693},[593,2107,2109],{"id":2108},"comment-choisir","Comment choisir ?",[845,2111,2112,2125],{},[848,2113,2114],{},[851,2115,2116,2119,2122],{},[854,2117,2118],{},"Question",[854,2120,2121],{},"Boucle",[854,2123,2124],{},"Mini-snippet",[864,2126,2127,2141,2155,2169],{},[851,2128,2129,2132,2136],{},[869,2130,2131],{},"« Faire ceci 50 fois »",[869,2133,2134],{},[602,2135,625],{},[869,2137,2138],{},[602,2139,2140],{},"for i in range(50): ...",[851,2142,2143,2146,2150],{},[869,2144,2145],{},"« Pour chaque lettre du mot »",[869,2147,2148],{},[602,2149,625],{},[869,2151,2152],{},[602,2153,2154],{},"for lettre in mot: ...",[851,2156,2157,2160,2164],{},[869,2158,2159],{},"« Tant que le joueur a des points »",[869,2161,2162],{},[602,2163,633],{},[869,2165,2166],{},[602,2167,2168],{},"while points > 0: ...",[851,2170,2171,2174,2178],{},[869,2172,2173],{},"« Jusqu'à ce qu'on tape la bonne réponse »",[869,2175,2176],{},[602,2177,633],{},[869,2179,2180],{},[602,2181,2182],{},"while reponse != \"ok\": ...",[593,2184,1727],{"id":1726},[949,2186,2187,2202,2208],{},[952,2188,2189,2191,2192,2195,2196,2198,2199,2201],{},[602,2190,1738],{}," s'arrête ",[607,2193,2194],{},"avant"," ",[602,2197,1077],{},". ",[602,2200,746],{}," ≠ « de 1 à 5 ».",[952,2203,2204,2205,2207],{},"Boucle infinie : aucune variable de la condition ",[602,2206,633],{}," n'évolue.",[952,2209,2210,2211,1508,2214,2217],{},"Confondre ",[607,2212,2213],{},"borné",[607,2215,2216],{},"fini",". Une boucle non bornée peut être finie ;\nc'est juste qu'on ignore son nombre exact de tours.",[593,2219,2221],{"id":2220},"réflexe-à-avoir","Réflexe à avoir",[598,2223,2224,2225,2228],{},"Pour comprendre une boucle, ",[607,2226,2227],{},"tracer un tableau"," colonnes = variables,\nlignes = tours. Pour chaque ligne, calculer la nouvelle valeur. C'est la\nmanière la plus fiable de prédire le résultat sans exécuter le programme.",[1831,2230,2231],{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}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 .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 .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":673,"searchDepth":706,"depth":706,"links":2233},[2234,2235,2236,2237,2238,2239,2240],{"id":1871,"depth":706,"text":1872},{"id":1891,"depth":706,"text":1892},{"id":1943,"depth":706,"text":1944},{"id":2024,"depth":706,"text":2025},{"id":2108,"depth":706,"text":2109},{"id":1726,"depth":706,"text":1727},{"id":2220,"depth":706,"text":2221},"Mémo de révision sur for, while, range et la distinction bornée\u002Fnon bornée.",{},"\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles.memo",[],{"title":1865,"description":2241},"0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles.memo","6lX-_TA3TM_8vWnU_7F2r-W_1iLQiktoqV4xitHaoYY",{"id":2249,"title":2250,"body":2251,"description":2722,"extension":1852,"meta":2723,"navigation":1858,"path":2724,"seo":2725,"stem":2726,"__hash__":2727},"coursSlides\u002F0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles.slides.md","Boucles — diapositives",{"type":590,"value":2252,"toc":2720},[2253,2258,2268,2271,2275,2317,2319,2325,2355,2362,2369,2371,2377,2419,2424,2426,2428,2460,2463,2469,2471,2477,2524,2530,2532,2536,2611,2613,2617,2657,2663,2665,2667,2700,2702,2706,2718],[2254,2255,2257],"h1",{"id":2256},"boucles","Boucles",[598,2259,2260,2261,2264,2265,638],{},"Répéter une action — soit un ",[607,2262,2263],{},"nombre de tours connu",", soit ",[607,2266,2267],{},"tant qu'une\ncondition est vraie",[2269,2270],"hr",{},[2254,2272,2274],{"id":2273},"deux-familles","Deux familles",[845,2276,2277,2290],{},[848,2278,2279],{},[851,2280,2281,2284,2287],{},[854,2282,2283],{},"Famille",[854,2285,2286],{},"Mot-clé",[854,2288,2289],{},"Quand l'utiliser",[864,2291,2292,2304],{},[851,2293,2294,2298,2302],{},[869,2295,2296],{},[607,2297,1899],{},[869,2299,2300],{},[602,2301,625],{},[869,2303,1880],{},[851,2305,2306,2310,2314],{},[869,2307,2308],{},[607,2309,1911],{},[869,2311,2312],{},[602,2313,633],{},[869,2315,2316],{},"continuer tant qu'une condition est vraie",[2269,2318],{},[2254,2320,2322,2324],{"id":2321},"for-la-boucle-bornée",[602,2323,625],{}," — la boucle bornée",[668,2326,2327],{"className":670,"code":671,"language":672,"meta":673,"style":673},[602,2328,2329,2345],{"__ignoreMap":673},[677,2330,2331,2333,2335,2337,2339,2341,2343],{"class":679,"line":680},[677,2332,625],{"class":683},[677,2334,687],{"class":686},[677,2336,690],{"class":683},[677,2338,694],{"class":693},[677,2340,697],{"class":686},[677,2342,700],{"class":693},[677,2344,703],{"class":686},[677,2346,2347,2349,2351,2353],{"class":679,"line":706},[677,2348,709],{"class":693},[677,2350,697],{"class":686},[677,2352,715],{"class":714},[677,2354,718],{"class":686},[598,2356,2357,2358,2361],{},"Affiche ",[607,2359,2360],{},"Bonjour"," cinq fois.",[598,2363,2364,2366,2367,638],{},[602,2365,742],{}," prend successivement les valeurs ",[607,2368,875],{},[2269,2370],{},[2254,2372,2374,2376],{"id":2373},"range-le-piège-classique",[602,2375,665],{},", le piège classique",[845,2378,2379,2388],{},[848,2380,2381],{},[851,2382,2383,2385],{},[854,2384,856],{},[854,2386,2387],{},"Valeurs",[864,2389,2390,2401,2409],{},[851,2391,2392,2396],{},[869,2393,2394],{},[602,2395,746],{},[869,2397,2398,2399],{},"0, 1, 2, 3, ",[607,2400,902],{},[851,2402,2403,2407],{},[869,2404,2405],{},[602,2406,884],{},[869,2408,887],{},[851,2410,2411,2416],{},[869,2412,2413],{},[602,2414,2415],{},"range(0, 10, 2)",[869,2417,2418],{},"0, 2, 4, 6, 8",[598,2420,2421],{},[607,2422,2423],{},"La borne supérieure est toujours exclue.",[2269,2425],{},[2254,2427,774],{"id":773},[668,2429,2431],{"className":670,"code":2430,"language":672,"meta":673,"style":673},"for i in range(5):\n    print(\"Tour\", i)\n",[602,2432,2433,2449],{"__ignoreMap":673},[677,2434,2435,2437,2439,2441,2443,2445,2447],{"class":679,"line":680},[677,2436,625],{"class":683},[677,2438,687],{"class":686},[677,2440,690],{"class":683},[677,2442,694],{"class":693},[677,2444,697],{"class":686},[677,2446,700],{"class":693},[677,2448,703],{"class":686},[677,2450,2451,2453,2455,2458],{"class":679,"line":706},[677,2452,709],{"class":693},[677,2454,697],{"class":686},[677,2456,2457],{"class":714},"\"Tour\"",[677,2459,820],{"class":686},[598,2461,2462],{},"Affiche :",[668,2464,2467],{"className":2465,"code":2466,"language":731,"meta":673},[729],"Tour 0\nTour 1\nTour 2\nTour 3\nTour 4\n",[602,2468,2466],{"__ignoreMap":673},[2269,2470],{},[2254,2472,2474,2476],{"id":2473},"while-la-boucle-non-bornée",[602,2475,633],{}," — la boucle non bornée",[668,2478,2480],{"className":670,"code":2479,"language":672,"meta":673,"style":673},"n = 1\nwhile n \u003C 100:\n    n = n * 2\nprint(n)   # 128\n",[602,2481,2482,2490,2502,2514],{"__ignoreMap":673},[677,2483,2484,2486,2488],{"class":679,"line":680},[677,2485,990],{"class":686},[677,2487,993],{"class":683},[677,2489,996],{"class":693},[677,2491,2492,2494,2496,2498,2500],{"class":679,"line":706},[677,2493,633],{"class":683},[677,2495,1010],{"class":686},[677,2497,1013],{"class":683},[677,2499,1016],{"class":693},[677,2501,1019],{"class":686},[677,2503,2504,2506,2508,2510,2512],{"class":679,"line":1005},[677,2505,1025],{"class":686},[677,2507,993],{"class":683},[677,2509,1010],{"class":686},[677,2511,1032],{"class":683},[677,2513,1035],{"class":693},[677,2515,2516,2518,2521],{"class":679,"line":1022},[677,2517,604],{"class":693},[677,2519,2520],{"class":686},"(n)   ",[677,2522,2523],{"class":1387},"# 128\n",[598,2525,2526,2527,638],{},"On ignore le nombre exact de tours ",[607,2528,2529],{},"avant d'exécuter",[2269,2531],{},[2254,2533,2535],{"id":2534},"tracer-pour-comprendre","Tracer pour comprendre",[845,2537,2538,2553],{},[848,2539,2540],{},[851,2541,2542,2544,2547,2550],{},[854,2543,1071],{},[854,2545,2546],{},"n avant",[854,2548,2549],{},"n \u003C 100 ?",[854,2551,2552],{},"n après",[864,2554,2555,2566,2576,2587,2597],{},[851,2556,2557,2559,2561,2564],{},[869,2558,1094],{},[869,2560,1094],{},[869,2562,2563],{},"vrai",[869,2565,937],{},[851,2567,2568,2570,2572,2574],{},[869,2569,937],{},[869,2571,937],{},[869,2573,2563],{},[869,2575,902],{},[851,2577,2578,2581,2583,2585],{},[869,2579,2580],{},"…",[869,2582,2580],{},[869,2584,2580],{},[869,2586,2580],{},[851,2588,2589,2591,2593,2595],{},[869,2590,1177],{},[869,2592,1180],{},[869,2594,2563],{},[869,2596,1194],{},[851,2598,2599,2601,2603,2608],{},[869,2600,961],{},[869,2602,1194],{},[869,2604,2605],{},[607,2606,2607],{},"faux",[869,2609,2610],{},"sortie",[2269,2612],{},[2254,2614,2616],{"id":2615},"le-piège-mortel","Le piège mortel",[668,2618,2620],{"className":670,"code":2619,"language":672,"meta":673,"style":673},"# DANGER : boucle infinie\nn = 1\nwhile n \u003C 100:\n    print(n)\n    # n ne change jamais\n",[602,2621,2622,2626,2634,2646,2652],{"__ignoreMap":673},[677,2623,2624],{"class":679,"line":680},[677,2625,1577],{"class":1387},[677,2627,2628,2630,2632],{"class":679,"line":706},[677,2629,990],{"class":686},[677,2631,993],{"class":683},[677,2633,996],{"class":693},[677,2635,2636,2638,2640,2642,2644],{"class":679,"line":1005},[677,2637,633],{"class":683},[677,2639,1010],{"class":686},[677,2641,1013],{"class":683},[677,2643,1016],{"class":693},[677,2645,1019],{"class":686},[677,2647,2648,2650],{"class":679,"line":1022},[677,2649,709],{"class":693},[677,2651,1048],{"class":686},[677,2653,2654],{"class":679,"line":1038},[677,2655,2656],{"class":1387},"    # n ne change jamais\n",[598,2658,2659,2662],{},[607,2660,2661],{},"Quelque chose dans le bloc"," doit faire évoluer la condition.",[2269,2664],{},[2254,2666,2109],{"id":2108},[949,2668,2669,2677,2684,2692],{},[952,2670,2671,1904,2674],{},[607,2672,2673],{},"« 100 fois »",[602,2675,2676],{},"for i in range(100):",[952,2678,2679,1904,2682],{},[607,2680,2681],{},"« pour chaque lettre du mot »",[602,2683,2002],{},[952,2685,2686,1904,2689],{},[607,2687,2688],{},"« tant que le joueur a des points »",[602,2690,2691],{},"while points > 0:",[952,2693,2694,1904,2697],{},[607,2695,2696],{},"« jusqu'à ce qu'on tape oui »",[602,2698,2699],{},"while reponse != \"oui\":",[2269,2701],{},[2254,2703,2705],{"id":2704},"à-retenir","À retenir",[2707,2708,2709],"blockquote",{},[598,2710,1556,2711,2713,2714,2717],{},[607,2712,654],{}," se compte à l'avance.\nUne boucle ",[607,2715,2716],{},"non bornée"," s'arrête quand sa condition cesse d'être vraie —\nà condition que quelqu'un, dans le bloc, fasse évoluer cette condition.",[1831,2719,1833],{},{"title":673,"searchDepth":706,"depth":706,"links":2721},[],"Deck projetable pour la séance sur for et while.",{},"\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles.slides",{"title":2250,"description":2722},"0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles.slides","rtfyBYva1XXDnpKsRB86HmvUUVwl5rH2D_UsiDVJc8g",{"id":1864,"title":1865,"bo":2729,"body":2730,"description":2241,"eval":1851,"extension":1852,"labo":1851,"meta":3025,"navigation":1858,"path":2243,"quizzes":3026,"readingTime":680,"seo":3027,"stem":2246,"tp":1851,"__hash__":2247},[588],{"type":590,"value":2731,"toc":3016},[2732,2734,2744,2746,2780,2782,2844,2846,2920,2922,2984,2986,3008,3010,3014],[593,2733,1872],{"id":1871},[598,2735,2736,1877,2738,1881,2740,1884,2742,1888],{},[602,2737,625],{},[607,2739,1880],{},[602,2741,633],{},[607,2743,1887],{},[593,2745,1892],{"id":1891},[949,2747,2748,2756,2764,2770,2774],{},[952,2749,2750,1900,2752,1904,2754,638],{},[607,2751,1899],{},[607,2753,1903],{},[602,2755,625],{},[952,2757,2758,1900,2760,1904,2762,638],{},[607,2759,1911],{},[607,2761,1914],{},[602,2763,633],{},[952,2765,2766,1921,2768,1925],{},[602,2767,1738],{},[607,2769,1924],{},[952,2771,1928,2772,638],{},[607,2773,1931],{},[952,2775,1934,2776,1364,2778,1940],{},[602,2777,633],{},[607,2779,1939],{},[593,2781,1944],{"id":1943},[845,2783,2784,2792],{},[848,2785,2786],{},[851,2787,2788,2790],{},[854,2789,1953],{},[854,2791,1956],{},[864,2793,2794,2804,2814,2824,2834],{},[851,2795,2796,2800],{},[869,2797,2798],{},[602,2799,1965],{},[869,2801,1968,2802,1971],{},[602,2803,742],{},[851,2805,2806,2810],{},[869,2807,2808],{},[602,2809,1978],{},[869,2811,1968,2812,1983],{},[602,2813,742],{},[851,2815,2816,2820],{},[869,2817,2818],{},[602,2819,1990],{},[869,2821,1968,2822,1995],{},[602,2823,742],{},[851,2825,2826,2830],{},[869,2827,2828],{},[602,2829,2002],{},[869,2831,2005,2832],{},[602,2833,2008],{},[851,2835,2836,2840],{},[869,2837,2838],{},[602,2839,2015],{},[869,2841,2018,2842,2021],{},[602,2843,977],{},[593,2845,2025],{"id":2024},[668,2847,2848],{"className":670,"code":2028,"language":672,"meta":673,"style":673},[602,2849,2850,2854,2870,2880,2884,2888,2896,2908],{"__ignoreMap":673},[677,2851,2852],{"class":679,"line":680},[677,2853,2035],{"class":1387},[677,2855,2856,2858,2860,2862,2864,2866,2868],{"class":679,"line":706},[677,2857,625],{"class":683},[677,2859,687],{"class":686},[677,2861,690],{"class":683},[677,2863,694],{"class":693},[677,2865,697],{"class":686},[677,2867,915],{"class":693},[677,2869,703],{"class":686},[677,2871,2872,2874,2876,2878],{"class":679,"line":1005},[677,2873,709],{"class":693},[677,2875,697],{"class":686},[677,2877,2060],{"class":714},[677,2879,718],{"class":686},[677,2881,2882],{"class":679,"line":1022},[677,2883,1002],{"emptyLinePlaceholder":1001},[677,2885,2886],{"class":679,"line":1038},[677,2887,2071],{"class":1387},[677,2889,2890,2892,2894],{"class":679,"line":1043},[677,2891,990],{"class":686},[677,2893,993],{"class":683},[677,2895,996],{"class":693},[677,2897,2898,2900,2902,2904,2906],{"class":679,"line":1687},[677,2899,633],{"class":683},[677,2901,1010],{"class":686},[677,2903,1013],{"class":683},[677,2905,2090],{"class":693},[677,2907,1019],{"class":686},[677,2909,2910,2912,2914,2916,2918],{"class":679,"line":2095},[677,2911,1025],{"class":686},[677,2913,993],{"class":683},[677,2915,1010],{"class":686},[677,2917,1032],{"class":683},[677,2919,1035],{"class":693},[593,2921,2109],{"id":2108},[845,2923,2924,2934],{},[848,2925,2926],{},[851,2927,2928,2930,2932],{},[854,2929,2118],{},[854,2931,2121],{},[854,2933,2124],{},[864,2935,2936,2948,2960,2972],{},[851,2937,2938,2940,2944],{},[869,2939,2131],{},[869,2941,2942],{},[602,2943,625],{},[869,2945,2946],{},[602,2947,2140],{},[851,2949,2950,2952,2956],{},[869,2951,2145],{},[869,2953,2954],{},[602,2955,625],{},[869,2957,2958],{},[602,2959,2154],{},[851,2961,2962,2964,2968],{},[869,2963,2159],{},[869,2965,2966],{},[602,2967,633],{},[869,2969,2970],{},[602,2971,2168],{},[851,2973,2974,2976,2980],{},[869,2975,2173],{},[869,2977,2978],{},[602,2979,633],{},[869,2981,2982],{},[602,2983,2182],{},[593,2985,1727],{"id":1726},[949,2987,2988,2998,3002],{},[952,2989,2990,2191,2992,2195,2994,2198,2996,2201],{},[602,2991,1738],{},[607,2993,2194],{},[602,2995,1077],{},[602,2997,746],{},[952,2999,2204,3000,2207],{},[602,3001,633],{},[952,3003,2210,3004,1508,3006,2217],{},[607,3005,2213],{},[607,3007,2216],{},[593,3009,2221],{"id":2220},[598,3011,2224,3012,2228],{},[607,3013,2227],{},[1831,3015,2231],{},{"title":673,"searchDepth":706,"depth":706,"links":3017},[3018,3019,3020,3021,3022,3023,3024],{"id":1871,"depth":706,"text":1872},{"id":1891,"depth":706,"text":1892},{"id":1943,"depth":706,"text":1944},{"id":2024,"depth":706,"text":2025},{"id":2108,"depth":706,"text":2109},{"id":1726,"depth":706,"text":1727},{"id":2220,"depth":706,"text":2221},{},[],{"title":1865,"description":2241},{"id":2249,"title":2250,"body":3029,"description":2722,"extension":1852,"meta":3434,"navigation":1858,"path":2724,"seo":3435,"stem":2726,"__hash__":2727},{"type":590,"value":3030,"toc":3432},[3031,3033,3039,3041,3043,3081,3083,3087,3117,3121,3127,3129,3133,3171,3175,3177,3179,3209,3211,3216,3218,3222,3266,3270,3272,3274,3342,3344,3346,3384,3388,3390,3392,3418,3420,3422,3430],[2254,3032,2257],{"id":2256},[598,3034,2260,3035,2264,3037,638],{},[607,3036,2263],{},[607,3038,2267],{},[2269,3040],{},[2254,3042,2274],{"id":2273},[845,3044,3045,3055],{},[848,3046,3047],{},[851,3048,3049,3051,3053],{},[854,3050,2283],{},[854,3052,2286],{},[854,3054,2289],{},[864,3056,3057,3069],{},[851,3058,3059,3063,3067],{},[869,3060,3061],{},[607,3062,1899],{},[869,3064,3065],{},[602,3066,625],{},[869,3068,1880],{},[851,3070,3071,3075,3079],{},[869,3072,3073],{},[607,3074,1911],{},[869,3076,3077],{},[602,3078,633],{},[869,3080,2316],{},[2269,3082],{},[2254,3084,3085,2324],{"id":2321},[602,3086,625],{},[668,3088,3089],{"className":670,"code":671,"language":672,"meta":673,"style":673},[602,3090,3091,3107],{"__ignoreMap":673},[677,3092,3093,3095,3097,3099,3101,3103,3105],{"class":679,"line":680},[677,3094,625],{"class":683},[677,3096,687],{"class":686},[677,3098,690],{"class":683},[677,3100,694],{"class":693},[677,3102,697],{"class":686},[677,3104,700],{"class":693},[677,3106,703],{"class":686},[677,3108,3109,3111,3113,3115],{"class":679,"line":706},[677,3110,709],{"class":693},[677,3112,697],{"class":686},[677,3114,715],{"class":714},[677,3116,718],{"class":686},[598,3118,2357,3119,2361],{},[607,3120,2360],{},[598,3122,3123,2366,3125,638],{},[602,3124,742],{},[607,3126,875],{},[2269,3128],{},[2254,3130,3131,2376],{"id":2373},[602,3132,665],{},[845,3134,3135,3143],{},[848,3136,3137],{},[851,3138,3139,3141],{},[854,3140,856],{},[854,3142,2387],{},[864,3144,3145,3155,3163],{},[851,3146,3147,3151],{},[869,3148,3149],{},[602,3150,746],{},[869,3152,2398,3153],{},[607,3154,902],{},[851,3156,3157,3161],{},[869,3158,3159],{},[602,3160,884],{},[869,3162,887],{},[851,3164,3165,3169],{},[869,3166,3167],{},[602,3168,2415],{},[869,3170,2418],{},[598,3172,3173],{},[607,3174,2423],{},[2269,3176],{},[2254,3178,774],{"id":773},[668,3180,3181],{"className":670,"code":2430,"language":672,"meta":673,"style":673},[602,3182,3183,3199],{"__ignoreMap":673},[677,3184,3185,3187,3189,3191,3193,3195,3197],{"class":679,"line":680},[677,3186,625],{"class":683},[677,3188,687],{"class":686},[677,3190,690],{"class":683},[677,3192,694],{"class":693},[677,3194,697],{"class":686},[677,3196,700],{"class":693},[677,3198,703],{"class":686},[677,3200,3201,3203,3205,3207],{"class":679,"line":706},[677,3202,709],{"class":693},[677,3204,697],{"class":686},[677,3206,2457],{"class":714},[677,3208,820],{"class":686},[598,3210,2462],{},[668,3212,3214],{"className":3213,"code":2466,"language":731,"meta":673},[729],[602,3215,2466],{"__ignoreMap":673},[2269,3217],{},[2254,3219,3220,2476],{"id":2473},[602,3221,633],{},[668,3223,3224],{"className":670,"code":2479,"language":672,"meta":673,"style":673},[602,3225,3226,3234,3246,3258],{"__ignoreMap":673},[677,3227,3228,3230,3232],{"class":679,"line":680},[677,3229,990],{"class":686},[677,3231,993],{"class":683},[677,3233,996],{"class":693},[677,3235,3236,3238,3240,3242,3244],{"class":679,"line":706},[677,3237,633],{"class":683},[677,3239,1010],{"class":686},[677,3241,1013],{"class":683},[677,3243,1016],{"class":693},[677,3245,1019],{"class":686},[677,3247,3248,3250,3252,3254,3256],{"class":679,"line":1005},[677,3249,1025],{"class":686},[677,3251,993],{"class":683},[677,3253,1010],{"class":686},[677,3255,1032],{"class":683},[677,3257,1035],{"class":693},[677,3259,3260,3262,3264],{"class":679,"line":1022},[677,3261,604],{"class":693},[677,3263,2520],{"class":686},[677,3265,2523],{"class":1387},[598,3267,2526,3268,638],{},[607,3269,2529],{},[2269,3271],{},[2254,3273,2535],{"id":2534},[845,3275,3276,3288],{},[848,3277,3278],{},[851,3279,3280,3282,3284,3286],{},[854,3281,1071],{},[854,3283,2546],{},[854,3285,2549],{},[854,3287,2552],{},[864,3289,3290,3300,3310,3320,3330],{},[851,3291,3292,3294,3296,3298],{},[869,3293,1094],{},[869,3295,1094],{},[869,3297,2563],{},[869,3299,937],{},[851,3301,3302,3304,3306,3308],{},[869,3303,937],{},[869,3305,937],{},[869,3307,2563],{},[869,3309,902],{},[851,3311,3312,3314,3316,3318],{},[869,3313,2580],{},[869,3315,2580],{},[869,3317,2580],{},[869,3319,2580],{},[851,3321,3322,3324,3326,3328],{},[869,3323,1177],{},[869,3325,1180],{},[869,3327,2563],{},[869,3329,1194],{},[851,3331,3332,3334,3336,3340],{},[869,3333,961],{},[869,3335,1194],{},[869,3337,3338],{},[607,3339,2607],{},[869,3341,2610],{},[2269,3343],{},[2254,3345,2616],{"id":2615},[668,3347,3348],{"className":670,"code":2619,"language":672,"meta":673,"style":673},[602,3349,3350,3354,3362,3374,3380],{"__ignoreMap":673},[677,3351,3352],{"class":679,"line":680},[677,3353,1577],{"class":1387},[677,3355,3356,3358,3360],{"class":679,"line":706},[677,3357,990],{"class":686},[677,3359,993],{"class":683},[677,3361,996],{"class":693},[677,3363,3364,3366,3368,3370,3372],{"class":679,"line":1005},[677,3365,633],{"class":683},[677,3367,1010],{"class":686},[677,3369,1013],{"class":683},[677,3371,1016],{"class":693},[677,3373,1019],{"class":686},[677,3375,3376,3378],{"class":679,"line":1022},[677,3377,709],{"class":693},[677,3379,1048],{"class":686},[677,3381,3382],{"class":679,"line":1038},[677,3383,2656],{"class":1387},[598,3385,3386,2662],{},[607,3387,2661],{},[2269,3389],{},[2254,3391,2109],{"id":2108},[949,3393,3394,3400,3406,3412],{},[952,3395,3396,1904,3398],{},[607,3397,2673],{},[602,3399,2676],{},[952,3401,3402,1904,3404],{},[607,3403,2681],{},[602,3405,2002],{},[952,3407,3408,1904,3410],{},[607,3409,2688],{},[602,3411,2691],{},[952,3413,3414,1904,3416],{},[607,3415,2696],{},[602,3417,2699],{},[2269,3419],{},[2254,3421,2705],{"id":2704},[2707,3423,3424],{},[598,3425,1556,3426,2713,3428,2717],{},[607,3427,654],{},[607,3429,2716],{},[1831,3431,1833],{},{"title":673,"searchDepth":706,"depth":706,"links":3433},[],{},{"title":2250,"description":2722},1788035577396]