Diferencia entre revisiones de «Tutorial:Funciones y Subrutinas»
Línea 4: | Línea 4: | ||
Las [http://es.wikipedia.org/wiki/Subrutina subrutinas] (también denominadas funciones o procedimientos) involucran un concepto central en la programación y brindan una ayuda crucial en el mantenimiento de los programas dado que facilitan la reutilización. En este tutorial se describen mecanismos para emplearlas en GeoGebra. | Las [http://es.wikipedia.org/wiki/Subrutina subrutinas] (también denominadas funciones o procedimientos) involucran un concepto central en la programación y brindan una ayuda crucial en el mantenimiento de los programas dado que facilitan la reutilización. En este tutorial se describen mecanismos para emplearlas en GeoGebra. | ||
− | '''Método Nº 1.''' [[Herramientas Propias|Herramientas Personales o ''Propias'']] | + | '''Método Nº 1.''' [[Herramientas Propias|Herramientas Personales o ''Propias'']]: operan como una nueva función. Requieren entradas y producen objetos de salida resultantes. Se las puede incluir en la [[Barra de Herramientas]] como una más de las ofrecidas y/o se pueden poner en juego desde la [[Barra de Entrada]] o incorporar a un [[Programas - Guiones (Scripting)|''guión'' o ''script'']]. |
{{Note:Vewr también, para mayores detalles, el tutorial [[Tutorial:Preparando Herramientas Propias en la Barra|Preparando Herramientas Propias en la Barra]]. | {{Note:Vewr también, para mayores detalles, el tutorial [[Tutorial:Preparando Herramientas Propias en la Barra|Preparando Herramientas Propias en la Barra]]. | ||
− | '''Método Nº 2.''' | + | '''Método Nº 2.''' Cualquier función [[Referencia:JavaScript|''Javascript'']] definida en la sección Global de la pestaña de ''Guiones-Script'' quedará disponible para emplearse desde [[Referencia:JavaScript|''Javascript'']] en cualquier instancia de GeoGebra. |
− | '''Método Nº 3.''' Los guiones de GeoGebra no cuentan con respaldo para incluir subrutinas pero se pueden obtener los mismos resultados usando el comando [[Comando EjecutaAlClic|EjecutaAlClic[]]].<br> | + | '''Método Nº 3.''' Los guiones de GeoGebra no cuentan con respaldo para incluir subrutinas pero se pueden obtener los mismos resultados usando el comando [[Comando EjecutaAlClic|EjecutaAlClic[]]].<br>Al crear un objeto, llamado por ejemplo, '''''miObjeto''''' e ingresar algún código de ''guión'' o ''script'' '''''Al clic''''', se puede invocar el código desde otros objetos o desde la [[Barra de Entrada]] empleando el comando [[Comando AlEjecutar|AlEjecutar]][miObjeto].<br>Si se lo requiere, pueden ''pasarse'' entradas y salidas a la subrutina vía objetos adicionales. |
+ | <h4>Ejemplo Detallado</h4> | ||
+ | Aquí se desarrolla un ejemplo más detallado.<br>Dados cinco puntos '''''A''''', '''''B''''', '''''C''''', '''''D''''' y '''''E''''' si se requiere que cada uno de ellos se torne rojo al darle ''clic'', se lo puede lograr de diferentes maneras; | ||
+ | *Escribiendo un ''guión'' `por separado para cada punto.<br>Para '''''A''''' sería <code>Color[A,1,0,0]</code>; para '''''B''''', <code>Color[B,1,0,0]</code>, etc.<br>Si se deseara cambiar de rojo a verde más adelante, sería preciso editar cada guión del correspondiente punto por separado. Lo que sería sumamente tedioso si se tratara de numerosos puntos. | ||
− | + | En cambio, todo es más ágil usando una subrutina que, por ejemplo, creando un objeto llamado '''''destino''''' ingresando lo siguiente:<br> | |
− | + | <code>destino = "A"</code> | |
− | + | En la [[Barra de Entrada]], se puede emplear este objeto como entrada de una función propia. | |
− | + | A continuación, se crea un botón llamado '''''miBotón'''''. | |
− | + | {{OJo|1=No es preciso emplear un [[Botones|botón]]; cualquier tipo de objeto operaría de la misma manera.}} | |
− | + | A '''''miBotón''''' se le asocia un guión ''Al clic'' como el que se anota a continuación: | |
<code> | <code> | ||
− | + | Ejecuta[{"Color[" + destino + ",1,0,0]"}] | |
</code> | </code> | ||
− | + | Así, al dirigirse al punto '''''A''''' y asociarle el siguiente guión ''Al clic'': | |
<pre> | <pre> | ||
− | + | destino = A | |
− | + | EjecutaAlClic[miBotón] | |
</pre> | </pre> | ||
− | + | Se hace lo mismo para cada uno de los puntos restantes, reemplazando en la primera línea la '''''A''''' por la letra correspondiente ('B', 'C', 'D', 'E' respectivamente).<br> | |
− | + | Ahora, un ''clic'' en uno de los puntos lo tornará rojo. | |
+ | Si más adelante se prefiere el verde al rojo, sólo se precisa cambiar la línea correspondiente en el guión '''''Al clic''''' asociado a '''''miBotón''''' y dicha modificación afectará a todos y cada uno de los puntos en juego.<br> | ||
+ | Este método será mucho más adecuado que el de un guión individual por punto cuanto más numerosos sean. | ||
− | + | ¿Cómo opera este procedimiento? When you click on a point, 'B' let's say, then B's 'On click' script stores the name 'B' in the text object <code>target</code>. It then runs the subroutine that we stored in <code>myButton</code>'s 'On click' script using the command <code>RunClickScript[myButton]</code>. | |
<code>myButton</code>'s 'On click' script now runs. The line <code>Execute[{"SetColor[" + target + ",1,0,0]"}]</code> constructs a GeoGebra command (this is the <code>"SetColor[" + target + ",1,0,0]"</code> part), and then executes it using <code>Execute[]</code>. The end result is that the command <code>SetColor[B,1,0,0]</code> gets executed, changing B to red. | <code>myButton</code>'s 'On click' script now runs. The line <code>Execute[{"SetColor[" + target + ",1,0,0]"}]</code> constructs a GeoGebra command (this is the <code>"SetColor[" + target + ",1,0,0]"</code> part), and then executes it using <code>Execute[]</code>. The end result is that the command <code>SetColor[B,1,0,0]</code> gets executed, changing B to red. | ||
[[Category:Tutoriales Avanzados]] | [[Category:Tutoriales Avanzados]] |
Revisión del 02:36 18 feb 2014
Las subrutinas (también denominadas funciones o procedimientos) involucran un concepto central en la programación y brindan una ayuda crucial en el mantenimiento de los programas dado que facilitan la reutilización. En este tutorial se describen mecanismos para emplearlas en GeoGebra.
Método Nº 1. Herramientas Personales o Propias: operan como una nueva función. Requieren entradas y producen objetos de salida resultantes. Se las puede incluir en la Barra de Herramientas como una más de las ofrecidas y/o se pueden poner en juego desde la Barra de Entrada o incorporar a un guión o script. {{Note:Vewr también, para mayores detalles, el tutorial Preparando Herramientas Propias en la Barra.
Método Nº 2. Cualquier función Javascript definida en la sección Global de la pestaña de Guiones-Script quedará disponible para emplearse desde Javascript en cualquier instancia de GeoGebra.
Método Nº 3. Los guiones de GeoGebra no cuentan con respaldo para incluir subrutinas pero se pueden obtener los mismos resultados usando el comando EjecutaAlClic[].
Al crear un objeto, llamado por ejemplo, miObjeto e ingresar algún código de guión o script Al clic, se puede invocar el código desde otros objetos o desde la Barra de Entrada empleando el comando AlEjecutar[miObjeto].
Si se lo requiere, pueden pasarse entradas y salidas a la subrutina vía objetos adicionales.
Ejemplo Detallado
Aquí se desarrolla un ejemplo más detallado.
Dados cinco puntos A, B, C, D y E si se requiere que cada uno de ellos se torne rojo al darle clic, se lo puede lograr de diferentes maneras;
- Escribiendo un guión `por separado para cada punto.
Para A seríaColor[A,1,0,0]
; para B,Color[B,1,0,0]
, etc.
Si se deseara cambiar de rojo a verde más adelante, sería preciso editar cada guión del correspondiente punto por separado. Lo que sería sumamente tedioso si se tratara de numerosos puntos.
En cambio, todo es más ágil usando una subrutina que, por ejemplo, creando un objeto llamado destino ingresando lo siguiente:
destino = "A"
En la Barra de Entrada, se puede emplear este objeto como entrada de una función propia.
A continuación, se crea un botón llamado miBotón.
A miBotón se le asocia un guión Al clic como el que se anota a continuación:
Ejecuta[{"Color[" + destino + ",1,0,0]"}]
Así, al dirigirse al punto A y asociarle el siguiente guión Al clic:
destino = A EjecutaAlClic[miBotón]
Se hace lo mismo para cada uno de los puntos restantes, reemplazando en la primera línea la A por la letra correspondiente ('B', 'C', 'D', 'E' respectivamente).
Ahora, un clic en uno de los puntos lo tornará rojo.
Si más adelante se prefiere el verde al rojo, sólo se precisa cambiar la línea correspondiente en el guión Al clic asociado a miBotón y dicha modificación afectará a todos y cada uno de los puntos en juego.
Este método será mucho más adecuado que el de un guión individual por punto cuanto más numerosos sean.
¿Cómo opera este procedimiento? When you click on a point, 'B' let's say, then B's 'On click' script stores the name 'B' in the text object target
. It then runs the subroutine that we stored in myButton
's 'On click' script using the command RunClickScript[myButton]
.
myButton
's 'On click' script now runs. The line Execute[{"SetColor[" + target + ",1,0,0]"}]
constructs a GeoGebra command (this is the "SetColor[" + target + ",1,0,0]"
part), and then executes it using Execute[]
. The end result is that the command SetColor[B,1,0,0]
gets executed, changing B to red.