{"id":1245,"date":"2014-04-21T17:45:32","date_gmt":"2014-04-21T15:45:32","guid":{"rendered":"http:\/\/descartesjs.org\/documentacion\/?p=1245"},"modified":"2021-08-06T17:35:28","modified_gmt":"2021-08-06T16:35:28","slug":"inicio","status":"publish","type":"post","link":"https:\/\/reddescartes.org\/documentacion\/inicio\/","title":{"rendered":"INICIO"},"content":{"rendered":"<p align=\"justify\"><strong>INICIO <\/strong>es un <a href=\"https:\/\/descartesjs.org\/documentacion\/?p=1898\">algoritmo<\/a>&nbsp;incluido en todas las escenas a partir de la versi\u00f3n 5 de Descartes. \u00c9ste permite programar procesos de c\u00e1lculo m\u00e1s o menos complejos que se ejecutar\u00e1n una sola vez al iniciarse la escena, cuando se pulse en el bot\u00f3n inicio o cuando se ejecute la acci\u00f3n inicio.<\/p>\n<p align=\"justify\">En la siguiente figura se muestra el panel de configuraci\u00f3n.<\/p>\n<p align=\"justify\"><a href=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/inicio.png\"><img class=\"aligncenter size-full wp-image-1255\" src=\"https:\/\/descartesjs.org\/documentacion\/wp-content\/uploads\/2014\/04\/inicio.png\" alt=\"inicio\" width=\"838\" height=\"483\" srcset=\"https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/inicio.png 838w, https:\/\/reddescartes.org\/documentacion\/wp-content\/uploads\/2014\/04\/inicio-300x172.png 300w\" sizes=\"(max-width: 838px) 100vw, 838px\" \/><\/a><\/p>\n<p>El panel tiene un campo de texto etiquetado como <strong>inicio<\/strong>, un \u00e1rea de texto etiquetada como <strong>hacer<\/strong> y otro campo de texto etiquetado como <strong>mientras<\/strong>.<\/p>\n<ul>\n<li><strong>inicio<\/strong>. En este campo se puede escribir asignaciones y llamadas a algoritmos separadas por ; Todo lo que haya en este campo se ejecuta al inicio del c\u00e1lculo.<\/li>\n<li><strong>hacer<\/strong>. En este campo se pueden escribir&nbsp; asignaciones y llamadas a algoritmos separadas por saltos de l\u00ednea. Lo que hay en \u00abhacer\u00bb se ejecuta repetidamente siempre que la condici\u00f3n \u00abmientras\u00bb sea v\u00e1lida.<\/li>\n<li><strong>mientras<\/strong>. En el campo \u00abmientras\u00bb se debe escribir una expresi\u00f3n booleana. Lo que hay en \u00abhacer\u00bb se ejecuta repetidamente mientras la condici\u00f3n \u00abmientras\u00bb sea v\u00e1lida.<\/li>\n<\/ul>\n<p align=\"justify\">La ejecuci\u00f3n del algoritmo se lleva a cabo de la siguiente manera:<\/p>\n<ul>\n<li>Paso 1. Se realiza las asignaciones y llamadas a otros algoritmos que se indican en <strong>inicio<\/strong>;<\/li>\n<li>Paso 2. Se realiza las asignaciones y llamadas a otros algoritmos indicadas en <strong>hacer<\/strong><\/li>\n<li>Paso 3. Se comprueba si se cumple la condici\u00f3n contenida en <strong>mientras<\/strong>.\n<ul>\n<li>Si la condici\u00f3n <strong>mientras<\/strong> se cumple entonces vuelve al paso 2, esto es vuelve a <em>ejecutar<\/em> <strong>hacer<\/strong> y a verificar la condici\u00f3n <strong>mientras<\/strong>.<\/li>\n<li>Este proceso contin\u00faa hasta que la condici\u00f3n <strong>mientras<\/strong> deja de cumplirse o se ha llegado a 10000 repeticiones (este l\u00edmite es una v\u00e1lvula de seguridad para proteger al autor y al usuario de errores que pudiesen bloquear el navegador).<\/li>\n<li>Si la condici\u00f3n <strong>mientras<\/strong> se deja en blanco el algoritmo realiza las asignaciones en <strong>hacer<\/strong> una sola vez.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p align=\"justify\">La estructura de los <strong>algoritmos<\/strong> de Descartes es en realidad un bucle de programaci\u00f3n, que corresponde al <strong>do&#8230;while<\/strong> de los lenguajes <em><strong>C<\/strong><\/em> y <em><strong>Java<\/strong><\/em> y al <strong>repeat&#8230;while<\/strong> de <em><strong>Pascal<\/strong><\/em> .<\/p>\n<p align=\"justify\">Para realizar una asignaci\u00f3n condicional se puede utilizar la construcci\u00f3n:&nbsp; <strong>A?a:b <\/strong>donde <strong>A<\/strong> es una expresi\u00f3n booleana y<strong> a<\/strong> y<strong> b<\/strong> son los dos valores que se asignar\u00e1n seg\u00fan se cumpla o no la condici\u00f3n <strong>A<\/strong>. Por ejemplo<\/p>\n<p style=\"text-align: center;\" align=\"justify\"><strong>y=(x&gt;0)?sen(2*pi*x):0<\/strong><\/p>\n<p align=\"justify\">asigna a<strong> y<\/strong> el valor <strong>sen(2+pi*x)<\/strong> si <strong>x&gt;0<\/strong> y asigna 0 si <strong>x&lt;=0<\/strong>. Esta construcci\u00f3n corresponde (parcialmente) al <strong>if&#8230;else..<\/strong>.<small><strong>&nbsp;<\/strong><\/small> de los lenguajes de programaci\u00f3n.<\/p>\n<p align=\"justify\">La combinaci\u00f3n de bucles&nbsp; <strong>inicio<\/strong> &#8211; <strong>hacer<\/strong> &#8211; <strong>mientras<\/strong> , las asignaciones condicionales <strong>A?a:b<\/strong> y la posibilidad de llamar algoritmos desde CALCULOS ofrece muchas posibilidades para la programaci\u00f3n de procesos de c\u00e1lculo relativamente complejos.<\/p>\n<p align=\"justify\">En la siguiente escena se utiliza el algoritmo <strong>INICIO<\/strong> para asignar los valores que definen la posici\u00f3n inicial de las figuras que pueden desplazarse con los controles gr\u00e1ficos.<\/p>\n<p style=\"text-align: center;\" align=\"justify\">\n<!-- iframe plugin v.4.5 wordpress.org\/plugins\/iframe\/ -->\n<iframe src=\"https:\/\/descartesjs.org\/repositorio\/EjInicio_JS\/\" width=\"720\" height=\"480\" scrolling=\"yes\" class=\"iframe-class\" frameborder=\"0\"><\/iframe>\n<\/p>\n<p style=\"text-align: center;\" align=\"justify\">(Puede descargar esta escena desde <a href=\"https:\/\/descartesjs.org\/repositorio\/EjInicio_JS.zip\">este enlace<\/a>)<\/p>\n<p align=\"justify\">&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>INICIO es un algoritmo&nbsp;incluido en todas las escenas a partir de la versi\u00f3n 5 de Descartes. \u00c9ste permite programar procesos de c\u00e1lculo m\u00e1s o menos complejos que se ejecutar\u00e1n una sola vez al iniciarse la escena, cuando se pulse en el bot\u00f3n inicio o cuando se ejecute la acci\u00f3n inicio. En la siguiente figura se muestra el panel de configuraci\u00f3n. El panel tiene un campo de texto etiquetado como inicio, un \u00e1rea de texto etiquetada como hacer y otro campo de texto etiquetado como mientras. inicio. En este campo se puede escribir asignaciones y llamadas a algoritmos separadas por ;<\/p>\n<a class=\"more-link\" rel=\"nofollow\" href=\"https:\/\/reddescartes.org\/documentacion\/inicio\/\">[Leer m\u00e1s...]<\/a>","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[37],"tags":[79,53],"_links":{"self":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1245"}],"collection":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/comments?post=1245"}],"version-history":[{"count":16,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1245\/revisions"}],"predecessor-version":[{"id":3369,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/posts\/1245\/revisions\/3369"}],"wp:attachment":[{"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/media?parent=1245"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/categories?post=1245"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/reddescartes.org\/documentacion\/wp-json\/wp\/v2\/tags?post=1245"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}