[{"data":1,"prerenderedAt":3066},["ShallowReactive",2],{"navigation":3,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel":585,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel__counterpart":1600,"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel__slides":1949,"annexes-memo:\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel":2394,"annexes-slides:\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel":2678},[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":417,"bo":587,"body":589,"description":1585,"eval":1586,"extension":1587,"labo":1586,"meta":1588,"navigation":699,"path":418,"quizzes":1589,"readingTime":653,"seo":1598,"stem":419,"tp":1586,"__hash__":1599},"cours\u002F1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel.md",[588],"PH03",{"type":590,"value":591,"toc":1574},"minimark",[592,597,613,617,640,728,739,797,801,815,964,967,995,1024,1028,1039,1155,1173,1177,1180,1278,1293,1297,1308,1322,1344,1353,1363,1387,1391,1514,1518,1555,1559,1570],[593,594,596],"h2",{"id":595},"introduction","Introduction",[598,599,600,601,605,606,609,610],"p",{},"La plupart des algorithmes que vous écrirez cette année commencent par la même\nchose : un ",[602,603,604],"strong",{},"parcours séquentiel"," d'un tableau. On lit les éléments les uns\naprès les autres, du premier au dernier, et on accumule au passage une\ninformation — un compteur, une somme, un maximum, ou la confirmation qu'une\nvaleur cherchée est bien présente. C'est l'opération la plus naturelle qu'on\npuisse faire sur une suite de données, et c'est aussi celle qui sert de ",[602,607,608],{},"mètre\nétalon"," pour mesurer le coût des algorithmes plus astucieux que nous verrons\nensuite. ",[611,612],"bo-ref",{"code":588},[593,614,616],{"id":615},"le-cœur-du-concept","Le cœur du concept",[598,618,619,620,622,623,627,628,631,632,635,636,639],{},"Un ",[602,621,604],{}," d'un tableau ",[624,625,626],"code",{},"t"," est une boucle qui visite chaque\ncase ",[624,629,630],{},"t[0]",", ",[624,633,634],{},"t[1]",", …, ",[624,637,638],{},"t[n-1]"," exactement une fois, dans l'ordre des\nindices croissants. En Python, deux écritures sont équivalentes :",[641,642,647],"pre",{"className":643,"code":644,"language":645,"meta":646,"style":646},"language-python shiki shiki-themes github-light github-light github-dark","# Version 1 : on parcourt les indices\nfor i in range(len(t)):\n    print(t[i])\n\n# Version 2 : on parcourt directement les valeurs\nfor valeur in t:\n    print(valeur)\n","python","",[624,648,649,658,685,694,701,707,720],{"__ignoreMap":646},[650,651,654],"span",{"class":652,"line":653},"line",1,[650,655,657],{"class":656},"sCsY4","# Version 1 : on parcourt les indices\n",[650,659,661,665,669,672,676,679,682],{"class":652,"line":660},2,[650,662,664],{"class":663},"s8jYJ","for",[650,666,668],{"class":667},"sxrX7"," i ",[650,670,671],{"class":663},"in",[650,673,675],{"class":674},"sBjJW"," range",[650,677,678],{"class":667},"(",[650,680,681],{"class":674},"len",[650,683,684],{"class":667},"(t)):\n",[650,686,688,691],{"class":652,"line":687},3,[650,689,690],{"class":674},"    print",[650,692,693],{"class":667},"(t[i])\n",[650,695,697],{"class":652,"line":696},4,[650,698,700],{"emptyLinePlaceholder":699},true,"\n",[650,702,704],{"class":652,"line":703},5,[650,705,706],{"class":656},"# Version 2 : on parcourt directement les valeurs\n",[650,708,710,712,715,717],{"class":652,"line":709},6,[650,711,664],{"class":663},[650,713,714],{"class":667}," valeur ",[650,716,671],{"class":663},[650,718,719],{"class":667}," t:\n",[650,721,723,725],{"class":652,"line":722},7,[650,724,690],{"class":674},[650,726,727],{"class":667},"(valeur)\n",[598,729,730,731,734,735,738],{},"La version 2 est plus lisible quand on n'a pas besoin de l'indice. La version\n1 est préférée quand l'indice lui-même sert (par exemple pour comparer\n",[624,732,733],{},"t[i]"," avec ",[624,736,737],{},"t[i+1]",").",[740,741,742],"note",{},[598,743,744,747,748,751,796],{},[602,745,746],{},"À retenir"," : « parcours séquentiel » = visiter chaque case une fois, dans\nl'ordre. Ni plus, ni moins. Le coût total est ",[602,749,750],{},"proportionnel à la taille",[650,752,755,777],{"className":753},[754],"katex",[650,756,759],{"className":757},[758],"katex-mathml",[760,761,763],"math",{"xmlns":762},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[764,765,766,773],"semantics",{},[767,768,769],"mrow",{},[770,771,772],"mi",{},"n",[774,775,772],"annotation",{"encoding":776},"application\u002Fx-tex",[650,778,782],{"className":779,"ariaHidden":781},[780],"katex-html","true",[650,783,786,791],{"className":784},[785],"base",[650,787],{"className":788,"style":790},[789],"strut","height:0.4306em;",[650,792,772],{"className":793},[794,795],"mord","mathnormal"," du tableau.",[593,798,800],{"id":799},"recherche-dune-occurrence","Recherche d'une occurrence",[598,802,803,804,807,808,811,812,738],{},"Premier usage classique : chercher si une valeur ",[624,805,806],{},"cible"," est présente dans un\ntableau (recherche dite ",[602,809,810],{},"linéaire"," ou ",[602,813,814],{},"séquentielle",[816,817,818],"python-snippet",{},[641,819,821],{"className":643,"code":820,"language":645,"meta":646,"style":646},"def contient(tableau, cible):\n    \"\"\"Retourne True si cible est dans tableau, False sinon.\"\"\"\n    for valeur in tableau:\n        if valeur == cible:\n            return True\n    return False\n\nprint(contient([3, 7, 2, 9, 5], 9))   # True\nprint(contient([3, 7, 2, 9, 5], 4))   # False\n",[624,822,823,835,841,853,866,874,882,886,929],{"__ignoreMap":646},[650,824,825,828,832],{"class":652,"line":653},[650,826,827],{"class":663},"def",[650,829,831],{"class":830},"snPdu"," contient",[650,833,834],{"class":667},"(tableau, cible):\n",[650,836,837],{"class":652,"line":660},[650,838,840],{"class":839},"sIIMD","    \"\"\"Retourne True si cible est dans tableau, False sinon.\"\"\"\n",[650,842,843,846,848,850],{"class":652,"line":687},[650,844,845],{"class":663},"    for",[650,847,714],{"class":667},[650,849,671],{"class":663},[650,851,852],{"class":667}," tableau:\n",[650,854,855,858,860,863],{"class":652,"line":696},[650,856,857],{"class":663},"        if",[650,859,714],{"class":667},[650,861,862],{"class":663},"==",[650,864,865],{"class":667}," cible:\n",[650,867,868,871],{"class":652,"line":703},[650,869,870],{"class":663},"            return",[650,872,873],{"class":674}," True\n",[650,875,876,879],{"class":652,"line":709},[650,877,878],{"class":663},"    return",[650,880,881],{"class":674}," False\n",[650,883,884],{"class":652,"line":722},[650,885,700],{"emptyLinePlaceholder":699},[650,887,889,892,895,898,900,903,905,908,910,913,915,918,921,923,926],{"class":652,"line":888},8,[650,890,891],{"class":674},"print",[650,893,894],{"class":667},"(contient([",[650,896,897],{"class":674},"3",[650,899,631],{"class":667},[650,901,902],{"class":674},"7",[650,904,631],{"class":667},[650,906,907],{"class":674},"2",[650,909,631],{"class":667},[650,911,912],{"class":674},"9",[650,914,631],{"class":667},[650,916,917],{"class":674},"5",[650,919,920],{"class":667},"], ",[650,922,912],{"class":674},[650,924,925],{"class":667},"))   ",[650,927,928],{"class":656},"# True\n",[650,930,932,934,936,938,940,942,944,946,948,950,952,954,956,959,961],{"class":652,"line":931},9,[650,933,891],{"class":674},[650,935,894],{"class":667},[650,937,897],{"class":674},[650,939,631],{"class":667},[650,941,902],{"class":674},[650,943,631],{"class":667},[650,945,907],{"class":674},[650,947,631],{"class":667},[650,949,912],{"class":674},[650,951,631],{"class":667},[650,953,917],{"class":674},[650,955,920],{"class":667},[650,957,958],{"class":674},"4",[650,960,925],{"class":667},[650,962,963],{"class":656},"# False\n",[598,965,966],{},"Deux choses à remarquer :",[968,969,970,981],"ol",{},[971,972,973,976,977,980],"li",{},[602,974,975],{},"Sortie anticipée"," — dès qu'on trouve, on s'arrête avec ",[624,978,979],{},"return True",".\nPas besoin de continuer à parcourir.",[971,982,983,986,987,990,991,994],{},[602,984,985],{},"Cas de l'absence"," — si la boucle finit sans rien trouver, on retourne\n",[624,988,989],{},"False",". C'est la ",[602,992,993],{},"seule façon"," de conclure à l'absence : avoir tout vu.",[996,997,1000,1010],"self-eval-qcm",{"correct":998,"slug":999},"1","parcours-sequentiel-c1",[1001,1002,1003],"template",{"v-slot:question":646},[598,1004,1005,1006,1009],{},"Combien d'éléments la fonction ",[624,1007,1008],{},"contient"," examine-t-elle au pire (taille n) ?",[1001,1011,1012],{"v-slot:choices":646},[1013,1014,1015,1018,1021],"ul",{},[971,1016,1017],{},"environ n\u002F2",[971,1019,1020],{},"exactement n",[971,1022,1023],{},"exactement 1",[593,1025,1027],{"id":1026},"extremum-trouver-le-maximum","Extremum : trouver le maximum",[598,1029,1030,1031,1034,1035,1038],{},"Deuxième usage : trouver la plus grande valeur. On garde dans une variable\n",[624,1032,1033],{},"maximum"," la plus grande valeur ",[602,1036,1037],{},"vue jusqu'ici",", qu'on met à jour à chaque\ncase visitée plus grande.",[641,1040,1042],{"className":643,"code":1041,"language":645,"meta":646,"style":646},"def maximum(tableau):\n    \"\"\"Retourne le plus grand élément de tableau (non vide).\"\"\"\n    maxi = tableau[0]\n    for valeur in tableau[1:]:\n        if valeur > maxi:\n            maxi = valeur\n    return maxi\n\nprint(maximum([3, 7, 2, 9, 5]))   # 9\n",[624,1043,1044,1054,1059,1076,1091,1103,1113,1120,1124],{"__ignoreMap":646},[650,1045,1046,1048,1051],{"class":652,"line":653},[650,1047,827],{"class":663},[650,1049,1050],{"class":830}," maximum",[650,1052,1053],{"class":667},"(tableau):\n",[650,1055,1056],{"class":652,"line":660},[650,1057,1058],{"class":839},"    \"\"\"Retourne le plus grand élément de tableau (non vide).\"\"\"\n",[650,1060,1061,1064,1067,1070,1073],{"class":652,"line":687},[650,1062,1063],{"class":667},"    maxi ",[650,1065,1066],{"class":663},"=",[650,1068,1069],{"class":667}," tableau[",[650,1071,1072],{"class":674},"0",[650,1074,1075],{"class":667},"]\n",[650,1077,1078,1080,1082,1084,1086,1088],{"class":652,"line":696},[650,1079,845],{"class":663},[650,1081,714],{"class":667},[650,1083,671],{"class":663},[650,1085,1069],{"class":667},[650,1087,998],{"class":674},[650,1089,1090],{"class":667},":]:\n",[650,1092,1093,1095,1097,1100],{"class":652,"line":703},[650,1094,857],{"class":663},[650,1096,714],{"class":667},[650,1098,1099],{"class":663},">",[650,1101,1102],{"class":667}," maxi:\n",[650,1104,1105,1108,1110],{"class":652,"line":709},[650,1106,1107],{"class":667},"            maxi ",[650,1109,1066],{"class":663},[650,1111,1112],{"class":667}," valeur\n",[650,1114,1115,1117],{"class":652,"line":722},[650,1116,878],{"class":663},[650,1118,1119],{"class":667}," maxi\n",[650,1121,1122],{"class":652,"line":888},[650,1123,700],{"emptyLinePlaceholder":699},[650,1125,1126,1128,1131,1133,1135,1137,1139,1141,1143,1145,1147,1149,1152],{"class":652,"line":931},[650,1127,891],{"class":674},[650,1129,1130],{"class":667},"(maximum([",[650,1132,897],{"class":674},[650,1134,631],{"class":667},[650,1136,902],{"class":674},[650,1138,631],{"class":667},[650,1140,907],{"class":674},[650,1142,631],{"class":667},[650,1144,912],{"class":674},[650,1146,631],{"class":667},[650,1148,917],{"class":674},[650,1150,1151],{"class":667},"]))   ",[650,1153,1154],{"class":656},"# 9\n",[1156,1157,1158],"warning",{},[598,1159,1160,1161,1164,1165,1168,1169,1172],{},"Le tableau doit être ",[602,1162,1163],{},"non vide"," — sinon ",[624,1166,1167],{},"tableau[0]"," lève une ",[624,1170,1171],{},"IndexError",".\nOn pourrait gérer ce cas avec une vérification préalable ou en levant une\nexception explicite.",[593,1174,1176],{"id":1175},"moyenne-arithmétique","Moyenne arithmétique",[598,1178,1179],{},"Troisième usage : sommer puis diviser.",[641,1181,1183],{"className":643,"code":1182,"language":645,"meta":646,"style":646},"def moyenne(tableau):\n    \"\"\"Moyenne arithmétique d'un tableau non vide de nombres.\"\"\"\n    somme = 0\n    for valeur in tableau:\n        somme += valeur\n    return somme \u002F len(tableau)\n\nprint(moyenne([4, 8, 6, 10]))   # 7.0\n",[624,1184,1185,1194,1199,1209,1219,1229,1245,1249],{"__ignoreMap":646},[650,1186,1187,1189,1192],{"class":652,"line":653},[650,1188,827],{"class":663},[650,1190,1191],{"class":830}," moyenne",[650,1193,1053],{"class":667},[650,1195,1196],{"class":652,"line":660},[650,1197,1198],{"class":839},"    \"\"\"Moyenne arithmétique d'un tableau non vide de nombres.\"\"\"\n",[650,1200,1201,1204,1206],{"class":652,"line":687},[650,1202,1203],{"class":667},"    somme ",[650,1205,1066],{"class":663},[650,1207,1208],{"class":674}," 0\n",[650,1210,1211,1213,1215,1217],{"class":652,"line":696},[650,1212,845],{"class":663},[650,1214,714],{"class":667},[650,1216,671],{"class":663},[650,1218,852],{"class":667},[650,1220,1221,1224,1227],{"class":652,"line":703},[650,1222,1223],{"class":667},"        somme ",[650,1225,1226],{"class":663},"+=",[650,1228,1112],{"class":667},[650,1230,1231,1233,1236,1239,1242],{"class":652,"line":709},[650,1232,878],{"class":663},[650,1234,1235],{"class":667}," somme ",[650,1237,1238],{"class":663},"\u002F",[650,1240,1241],{"class":674}," len",[650,1243,1244],{"class":667},"(tableau)\n",[650,1246,1247],{"class":652,"line":722},[650,1248,700],{"emptyLinePlaceholder":699},[650,1250,1251,1253,1256,1258,1260,1263,1265,1268,1270,1273,1275],{"class":652,"line":888},[650,1252,891],{"class":674},[650,1254,1255],{"class":667},"(moyenne([",[650,1257,958],{"class":674},[650,1259,631],{"class":667},[650,1261,1262],{"class":674},"8",[650,1264,631],{"class":667},[650,1266,1267],{"class":674},"6",[650,1269,631],{"class":667},[650,1271,1272],{"class":674},"10",[650,1274,1151],{"class":667},[650,1276,1277],{"class":656},"# 7.0\n",[598,1279,1280,1281,1284,1285,1288,1289,1292],{},"Notez qu'on a écrit ",[624,1282,1283],{},"somme \u002F len(tableau)"," et ",[602,1286,1287],{},"non"," ",[624,1290,1291],{},"somme \u002F len(somme)"," —\npiège fréquent en début d'année.",[593,1294,1296],{"id":1295},"lidée-dinvariant-de-boucle","L'idée d'invariant de boucle",[598,1298,1299,1300,1303,1304,1307],{},"Quand on analyse une boucle, il est utile de pouvoir affirmer qu'une certaine\npropriété ",[602,1301,1302],{},"reste vraie d'un tour à l'autre",". C'est ce qu'on appelle un\n",[602,1305,1306],{},"invariant de boucle",".",[598,1309,1310,1311,1313,1314,1317,1318,1321],{},"Reprenons ",[624,1312,1033],{},". À chaque tour, la variable ",[624,1315,1316],{},"maxi"," contient la plus\ngrande valeur ",[602,1319,1320],{},"parmi celles déjà parcourues",". C'est vrai :",[1013,1323,1324,1338],{},[971,1325,1326,1327,1330,1331,1333,1334,1337],{},"avant le premier tour : ",[624,1328,1329],{},"maxi = tableau[0]",", et ",[624,1332,1167],{}," est bien la plus\ngrande valeur parmi ",[624,1335,1336],{},"{tableau[0]}"," ;",[971,1339,1340,1341,1343],{},"à la fin de chaque tour : si la nouvelle valeur est plus grande, on l'a\naffectée à ",[624,1342,1316],{}," ; sinon, on garde l'ancienne — donc le max reste celui des\nvaleurs vues, qui inclut maintenant la nouvelle.",[598,1345,1346,1347,1349,1350],{},"Quand la boucle s'arrête, on a parcouru tout le tableau, donc ",[624,1348,1316],{}," est le\nmaximum… de tout le tableau. ",[602,1351,1352],{},"C'est ce qu'on voulait démontrer.",[1354,1355,1356],"tip",{},[598,1357,1358,1359,1362],{},"Un invariant bien choisi sert à ",[602,1360,1361],{},"prouver qu'un algorithme est correct",".\nVous le retrouverez dans les cours sur les tris (cours 3) et la dichotomie\n(cours 4).",[996,1364,1366,1374],{"correct":998,"slug":1365},"parcours-sequentiel-c2",[1001,1367,1368],{"v-slot:question":646},[598,1369,1370,1371,1373],{},"L'invariant de la boucle dans ",[624,1372,1033],{}," parle des éléments :",[1001,1375,1376],{"v-slot:choices":646},[1013,1377,1378,1381,1384],{},[971,1379,1380],{},"de tout le tableau",[971,1382,1383],{},"déjà parcourus",[971,1385,1386],{},"restant à parcourir",[593,1388,1390],{"id":1389},"coût-du-parcours","Coût du parcours",[598,1392,1393,1394,1422,1423,1454,1455,1458,1459,1513],{},"Un parcours séquentiel d'un tableau de taille ",[650,1395,1397,1410],{"className":1396},[754],[650,1398,1400],{"className":1399},[758],[760,1401,1402],{"xmlns":762},[764,1403,1404,1408],{},[767,1405,1406],{},[770,1407,772],{},[774,1409,772],{"encoding":776},[650,1411,1413],{"className":1412,"ariaHidden":781},[780],[650,1414,1416,1419],{"className":1415},[785],[650,1417],{"className":1418,"style":790},[789],[650,1420,772],{"className":1421},[794,795]," effectue ",[602,1424,1425,1426],{},"un nombre\nd'opérations proportionnel à ",[650,1427,1429,1442],{"className":1428},[754],[650,1430,1432],{"className":1431},[758],[760,1433,1434],{"xmlns":762},[764,1435,1436,1440],{},[767,1437,1438],{},[770,1439,772],{},[774,1441,772],{"encoding":776},[650,1443,1445],{"className":1444,"ariaHidden":781},[780],[650,1446,1448,1451],{"className":1447},[785],[650,1449],{"className":1450,"style":790},[789],[650,1452,772],{"className":1453},[794,795],". Si vous doublez la taille du tableau, le\ntemps d'exécution double aussi. On parle d'un ",[602,1456,1457],{},"coût linéaire",", qu'on\nnotera ",[650,1460,1462,1487],{"className":1461},[754],[650,1463,1465],{"className":1464},[758],[760,1466,1467],{"xmlns":762},[764,1468,1469,1484],{},[767,1470,1471,1475,1479,1481],{},[770,1472,1474],{"mathvariant":1473},"script","O",[1476,1477,678],"mo",{"stretchy":1478},"false",[770,1480,772],{},[1476,1482,1483],{"stretchy":1478},")",[774,1485,1486],{"encoding":776},"\\mathcal{O}(n)",[650,1488,1490],{"className":1489,"ariaHidden":781},[780],[650,1491,1493,1497,1502,1506,1509],{"className":1492},[785],[650,1494],{"className":1495,"style":1496},[789],"height:1em;vertical-align:-0.25em;",[650,1498,1474],{"className":1499,"style":1501},[794,1500],"mathcal","margin-right:0.0278em;",[650,1503,678],{"className":1504},[1505],"mopen",[650,1507,772],{"className":1508},[794,795],[650,1510,1483],{"className":1511},[1512],"mclose"," dès le prochain cours.",[593,1515,1517],{"id":1516},"pièges-courants","Pièges courants",[1013,1519,1520,1534,1549],{},[971,1521,1522,1525,1526,1529,1530,1533],{},[602,1523,1524],{},"Confondre la valeur et l'indice"," — ",[624,1527,1528],{},"for v in t"," donne la valeur,\n",[624,1531,1532],{},"for i in range(len(t))"," donne l'indice.",[971,1535,1536,1525,1539,1542,1543,1545,1546,1307],{},[602,1537,1538],{},"Dépasser le tableau",[624,1540,1541],{},"t[len(t)]"," n'existe jamais, les indices vont de\n",[624,1544,1072],{}," à ",[624,1547,1548],{},"len(t) - 1",[971,1550,1551,1554],{},[602,1552,1553],{},"Oublier le cas vide"," — un tableau vide n'a ni minimum ni maximum ; il\nfaut décider quoi faire (exception, valeur sentinelle, etc.).",[593,1556,1558],{"id":1557},"pour-aller-plus-loin","Pour aller plus loin",[598,1560,1561,1562,1565,1566,1569],{},"Le parcours séquentiel est partout. Mais quand on cherche une valeur dans un\ntableau ",[602,1563,1564],{},"trié",", on peut faire bien mieux qu'un parcours linéaire — c'est\nl'objet du cours 4 sur la recherche dichotomique. Avant cela, on passe au\ncours 2 pour poser proprement la notion de ",[602,1567,1568],{},"coût"," d'un algorithme.",[1571,1572,1573],"style",{},"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 .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 .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":646,"searchDepth":660,"depth":660,"links":1575},[1576,1577,1578,1579,1580,1581,1582,1583,1584],{"id":595,"depth":660,"text":596},{"id":615,"depth":660,"text":616},{"id":799,"depth":660,"text":800},{"id":1026,"depth":660,"text":1027},{"id":1175,"depth":660,"text":1176},{"id":1295,"depth":660,"text":1296},{"id":1389,"depth":660,"text":1390},{"id":1516,"depth":660,"text":1517},{"id":1557,"depth":660,"text":1558},"Parcourir un tableau de gauche à droite — la brique de base de presque tous les algorithmes sur les collections.",null,"md",{},[1590,1595],{"slug":999,"kind":1591,"question":1592,"choices":1593,"correct":998,"multi":1594,"explanation":646},"qcm","Combien d'éléments la fonction contient examine-t-elle au pire (taille n) ?",[1017,1020,1023],false,{"slug":1365,"kind":1591,"question":1596,"choices":1597,"correct":998,"multi":1594,"explanation":646},"L'invariant de la boucle dans maximum parle des éléments :",[1380,1383,1386],{"title":417,"description":1585},"coovl8hQ6bSo3yg08ECX9TzVqmFoY0UmsiblU2Hdf8M",{"id":1601,"title":1602,"bo":1603,"body":1604,"description":1942,"eval":1586,"extension":1587,"labo":1586,"meta":1943,"navigation":1594,"path":1944,"quizzes":1945,"readingTime":653,"seo":1946,"stem":1947,"tp":1586,"__hash__":1948},"coursMemo\u002F1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel.memo.md","Parcours séquentiel d'un tableau — l'essentiel",[588],{"type":590,"value":1605,"toc":1935},[1606,1610,1644,1648,1726,1730,1784,1786,1813,1817,1932],[593,1607,1609],{"id":1608},"en-une-phrase","En une phrase",[598,1611,1612,1613,1307],{},"Visiter une fois chaque case d'un tableau, en accumulant au passage\nl'information cherchée — ",[602,1614,1615,1616],{},"coût linéaire en ",[650,1617,1619,1632],{"className":1618},[754],[650,1620,1622],{"className":1621},[758],[760,1623,1624],{"xmlns":762},[764,1625,1626,1630],{},[767,1627,1628],{},[770,1629,772],{},[774,1631,772],{"encoding":776},[650,1633,1635],{"className":1634,"ariaHidden":781},[780],[650,1636,1638,1641],{"className":1637},[785],[650,1639],{"className":1640,"style":790},[789],[650,1642,772],{"className":1643},[794,795],[593,1645,1647],{"id":1646},"à-mémoriser","À mémoriser",[1013,1649,1650,1659,1667,1676,1685,1691],{},[971,1651,1652,1653,1655,1656,1658],{},"Deux écritures Python : ",[624,1654,1528],{}," (valeur) \u002F ",[624,1657,1532],{}," (indice).",[971,1660,1661,1664,1665,1307],{},[602,1662,1663],{},"Recherche d'occurrence"," : balayer jusqu'à trouver, sinon ",[624,1666,989],{},[971,1668,1669,1672,1673,1675],{},[602,1670,1671],{},"Extremum"," : initialiser avec ",[624,1674,630],{},", mettre à jour si on voit plus grand.",[971,1677,1678,1681,1682,1307],{},[602,1679,1680],{},"Moyenne"," : somme accumulée puis division par ",[624,1683,1684],{},"len(t)",[971,1686,1687,1690],{},[602,1688,1689],{},"Invariant de boucle"," : propriété vraie avant la boucle et à la fin de\nchaque itération — sert à prouver la correction.",[971,1692,1693,1696,1697,1725],{},[602,1694,1695],{},"Coût"," : proportionnel à ",[650,1698,1700,1713],{"className":1699},[754],[650,1701,1703],{"className":1702},[758],[760,1704,1705],{"xmlns":762},[764,1706,1707,1711],{},[767,1708,1709],{},[770,1710,772],{},[774,1712,772],{"encoding":776},[650,1714,1716],{"className":1715,"ariaHidden":781},[780],[650,1717,1719,1722],{"className":1718},[785],[650,1720],{"className":1721,"style":790},[789],[650,1723,772],{"className":1724},[794,795]," (linéaire).",[593,1727,1729],{"id":1728},"à-savoir-reconnaître","À savoir reconnaître",[1731,1732,1733,1746],"table",{},[1734,1735,1736],"thead",{},[1737,1738,1739,1743],"tr",{},[1740,1741,1742],"th",{},"Question posée",[1740,1744,1745],{},"Algorithme",[1747,1748,1749,1758,1768,1776],"tbody",{},[1737,1750,1751,1755],{},[1752,1753,1754],"td",{},"« La valeur x est-elle dans t ? »",[1752,1756,1757],{},"Recherche linéaire, return True\u002FFalse",[1737,1759,1760,1763],{},[1752,1761,1762],{},"« Quel est le plus grand \u002F petit ? »",[1752,1764,1765,1766],{},"Extremum, initialiser à ",[624,1767,630],{},[1737,1769,1770,1773],{},[1752,1771,1772],{},"« Quelle est la moyenne ? »",[1752,1774,1775],{},"Somme cumulée puis division",[1737,1777,1778,1781],{},[1752,1779,1780],{},"« Combien de fois apparaît x ? »",[1752,1782,1783],{},"Compteur incrémenté",[593,1785,1517],{"id":1516},[1013,1787,1788,1796,1806],{},[971,1789,1790,1791,1793,1794,1307],{},"Tableau vide : ",[624,1792,630],{}," lève ",[624,1795,1171],{},[971,1797,1798,1801,1802,1805],{},[624,1799,1800],{},"range(len(t))"," vs ",[624,1803,1804],{},"range(len(t) - 1)"," : ne pas confondre.",[971,1807,1808,1810,1811,1307],{},[624,1809,1291],{}," au lieu de ",[624,1812,1283],{},[593,1814,1816],{"id":1815},"syntaxe-python","Syntaxe Python",[641,1818,1820],{"className":643,"code":1819,"language":645,"meta":646,"style":646},"def contient(t, cible):\n    for v in t:\n        if v == cible:\n            return True\n    return False\n\ndef maximum(t):\n    maxi = t[0]\n    for v in t[1:]:\n        if v > maxi:\n            maxi = v\n    return maxi\n",[624,1821,1822,1831,1842,1852,1858,1864,1868,1877,1890,1904,1915,1925],{"__ignoreMap":646},[650,1823,1824,1826,1828],{"class":652,"line":653},[650,1825,827],{"class":663},[650,1827,831],{"class":830},[650,1829,1830],{"class":667},"(t, cible):\n",[650,1832,1833,1835,1838,1840],{"class":652,"line":660},[650,1834,845],{"class":663},[650,1836,1837],{"class":667}," v ",[650,1839,671],{"class":663},[650,1841,719],{"class":667},[650,1843,1844,1846,1848,1850],{"class":652,"line":687},[650,1845,857],{"class":663},[650,1847,1837],{"class":667},[650,1849,862],{"class":663},[650,1851,865],{"class":667},[650,1853,1854,1856],{"class":652,"line":696},[650,1855,870],{"class":663},[650,1857,873],{"class":674},[650,1859,1860,1862],{"class":652,"line":703},[650,1861,878],{"class":663},[650,1863,881],{"class":674},[650,1865,1866],{"class":652,"line":709},[650,1867,700],{"emptyLinePlaceholder":699},[650,1869,1870,1872,1874],{"class":652,"line":722},[650,1871,827],{"class":663},[650,1873,1050],{"class":830},[650,1875,1876],{"class":667},"(t):\n",[650,1878,1879,1881,1883,1886,1888],{"class":652,"line":888},[650,1880,1063],{"class":667},[650,1882,1066],{"class":663},[650,1884,1885],{"class":667}," t[",[650,1887,1072],{"class":674},[650,1889,1075],{"class":667},[650,1891,1892,1894,1896,1898,1900,1902],{"class":652,"line":931},[650,1893,845],{"class":663},[650,1895,1837],{"class":667},[650,1897,671],{"class":663},[650,1899,1885],{"class":667},[650,1901,998],{"class":674},[650,1903,1090],{"class":667},[650,1905,1907,1909,1911,1913],{"class":652,"line":1906},10,[650,1908,857],{"class":663},[650,1910,1837],{"class":667},[650,1912,1099],{"class":663},[650,1914,1102],{"class":667},[650,1916,1918,1920,1922],{"class":652,"line":1917},11,[650,1919,1107],{"class":667},[650,1921,1066],{"class":663},[650,1923,1924],{"class":667}," v\n",[650,1926,1928,1930],{"class":652,"line":1927},12,[650,1929,878],{"class":663},[650,1931,1119],{"class":667},[1571,1933,1934],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .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":646,"searchDepth":660,"depth":660,"links":1936},[1937,1938,1939,1940,1941],{"id":1608,"depth":660,"text":1609},{"id":1646,"depth":660,"text":1647},{"id":1728,"depth":660,"text":1729},{"id":1516,"depth":660,"text":1517},{"id":1815,"depth":660,"text":1816},"Mémo de révision sur le parcours linéaire, la recherche d'occurrence, l'extremum et l'invariant.",{},"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel.memo",[],{"title":1602,"description":1942},"1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel.memo","0y4Qt_a6BR0dG-avgZoWgz1x8MoP_ynPmzAN78lWuiQ",{"id":1950,"title":1951,"body":1952,"description":2388,"extension":1587,"meta":2389,"navigation":1594,"path":2390,"seo":2391,"stem":2392,"__hash__":2393},"coursSlides\u002F1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel.slides.md","Parcours séquentiel d'un tableau — diapositives",{"type":590,"value":1953,"toc":2386},[1954,1959,1962,1965,1969,1986,1988,1992,2056,2058,2062,2107,2117,2119,2123,2186,2188,2191,2203,2206,2208,2210,2271,2306,2308,2312,2327,2329,2332,2383],[1955,1956,1958],"h1",{"id":1957},"parcours-séquentiel","Parcours séquentiel",[598,1960,1961],{},"La brique de base de l'algorithmique sur tableaux.",[1963,1964],"hr",{},[1955,1966,1968],{"id":1967},"le-principe","Le principe",[1013,1970,1971,1977,1980,1983],{},[971,1972,1973,1974],{},"Visiter chaque case ",[624,1975,1976],{},"t[0], t[1], …, t[n-1]",[971,1978,1979],{},"Une seule fois",[971,1981,1982],{},"Dans l'ordre croissant des indices",[971,1984,1985],{},"En accumulant une information au passage",[1963,1987],{},[1955,1989,1991],{"id":1990},"deux-écritures-python","Deux écritures Python",[641,1993,1995],{"className":643,"code":1994,"language":645,"meta":646,"style":646},"# Par indice\nfor i in range(len(t)):\n    ...t[i]...\n\n# Par valeur\nfor v in t:\n    ...v...\n",[624,1996,1997,2002,2018,2028,2032,2037,2047],{"__ignoreMap":646},[650,1998,1999],{"class":652,"line":653},[650,2000,2001],{"class":656},"# Par indice\n",[650,2003,2004,2006,2008,2010,2012,2014,2016],{"class":652,"line":660},[650,2005,664],{"class":663},[650,2007,668],{"class":667},[650,2009,671],{"class":663},[650,2011,675],{"class":674},[650,2013,678],{"class":667},[650,2015,681],{"class":674},[650,2017,684],{"class":667},[650,2019,2020,2023,2025],{"class":652,"line":687},[650,2021,2022],{"class":674},"    ...",[650,2024,733],{"class":667},[650,2026,2027],{"class":674},"...\n",[650,2029,2030],{"class":652,"line":696},[650,2031,700],{"emptyLinePlaceholder":699},[650,2033,2034],{"class":652,"line":703},[650,2035,2036],{"class":656},"# Par valeur\n",[650,2038,2039,2041,2043,2045],{"class":652,"line":709},[650,2040,664],{"class":663},[650,2042,1837],{"class":667},[650,2044,671],{"class":663},[650,2046,719],{"class":667},[650,2048,2049,2051,2054],{"class":652,"line":722},[650,2050,2022],{"class":674},[650,2052,2053],{"class":667},"v",[650,2055,2027],{"class":674},[1963,2057],{},[1955,2059,2061],{"id":2060},"recherche-linéaire","Recherche linéaire",[641,2063,2065],{"className":643,"code":2064,"language":645,"meta":646,"style":646},"def contient(t, cible):\n    for v in t:\n        if v == cible:\n            return True\n    return False\n",[624,2066,2067,2075,2085,2095,2101],{"__ignoreMap":646},[650,2068,2069,2071,2073],{"class":652,"line":653},[650,2070,827],{"class":663},[650,2072,831],{"class":830},[650,2074,1830],{"class":667},[650,2076,2077,2079,2081,2083],{"class":652,"line":660},[650,2078,845],{"class":663},[650,2080,1837],{"class":667},[650,2082,671],{"class":663},[650,2084,719],{"class":667},[650,2086,2087,2089,2091,2093],{"class":652,"line":687},[650,2088,857],{"class":663},[650,2090,1837],{"class":667},[650,2092,862],{"class":663},[650,2094,865],{"class":667},[650,2096,2097,2099],{"class":652,"line":696},[650,2098,870],{"class":663},[650,2100,873],{"class":674},[650,2102,2103,2105],{"class":652,"line":703},[650,2104,878],{"class":663},[650,2106,881],{"class":674},[1013,2108,2109,2112],{},[971,2110,2111],{},"Sortie anticipée dès qu'on trouve",[971,2113,2114,2116],{},[624,2115,989],{}," seulement après avoir tout vu",[1963,2118],{},[1955,2120,2122],{"id":2121},"trouver-le-maximum","Trouver le maximum",[641,2124,2126],{"className":643,"code":2125,"language":645,"meta":646,"style":646},"def maximum(t):\n    maxi = t[0]\n    for v in t[1:]:\n        if v > maxi:\n            maxi = v\n    return maxi\n",[624,2127,2128,2136,2148,2162,2172,2180],{"__ignoreMap":646},[650,2129,2130,2132,2134],{"class":652,"line":653},[650,2131,827],{"class":663},[650,2133,1050],{"class":830},[650,2135,1876],{"class":667},[650,2137,2138,2140,2142,2144,2146],{"class":652,"line":660},[650,2139,1063],{"class":667},[650,2141,1066],{"class":663},[650,2143,1885],{"class":667},[650,2145,1072],{"class":674},[650,2147,1075],{"class":667},[650,2149,2150,2152,2154,2156,2158,2160],{"class":652,"line":687},[650,2151,845],{"class":663},[650,2153,1837],{"class":667},[650,2155,671],{"class":663},[650,2157,1885],{"class":667},[650,2159,998],{"class":674},[650,2161,1090],{"class":667},[650,2163,2164,2166,2168,2170],{"class":652,"line":696},[650,2165,857],{"class":663},[650,2167,1837],{"class":667},[650,2169,1099],{"class":663},[650,2171,1102],{"class":667},[650,2173,2174,2176,2178],{"class":652,"line":703},[650,2175,1107],{"class":667},[650,2177,1066],{"class":663},[650,2179,1924],{"class":667},[650,2181,2182,2184],{"class":652,"line":709},[650,2183,878],{"class":663},[650,2185,1119],{"class":667},[1963,2187],{},[1955,2189,1689],{"id":2190},"invariant-de-boucle",[2192,2193,2194],"blockquote",{},[598,2195,2196,2197,2199,2200,1307],{},"À chaque tour, ",[624,2198,1316],{}," contient le maximum\n",[602,2201,2202],{},"des valeurs déjà parcourues",[598,2204,2205],{},"Vrai avant, vrai après chaque tour → vrai à la fin.",[1963,2207],{},[1955,2209,1695],{"id":1568},[598,2211,2212,2213,2241,2242,2270],{},"Un parcours = ",[650,2214,2216,2229],{"className":2215},[754],[650,2217,2219],{"className":2218},[758],[760,2220,2221],{"xmlns":762},[764,2222,2223,2227],{},[767,2224,2225],{},[770,2226,772],{},[774,2228,772],{"encoding":776},[650,2230,2232],{"className":2231,"ariaHidden":781},[780],[650,2233,2235,2238],{"className":2234},[785],[650,2236],{"className":2237,"style":790},[789],[650,2239,772],{"className":2240},[794,795]," visites pour ",[650,2243,2245,2258],{"className":2244},[754],[650,2246,2248],{"className":2247},[758],[760,2249,2250],{"xmlns":762},[764,2251,2252,2256],{},[767,2253,2254],{},[770,2255,772],{},[774,2257,772],{"encoding":776},[650,2259,2261],{"className":2260,"ariaHidden":781},[780],[650,2262,2264,2267],{"className":2263},[785],[650,2265],{"className":2266,"style":790},[789],[650,2268,772],{"className":2269},[794,795]," cases.",[598,2272,2273,2276,2277,2305],{},[602,2274,2275],{},"Coût linéaire",". Si ",[650,2278,2280,2293],{"className":2279},[754],[650,2281,2283],{"className":2282},[758],[760,2284,2285],{"xmlns":762},[764,2286,2287,2291],{},[767,2288,2289],{},[770,2290,772],{},[774,2292,772],{"encoding":776},[650,2294,2296],{"className":2295,"ariaHidden":781},[780],[650,2297,2299,2302],{"className":2298},[785],[650,2300],{"className":2301,"style":790},[789],[650,2303,772],{"className":2304},[794,795]," double, le temps double.",[1963,2307],{},[1955,2309,2311],{"id":2310},"pièges","Pièges",[1013,2313,2314,2319,2324],{},[971,2315,2316,2317],{},"Tableau vide → ",[624,2318,1171],{},[971,2320,2321,2323],{},[624,2322,1541],{}," n'existe pas",[971,2325,2326],{},"Confondre valeur et indice",[1963,2328],{},[1955,2330,746],{"id":2331},"à-retenir",[598,2333,2334,2335,2378,2379,2382],{},"Tout parcours d'un tableau coûte ",[650,2336,2338,2357],{"className":2337},[754],[650,2339,2341],{"className":2340},[758],[760,2342,2343],{"xmlns":762},[764,2344,2345,2355],{},[767,2346,2347,2349,2351,2353],{},[770,2348,1474],{"mathvariant":1473},[1476,2350,678],{"stretchy":1478},[770,2352,772],{},[1476,2354,1483],{"stretchy":1478},[774,2356,1486],{"encoding":776},[650,2358,2360],{"className":2359,"ariaHidden":781},[780],[650,2361,2363,2366,2369,2372,2375],{"className":2362},[785],[650,2364],{"className":2365,"style":1496},[789],[650,2367,1474],{"className":2368,"style":1501},[794,1500],[650,2370,678],{"className":2371},[1505],[650,2373,772],{"className":2374},[794,795],[650,2376,1483],{"className":2377},[1512],". C'est notre ",[602,2380,2381],{},"étalon","\npour les cours suivants.",[1571,2384,2385],{},"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 .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 .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}",{"title":646,"searchDepth":660,"depth":660,"links":2387},[],"Deck pour la séance d'introduction au parcours linéaire.",{},"\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel.slides",{"title":1951,"description":2388},"1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel.slides","7xJ74OE1SpAW8R0BfgbqlDSYHsQxihas33z3OXJ36b4",{"id":1601,"title":1602,"bo":2395,"body":2396,"description":1942,"eval":1586,"extension":1587,"labo":1586,"meta":2675,"navigation":1594,"path":1944,"quizzes":2676,"readingTime":653,"seo":2677,"stem":1947,"tp":1586,"__hash__":1948},[588],{"type":590,"value":2397,"toc":2668},[2398,2400,2432,2434,2496,2498,2536,2538,2558,2560,2666],[593,2399,1609],{"id":1608},[598,2401,1612,2402,1307],{},[602,2403,1615,2404],{},[650,2405,2407,2420],{"className":2406},[754],[650,2408,2410],{"className":2409},[758],[760,2411,2412],{"xmlns":762},[764,2413,2414,2418],{},[767,2415,2416],{},[770,2417,772],{},[774,2419,772],{"encoding":776},[650,2421,2423],{"className":2422,"ariaHidden":781},[780],[650,2424,2426,2429],{"className":2425},[785],[650,2427],{"className":2428,"style":790},[789],[650,2430,772],{"className":2431},[794,795],[593,2433,1647],{"id":1646},[1013,2435,2436,2442,2448,2454,2460,2464],{},[971,2437,1652,2438,1655,2440,1658],{},[624,2439,1528],{},[624,2441,1532],{},[971,2443,2444,1664,2446,1307],{},[602,2445,1663],{},[624,2447,989],{},[971,2449,2450,1672,2452,1675],{},[602,2451,1671],{},[624,2453,630],{},[971,2455,2456,1681,2458,1307],{},[602,2457,1680],{},[624,2459,1684],{},[971,2461,2462,1690],{},[602,2463,1689],{},[971,2465,2466,1696,2468,1725],{},[602,2467,1695],{},[650,2469,2471,2484],{"className":2470},[754],[650,2472,2474],{"className":2473},[758],[760,2475,2476],{"xmlns":762},[764,2477,2478,2482],{},[767,2479,2480],{},[770,2481,772],{},[774,2483,772],{"encoding":776},[650,2485,2487],{"className":2486,"ariaHidden":781},[780],[650,2488,2490,2493],{"className":2489},[785],[650,2491],{"className":2492,"style":790},[789],[650,2494,772],{"className":2495},[794,795],[593,2497,1729],{"id":1728},[1731,2499,2500,2508],{},[1734,2501,2502],{},[1737,2503,2504,2506],{},[1740,2505,1742],{},[1740,2507,1745],{},[1747,2509,2510,2516,2524,2530],{},[1737,2511,2512,2514],{},[1752,2513,1754],{},[1752,2515,1757],{},[1737,2517,2518,2520],{},[1752,2519,1762],{},[1752,2521,1765,2522],{},[624,2523,630],{},[1737,2525,2526,2528],{},[1752,2527,1772],{},[1752,2529,1775],{},[1737,2531,2532,2534],{},[1752,2533,1780],{},[1752,2535,1783],{},[593,2537,1517],{"id":1516},[1013,2539,2540,2546,2552],{},[971,2541,1790,2542,1793,2544,1307],{},[624,2543,630],{},[624,2545,1171],{},[971,2547,2548,1801,2550,1805],{},[624,2549,1800],{},[624,2551,1804],{},[971,2553,2554,1810,2556,1307],{},[624,2555,1291],{},[624,2557,1283],{},[593,2559,1816],{"id":1815},[641,2561,2562],{"className":643,"code":1819,"language":645,"meta":646,"style":646},[624,2563,2564,2572,2582,2592,2598,2604,2608,2616,2628,2642,2652,2660],{"__ignoreMap":646},[650,2565,2566,2568,2570],{"class":652,"line":653},[650,2567,827],{"class":663},[650,2569,831],{"class":830},[650,2571,1830],{"class":667},[650,2573,2574,2576,2578,2580],{"class":652,"line":660},[650,2575,845],{"class":663},[650,2577,1837],{"class":667},[650,2579,671],{"class":663},[650,2581,719],{"class":667},[650,2583,2584,2586,2588,2590],{"class":652,"line":687},[650,2585,857],{"class":663},[650,2587,1837],{"class":667},[650,2589,862],{"class":663},[650,2591,865],{"class":667},[650,2593,2594,2596],{"class":652,"line":696},[650,2595,870],{"class":663},[650,2597,873],{"class":674},[650,2599,2600,2602],{"class":652,"line":703},[650,2601,878],{"class":663},[650,2603,881],{"class":674},[650,2605,2606],{"class":652,"line":709},[650,2607,700],{"emptyLinePlaceholder":699},[650,2609,2610,2612,2614],{"class":652,"line":722},[650,2611,827],{"class":663},[650,2613,1050],{"class":830},[650,2615,1876],{"class":667},[650,2617,2618,2620,2622,2624,2626],{"class":652,"line":888},[650,2619,1063],{"class":667},[650,2621,1066],{"class":663},[650,2623,1885],{"class":667},[650,2625,1072],{"class":674},[650,2627,1075],{"class":667},[650,2629,2630,2632,2634,2636,2638,2640],{"class":652,"line":931},[650,2631,845],{"class":663},[650,2633,1837],{"class":667},[650,2635,671],{"class":663},[650,2637,1885],{"class":667},[650,2639,998],{"class":674},[650,2641,1090],{"class":667},[650,2643,2644,2646,2648,2650],{"class":652,"line":1906},[650,2645,857],{"class":663},[650,2647,1837],{"class":667},[650,2649,1099],{"class":663},[650,2651,1102],{"class":667},[650,2653,2654,2656,2658],{"class":652,"line":1917},[650,2655,1107],{"class":667},[650,2657,1066],{"class":663},[650,2659,1924],{"class":667},[650,2661,2662,2664],{"class":652,"line":1927},[650,2663,878],{"class":663},[650,2665,1119],{"class":667},[1571,2667,1934],{},{"title":646,"searchDepth":660,"depth":660,"links":2669},[2670,2671,2672,2673,2674],{"id":1608,"depth":660,"text":1609},{"id":1646,"depth":660,"text":1647},{"id":1728,"depth":660,"text":1729},{"id":1516,"depth":660,"text":1517},{"id":1815,"depth":660,"text":1816},{},[],{"title":1602,"description":1942},{"id":1950,"title":1951,"body":2679,"description":2388,"extension":1587,"meta":3064,"navigation":1594,"path":2390,"seo":3065,"stem":2392,"__hash__":2393},{"type":590,"value":2680,"toc":3062},[2681,2683,2685,2687,2689,2701,2703,2705,2763,2765,2767,2811,2819,2821,2823,2885,2887,2889,2897,2899,2901,2903,2961,2993,2995,2997,3009,3011,3013,3060],[1955,2682,1958],{"id":1957},[598,2684,1961],{},[1963,2686],{},[1955,2688,1968],{"id":1967},[1013,2690,2691,2695,2697,2699],{},[971,2692,1973,2693],{},[624,2694,1976],{},[971,2696,1979],{},[971,2698,1982],{},[971,2700,1985],{},[1963,2702],{},[1955,2704,1991],{"id":1990},[641,2706,2707],{"className":643,"code":1994,"language":645,"meta":646,"style":646},[624,2708,2709,2713,2729,2737,2741,2745,2755],{"__ignoreMap":646},[650,2710,2711],{"class":652,"line":653},[650,2712,2001],{"class":656},[650,2714,2715,2717,2719,2721,2723,2725,2727],{"class":652,"line":660},[650,2716,664],{"class":663},[650,2718,668],{"class":667},[650,2720,671],{"class":663},[650,2722,675],{"class":674},[650,2724,678],{"class":667},[650,2726,681],{"class":674},[650,2728,684],{"class":667},[650,2730,2731,2733,2735],{"class":652,"line":687},[650,2732,2022],{"class":674},[650,2734,733],{"class":667},[650,2736,2027],{"class":674},[650,2738,2739],{"class":652,"line":696},[650,2740,700],{"emptyLinePlaceholder":699},[650,2742,2743],{"class":652,"line":703},[650,2744,2036],{"class":656},[650,2746,2747,2749,2751,2753],{"class":652,"line":709},[650,2748,664],{"class":663},[650,2750,1837],{"class":667},[650,2752,671],{"class":663},[650,2754,719],{"class":667},[650,2756,2757,2759,2761],{"class":652,"line":722},[650,2758,2022],{"class":674},[650,2760,2053],{"class":667},[650,2762,2027],{"class":674},[1963,2764],{},[1955,2766,2061],{"id":2060},[641,2768,2769],{"className":643,"code":2064,"language":645,"meta":646,"style":646},[624,2770,2771,2779,2789,2799,2805],{"__ignoreMap":646},[650,2772,2773,2775,2777],{"class":652,"line":653},[650,2774,827],{"class":663},[650,2776,831],{"class":830},[650,2778,1830],{"class":667},[650,2780,2781,2783,2785,2787],{"class":652,"line":660},[650,2782,845],{"class":663},[650,2784,1837],{"class":667},[650,2786,671],{"class":663},[650,2788,719],{"class":667},[650,2790,2791,2793,2795,2797],{"class":652,"line":687},[650,2792,857],{"class":663},[650,2794,1837],{"class":667},[650,2796,862],{"class":663},[650,2798,865],{"class":667},[650,2800,2801,2803],{"class":652,"line":696},[650,2802,870],{"class":663},[650,2804,873],{"class":674},[650,2806,2807,2809],{"class":652,"line":703},[650,2808,878],{"class":663},[650,2810,881],{"class":674},[1013,2812,2813,2815],{},[971,2814,2111],{},[971,2816,2817,2116],{},[624,2818,989],{},[1963,2820],{},[1955,2822,2122],{"id":2121},[641,2824,2825],{"className":643,"code":2125,"language":645,"meta":646,"style":646},[624,2826,2827,2835,2847,2861,2871,2879],{"__ignoreMap":646},[650,2828,2829,2831,2833],{"class":652,"line":653},[650,2830,827],{"class":663},[650,2832,1050],{"class":830},[650,2834,1876],{"class":667},[650,2836,2837,2839,2841,2843,2845],{"class":652,"line":660},[650,2838,1063],{"class":667},[650,2840,1066],{"class":663},[650,2842,1885],{"class":667},[650,2844,1072],{"class":674},[650,2846,1075],{"class":667},[650,2848,2849,2851,2853,2855,2857,2859],{"class":652,"line":687},[650,2850,845],{"class":663},[650,2852,1837],{"class":667},[650,2854,671],{"class":663},[650,2856,1885],{"class":667},[650,2858,998],{"class":674},[650,2860,1090],{"class":667},[650,2862,2863,2865,2867,2869],{"class":652,"line":696},[650,2864,857],{"class":663},[650,2866,1837],{"class":667},[650,2868,1099],{"class":663},[650,2870,1102],{"class":667},[650,2872,2873,2875,2877],{"class":652,"line":703},[650,2874,1107],{"class":667},[650,2876,1066],{"class":663},[650,2878,1924],{"class":667},[650,2880,2881,2883],{"class":652,"line":709},[650,2882,878],{"class":663},[650,2884,1119],{"class":667},[1963,2886],{},[1955,2888,1689],{"id":2190},[2192,2890,2891],{},[598,2892,2196,2893,2199,2895,1307],{},[624,2894,1316],{},[602,2896,2202],{},[598,2898,2205],{},[1963,2900],{},[1955,2902,1695],{"id":1568},[598,2904,2212,2905,2241,2933,2270],{},[650,2906,2908,2921],{"className":2907},[754],[650,2909,2911],{"className":2910},[758],[760,2912,2913],{"xmlns":762},[764,2914,2915,2919],{},[767,2916,2917],{},[770,2918,772],{},[774,2920,772],{"encoding":776},[650,2922,2924],{"className":2923,"ariaHidden":781},[780],[650,2925,2927,2930],{"className":2926},[785],[650,2928],{"className":2929,"style":790},[789],[650,2931,772],{"className":2932},[794,795],[650,2934,2936,2949],{"className":2935},[754],[650,2937,2939],{"className":2938},[758],[760,2940,2941],{"xmlns":762},[764,2942,2943,2947],{},[767,2944,2945],{},[770,2946,772],{},[774,2948,772],{"encoding":776},[650,2950,2952],{"className":2951,"ariaHidden":781},[780],[650,2953,2955,2958],{"className":2954},[785],[650,2956],{"className":2957,"style":790},[789],[650,2959,772],{"className":2960},[794,795],[598,2962,2963,2276,2965,2305],{},[602,2964,2275],{},[650,2966,2968,2981],{"className":2967},[754],[650,2969,2971],{"className":2970},[758],[760,2972,2973],{"xmlns":762},[764,2974,2975,2979],{},[767,2976,2977],{},[770,2978,772],{},[774,2980,772],{"encoding":776},[650,2982,2984],{"className":2983,"ariaHidden":781},[780],[650,2985,2987,2990],{"className":2986},[785],[650,2988],{"className":2989,"style":790},[789],[650,2991,772],{"className":2992},[794,795],[1963,2994],{},[1955,2996,2311],{"id":2310},[1013,2998,2999,3003,3007],{},[971,3000,2316,3001],{},[624,3002,1171],{},[971,3004,3005,2323],{},[624,3006,1541],{},[971,3008,2326],{},[1963,3010],{},[1955,3012,746],{"id":2331},[598,3014,2334,3015,2378,3058,2382],{},[650,3016,3018,3037],{"className":3017},[754],[650,3019,3021],{"className":3020},[758],[760,3022,3023],{"xmlns":762},[764,3024,3025,3035],{},[767,3026,3027,3029,3031,3033],{},[770,3028,1474],{"mathvariant":1473},[1476,3030,678],{"stretchy":1478},[770,3032,772],{},[1476,3034,1483],{"stretchy":1478},[774,3036,1486],{"encoding":776},[650,3038,3040],{"className":3039,"ariaHidden":781},[780],[650,3041,3043,3046,3049,3052,3055],{"className":3042},[785],[650,3044],{"className":3045,"style":1496},[789],[650,3047,1474],{"className":3048,"style":1501},[794,1500],[650,3050,678],{"className":3051},[1505],[650,3053,772],{"className":3054},[794,795],[650,3056,1483],{"className":3057},[1512],[602,3059,2381],{},[1571,3061,2385],{},{"title":646,"searchDepth":660,"depth":660,"links":3063},[],{},{"title":1951,"description":2388},1788035582870]