{"id":1228,"date":"2021-11-14T16:07:14","date_gmt":"2021-11-14T12:07:14","guid":{"rendered":"http:\/\/curvica974.re\/?page_id=1228"},"modified":"2025-12-12T20:59:52","modified_gmt":"2025-12-12T16:59:52","slug":"rupture-maitrisee-du-determinisme","status":"publish","type":"page","link":"https:\/\/curvica974.re\/?page_id=1228","title":{"rendered":"Rupture maitris\u00e9e du d\u00e9terminisme"},"content":{"rendered":"\n<p>On aborde d\u00e9sormais la programmation avec Blockly <\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><strong>L\u2019auto-r\u00e9f\u00e9rence des objets<\/strong><\/p>\n\n\n\n<p>L\u2019auto-r\u00e9f\u00e9rence des points ou des expressions dans un logiciel de g\u00e9om\u00e9trie dynamique n\u2019est pas une nouveaut\u00e9, c\u2019est une propri\u00e9t\u00e9 qui <strong>est d\u00e9j\u00e0 pr\u00e9sente dans CaR <\/strong>(Compas and Rulers) le logiciel de Ren\u00e9 Grothmann, moteur original de CaRMetal. C\u2019est donc, par h\u00e9ritage, une propri\u00e9t\u00e9 de CaRMetal que nous avons d\u00e9j\u00e0 plusieurs fois expos\u00e9 sur le site de l\u2019IREM de La  R\u00e9union ou dans certains anciens articles de <em>Math\u00e9maTICE<\/em>, articles d\u00e9sormais obsol\u00e8tes car illustr\u00e9s dans un environnement Java. L\u2019auteur de CaRMetal a voulu faire, sur ce point aussi, mieux \u2013 bien mieux \u2013 avec DGPad. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><img decoding=\"async\" width=\"1024\" height=\"139\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/AutoRef-CaRMetal-1024x139.png\" alt=\"\" class=\"wp-image-1229\" style=\"width:425px;height:58px\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/AutoRef-CaRMetal-1024x139.png 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/AutoRef-CaRMetal-300x41.png 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/AutoRef-CaRMetal-768x105.png 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/AutoRef-CaRMetal.png 1308w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>En effet si la mise en oeuvre \u00e9tait assez \u00e9sot\u00e9rique avec CaRMetal (ci-contre de l\u2019auto-r\u00e9f\u00e9rence crois\u00e9e des points P et Q), elle va devenir compl\u00e8tement transparente avec Blockly dans DGPad.<\/p>\n\n\n\n<p>On peut simplement explorer les figures suivantes sans s&rsquo;int\u00e9resser vraiment au code n\u00e9cessaire pour produire ces figures. Le code est donn\u00e9 pour les personnes int\u00e9ress\u00e9es par ces questions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\"><strong>Rupture du d\u00e9terminisme : la m\u00e9moire de l\u2019action<\/strong><br><strong>Exemple symbolique du thermom\u00e8tre \u00e0 m\u00e9moire<\/strong><\/h2>\n\n\n\n<p>L\u2019exemple introductif est toujours le m\u00eame, car c\u2019est l\u2019arch\u00e9type de la rupture conceptuelle qu\u2019il procure dans la g\u00e9om\u00e9trie  dynamique.  On s\u2019offre ici un thermom\u00e8tre horizontal.<\/p>\n\n\n\n<p>On se donne une droite parall\u00e8le \u00e0 l\u2019axe des abscisses, et un point M sur cette droite. On se propose de construire deux points <strong>Min <\/strong>et <strong>Max <\/strong>qui sont les \u00ab <strong>curseurs-m\u00e9moire <\/strong>\u00bb des positions minimales et maximales de M quand l\u2019utilisateur d\u00e9place M sur la droite. Si on arrive \u00e0 construire ces deux points, on est dans la <strong>brisure du d\u00e9terminisme, <\/strong>car en remettant M \u00e0 la position initiale on veut que ces deux points restent \u00e0 leur place, et donc gardent une trace de l\u2019histoire de la manipulation. <\/p>\n\n\n\n<p>D\u2019une certaine fa\u00e7on, de mani\u00e8re simplifi\u00e9e, on ins\u00e8re le temps de l\u2019utilisateur dans la figure (le concept de temps mais pas sa mesure). Or, l\u2019impl\u00e9mentation de Blockly dans DGPad permet de faire cela tout simplement.<\/p>\n\n\n\n<p><strong>Rompre et r\u00e9tablir le <\/strong>\u2028 <strong>d\u00e9terminisme<\/strong><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><img decoding=\"async\" width=\"1024\" height=\"742\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-1024x742.png\" alt=\"\" class=\"wp-image-1230\" style=\"width:604px;height:437px\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-1024x742.png 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-300x217.png 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-768x557.png 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-1536x1113.png 1536w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/Code-Blockly-autoRef-2048x1484.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>Le code en M a du sens car Blockly permet l\u2019auto-r\u00e9f\u00e9rence : <strong>Min <\/strong>est d\u00e9fini \u00e0 partir de <strong>Min<\/strong>.<\/p>\n\n\n\n<p>On observera que, dans ce contexte, <strong>l\u2019initialisation <\/strong>de cette d\u00e9marche r\u00e9cursive<br><strong>est l\u2019existence <\/strong>du point : le fait de cr\u00e9er un point <strong>Min <\/strong>l\u2019initialise.<\/p>\n\n\n\n<p>Le point M est un point sur objet de la droite parall\u00e8le \u00e0 (Ox) \u2013 l\u2019axe \u2013 passant par un point P.<\/p>\n\n\n\n<p>On <strong>r\u00e9initialise le processus <\/strong>dans le d\u00e9placement du point P qui replace <strong>Min <\/strong>et <strong>Max <\/strong>\u00e0 ce que l\u2019on peut  appeler les conditions  initiales. Et donc, si on brise le d\u00e9terminisme, on sait  aussi construire les outils qui permettent de le r\u00e9tablir.<\/p>\n\n\n\n<p>Techniquement on remarque qu\u2019ici les coordonn\u00e9es de <strong>Min <\/strong>et <strong>Max <\/strong>sont d\u00e9termin\u00e9es dans des blocs de comportement de M, et la r\u00e9initialisation dans des blocs de P. Avec CaRMetal, les codes \u00e9taient n\u00e9cessairement dans les coordonn\u00e9es des points <strong>Min <\/strong>et <strong>Max <\/strong>eux-m\u00eames.<\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1x30mQpD24kCUx-hfvOdTJsyUfLYvpEiK\/view?usp=drive_link\" style=\"width:700px;height:350px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>D\u00e9placer M \u00e0 gauche et \u00e0 droite pour voir que les \u00ab\u00a0curseurs\u00a0\u00bb Min et Max restent \u00e0 leur place. R\u00e9initialiser e<\/em>n d\u00e9pla\u00e7ant P.<\/p>\n\n\n\n<p><strong>Une utilisation didactique imm\u00e9diate du \u00ab\u00a0thermom\u00e8tre \u00e0 m\u00e9moire\u00a0\u00bb<\/strong><\/p>\n\n\n\n<p>Dans la figure suivante, on applique cette technique  pour faire prendre conscience, kinesth\u00e9siquement, avec le doigt (si on est sur une tablette ou un t\u00e9l\u00e9phone), que <strong>le sens de variation d\u2019une fonction sur un intervalle est un concept global <\/strong>alors que souvent les  \u00e9l\u00e8ves en font, en acte, un concept local, limit\u00e9 aux extr\u00e9mit\u00e9s de l\u2019intervalle \u00e9tudi\u00e9.<\/p>\n\n\n\n<p><strong>L\u2019exp\u00e9rience utilisateur de la tablette <\/strong>a une dimension tactile parfois d\u2019une grande pertinence, pour aborder autrement  certains concepts. Ici la figure est construite sur la n\u00e9cessit\u00e9 de parcourir tout un intervalle pour voir se construire \u2013  temporellement \u2013 les extrema de la fonction : <strong>la rupture du d\u00e9terminisme devient un outil au service de l\u2019apprentissage <\/strong>d\u2019une  dimension nouvelle et difficile du champ fonctionnel : la globalit\u00e9 d\u2019un concept (alors que l\u2019alg\u00e8bre est plus sur la localit\u00e9). Le fait de le faire sur tablette (en classe de seconde) s&rsquo;est montr\u00e9 plus pr\u00e9gnant que sur ordinateur, \u00e0 cause du contact direct probablement.<\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/11xBwhcOXdBIq6p6Qj7esfURqpBF20QRm\/view?usp=drive_link\" style=\"width:640px;height:450px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>Conceptuellement, d\u00e9placer M est dans la rupture du d\u00e9terminisme alors que d\u00e9placer un des points A, B C ou D le r\u00e9tablit.<\/em><\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">R\u00e9f\u00e9rence crois\u00e9e de points<\/h2>\n\n\n\n<p>Le comportement souple de Blockly sur les points permet d\u2019aller plus loin non seulement techniquement, mais aussi  didactiquement, pour proposer des mod\u00e9lisations au plus pr\u00e8s des d\u00e9finitions. C\u2019est le cas des <strong>points sym\u00e9triques <\/strong>: deux points sont sym\u00e9triques par rapport \u00e0 un point I si I est leur milieu (d\u00e9finition du programme de 5\u00b0). Rendre compte de cette d\u00e9finition en g\u00e9om\u00e9trie dynamique serait de r\u00e9aliser une figure o\u00f9 un point ne serait pas privil\u00e9gier par rapport \u00e0 un autre, et donc que <strong>si A et B sont sym\u00e9triques par <\/strong> <strong>rapport \u00e0 I il faudrait que l\u2019on puisse agir sur les point A, I mais aussi B<\/strong>. <\/p>\n\n\n\n<p>C\u2019est ce que nous allons r\u00e9aliser avec Blockly, le plus simplement possible : juste en l\u2019\u00e9crivant. C\u2019est l\u2019impl\u00e9mentation de Blockly qui fait ce que l\u2019on attend, en toute transparence. On consid\u00e8re deux cercles, de rayon fixe, de centres M et N sym\u00e9triques par rapport \u00e0 I. On place A et B sur chacun des deux cercles, eux aussi sym\u00e9triques par rapport \u00e0 I. Tous ces points sont en manipulation directe.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1024\" height=\"325\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/CodeComprtement-ABMN-1024x325.jpg\" alt=\"\" class=\"wp-image-1233\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/CodeComprtement-ABMN-1024x325.jpg 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/CodeComprtement-ABMN-300x95.jpg 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/CodeComprtement-ABMN-768x244.jpg 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/CodeComprtement-ABMN.jpg 1203w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1lWggtPGANJ7uMDQqHTNlFNhD1nT50n_G\/view?usp=drive_link\" style=\"width:700px;height:480px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p><strong>Mais comment est-ce possible ? Pourquoi A et B restent sur les cercles quand on les prend en main ?<\/strong><\/p>\n\n\n\n<p>C\u2019est la seule question \u00e0 se poser. La r\u00e9ponse est toute  simple, mais un peu subtile : il y a un m\u00e9lange de type. <strong>A et B sont aussi aimant\u00e9s <\/strong>\u00e0 5000 pixels (soit tr\u00e8s fortement) aux cercles ; donc ils  restent sur les cercles. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright size-large is-resized\"><img decoding=\"async\" width=\"1024\" height=\"106\" src=\"http:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/MagnetPtCercle-1024x106.png\" alt=\"\" class=\"wp-image-1234\" style=\"width:439px;height:44px\" srcset=\"https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/MagnetPtCercle-1024x106.png 1024w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/MagnetPtCercle-300x31.png 300w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/MagnetPtCercle-768x79.png 768w, https:\/\/curvica974.re\/wp-content\/uploads\/2021\/11\/MagnetPtCercle.png 1314w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>On le voit dans le code du fichier  ci-contre, <strong>mg <\/strong>\u00e9tant le codage interne du magn\u00e9tisme : A et B sont aussi aimant\u00e9s aux cercles et le <em>comportement de Blockly<\/em> n&rsquo;annule pas ce typage particulier. <\/p>\n\n\n\n<p><strong>Extension de virtualisation des d\u00e9finitions<\/strong><\/p>\n\n\n\n<p>Dans la figure suivante on \u00e9tend le principe de r\u00e9f\u00e9rence crois\u00e9e \u00e0 la <strong>r\u00e9f\u00e9rence crois\u00e9e multiple<\/strong>. On a construit un carr\u00e9 ABCD de centre O, construction pour laquelle on peut d\u00e9placer A mais aussi B, C ou D, et m\u00eame O. Le carr\u00e9 est donc de centre O passant par A, mais aussi de centre O passant par B, par C ou par D. C\u2019est un autre type de carr\u00e9&#8230; et l&rsquo;on comprend qu&rsquo;il devient plus d\u00e9licat de d\u00e9finir ce que sont ces objets qui ne sont plus seulement math\u00e9matiques mais aussi, de fait, informatiques.<\/p>\n\n\n<p><center><iframe src=\"https:\/\/www.dgpad.net\/responsive.php?url=https:\/\/drive.google.com\/file\/d\/1vg_uyQxzn1QMBgB-t2T3gVE17AWfa8qR\/view?usp=drive_link\" style=\"width:530px;height:400px;border-style:solid;border-width:1px;box-shadow: 6px 6px 3px #888888;\"><\/iframe><\/center><\/p>\n\n\n\n<p class=\"has-text-align-center has-small-font-size\"><em>On peut d\u00e9placer tous les points de la figure. C\u2019est un peu moins stable quand on d\u00e9place O  <\/em><br><em>car il faut garder trace de la translation pendant qu\u2019on l\u2019effectue.<\/em><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>On aborde d\u00e9sormais la programmation avec Blockly L\u2019auto-r\u00e9f\u00e9rence des objets L\u2019auto-r\u00e9f\u00e9rence des points ou des expressions dans un logiciel de g\u00e9om\u00e9trie dynamique n\u2019est pas une nouveaut\u00e9, c\u2019est une propri\u00e9t\u00e9 qui est d\u00e9j\u00e0 pr\u00e9sente dans CaR (Compas and Rulers) le logiciel de Ren\u00e9 Grothmann, moteur original de CaRMetal. C\u2019est donc, par [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"page-templates\/template-fullwidth.php","meta":{"footnotes":""},"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/pages\/1228"}],"collection":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1228"}],"version-history":[{"count":9,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/pages\/1228\/revisions"}],"predecessor-version":[{"id":8126,"href":"https:\/\/curvica974.re\/index.php?rest_route=\/wp\/v2\/pages\/1228\/revisions\/8126"}],"wp:attachment":[{"href":"https:\/\/curvica974.re\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}