<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="Tiki CMS/Groupware via FeedCreator 1.7.2.1" -->
<?xml-stylesheet href="http://www.hormigaproject.com.ar/lib/rss/rss-style.css" type="text/css"?>
<?xml-stylesheet href="http://www.hormigaproject.com.ar/lib/rss/rss20.xsl" type="text/xsl"?>
<rss version="2.0">
    <channel>
        <title>Tiki RSS feed for the wiki pages</title>
        <description><![CDATA[Last modifications to the Wiki.]]></description>
        <link>http://www.hormigaproject.com.ar/tiki-wiki_rss.php?ver=2</link>
        <lastBuildDate>Sat, 04 Sep 2010 16:38:01 +0100</lastBuildDate>
        <generator>Tiki CMS/Groupware via FeedCreator 1.7.2.1</generator>
        <image>
            <url>http://www.hormigaproject.com.ar/img/tiki/tikilogo.png</url>
            <title>Hormiga Project</title>
            <link>http://www.hormigaproject.com.ar/tiki-index.php</link>
            <description><![CDATA[Feed provided by Hormiga Project. Click to visit.]]></description>
        </image>
        <language>en-us</language>
        <item>
            <title>Sintaxis</title>
            <link>http://www.hormigaproject.com.ar/Sintaxis</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>- </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>- </li></ul></li><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>- <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>- </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>- </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>- <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>- </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>- <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>- </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>- </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>- </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>- </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>- </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>- </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>- <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>- </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>- </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>- </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>- <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>- </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>- </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>- </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>- </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>- <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>- <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>- </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>- </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>- </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>- </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>- <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>- </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>- </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>- </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>- </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>- </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>- </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>- </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>- </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>- <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>- </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>- </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>- Todo programa Hormiga comienza con una sentencia de declaraciÃ³n de progrma, donde ademÃ¡s se le da un nombre:<br />+ Todo programa Hormiga comienza con una sentencia de declaraciÃ³n de progr<span class="diffchar">a</span>ma, donde ademÃ¡s se le da un nombre:<br />- Podemos agregar unidades adicionales (secundarias) asociadas a una <strong>magnitud definida previamente</strong>. Estas magnitudes adicionales puden ser utilizadas para mejorar la legibilidad del cÃ<span class="diffchar">¡</span>digo, evitar posibles errores de tipeo cuando los numeros son muy grandes (o muy pequeÃ±os) y codificar mÃ¡s cÃ³modamente. A continuaciÃ³n declaramos una <strong>nueva unidad</strong> llamada <strong>mm2</strong> asociada a la magnitud <strong>Area</strong> previamente declarada y especificamos que <em>1 mm2 = 0.000001 m2</em>:<br />+ Podemos agregar unidades adicionales (secundarias) asociadas a una <strong>magnitud definida previamente</strong>. Estas magnitudes adicionales puden ser utilizadas para mejorar la legibilidad del cÃ<span class="diffchar">³</span>digo, evitar posibles errores de tipeo cuando los numeros son muy grandes (o muy pequeÃ±os) y codificar mÃ¡s cÃ³modamente. A continuaciÃ³n declaramos una <strong>nueva unidad</strong> llamada <strong>mm2</strong> asociada a la magnitud <strong>Area</strong> previamente declarada y especificamos que <em>1 mm2 = 0.000001 m2</em>:<br />- Como puede verse, una variable no se declara con un inicial<span class="diffchar"> valor</span> asociado. Si bien el motor las inicializarÃ¡ con un valor 0 (cero), es tarea del programador cuidar de no usarlas sin haberles dado un valor previamente.<br />+ Como puede verse, una variable no se declara con un<span class="diffchar"> valor</span> inicial asociado. Si bien el motor las inicializarÃ¡ con un valor 0 (cero), es tarea del programador cuidar de no usarlas sin haberles dado un valor previamente.<br />- Las asignaciones permiten, valga la redundancia, asignarle un valor a una variable (perdiendo Ã©sta su valor anterior). En adelante, cuando se utili<span class="diffchar">z</span>e la varible en una expresiÃ³n, tomarÃ¡ el nuevo valor. Para realizar una asignaciÃ³n se escribe el nombre de la variable a la que queremos cambiar su valor, seguida del sÃ­mbolo reservado <strong><em>:=</em></strong> y luego una expresi<span class="diffchar">o</span>n matemÃ¡tica (o un simple valor) terminada por <strong>;</strong>. A continuaciÃ³n se muestran algunos ejemplos:<br />+ Las asignaciones permiten, valga la redundancia, asignarle un valor a una variable (perdiendo Ã©sta su valor anterior). En adelante, cuando se utili<span class="diffchar">c</span>e la varible en una expresiÃ³n, tomarÃ¡ el nuevo valor. Para realizar una asignaciÃ³n se escribe el nombre de la variable a la que queremos cambiar su valor, seguida del sÃ­mbolo reservado <strong><em>:=</em></strong> y luego una expresi<span class="diffchar">Ã³</span>n matemÃ¡tica (o un simple valor) terminada por <strong>;</strong>. A continuaciÃ³n se muestran algunos ejemplos:<br />- Una funciÃ³n se utiliza llamÃ¡ndola por su nombre seguido, entre parÃ©ntesis, de uno o mÃ¡s parÃ¡metros (segÃºn la funcÃ³n haya sido <span class="diffchar">r</span>efinida); es decir una funciÃ³n concebida para recibir 2 parÃ¡metros debe ser invocada con <em><strong>exactamente</strong></em> 2 parÃ¡metros, del mismo tipo y en el <strong>mismo orden</strong>. Por ejemplo, el motor cuenta con una funciÃ³n interna llamada 'pow' que calcula una potenciaciÃ³n. Esta funciÃ³n recibe por parÃ¡metro 2 nÃºmeros: <em>base</em> y <em>exponente</em> (en ese orden). Cada uno de ellos puede ser un simple nÃºmero (o constante) o una expresiÃ³n. En el siguiente ejemplo se muestra un posible uso de la funciÃ³n <strong>pow</strong>. Supongamos que calculemos el volumen de un cilind<span class="diffchar">o</span>r (PI*r2) de radio 3 y altura 5:<br />+ Una funciÃ³n se utiliza llamÃ¡ndola por su nombre seguido, entre parÃ©ntesis, de uno o mÃ¡s parÃ¡metros (segÃºn la func<span class="diffchar">i</span>Ã³n haya sido <span class="diffchar">d</span>efinida); es decir una funciÃ³n concebida para recibir 2 parÃ¡metros debe ser invocada con <em><strong>exactamente</strong></em> 2 parÃ¡metros, del mismo tipo y en el <strong>mismo orden</strong>. Por ejemplo, el motor cuenta con una funciÃ³n interna llamada 'pow' que calcula una potenciaciÃ³n. Esta funciÃ³n recibe por parÃ¡metro 2 nÃºmeros: <em>base</em> y <em>exponente</em> (en ese orden). Cada uno de ellos puede ser un simple nÃºmero (o constante) o una expresiÃ³n. En el siguiente ejemplo se muestra un posible uso de la funciÃ³n <strong>pow</strong>. Supongamos que calculemos el volumen de un cilindr<span class="diffchar">o</span> (PI*r2) de radio 3 y altura 5:<br />- Una funciÃ³n definida por el usuario nos permite crear un mÃ³dulo de cÃ³digo reutilizable que tiene una funcionalidad bien definida. Generalmente una funciÃ³n recibe uno o mas parÃ¡metros, ela<span class="diffchar">v</span>oran un <em>Ãºnico</em> resultado asociado a sus parÃ¡metros y lo retornan. El usuario puede definir sus propias funciones en la medida que le sean necesarias y utilizarlas luego de la misma manera que cualquier otra funciÃ³n interna. A continuaciÃ³n se declara la funciÃ³n <strong>SuperficieCirculo</strong> encargada de calcular la superficie de un cÃ­rculo a partir de su radio; para ello recibe un Ãºnico parÃ¡metro, el <strong>radio</strong> del cÃ­rculo (asociado a una magnitud previamente declarada llamada <em>distancia</em>) que queremos calcular, y retorna una magnitud <em>Area</em>:<br />+ Una funciÃ³n definida por el usuario nos permite crear un mÃ³dulo de cÃ³digo reutilizable que tiene una funcionalidad bien definida. Generalmente una funciÃ³n recibe uno o mas parÃ¡metros, ela<span class="diffchar">b</span>oran un <em>Ãºnico</em> resultado asociado a sus parÃ¡metros y lo retornan. El usuario puede definir sus propias funciones en la medida que le sean necesarias y utilizarlas luego de la misma manera que cualquier otra funciÃ³n interna. A continuaciÃ³n se declara la funciÃ³n <strong>SuperficieCirculo</strong> encargada de calcular la superficie de un cÃ­rculo a partir de su radio; para ello recibe un Ãºnico parÃ¡metro, el <strong>radio</strong> del cÃ­rculo (asociado a una magnitud previamente declarada llamada <em>distancia</em>) que queremos calcular, y retorna una magnitud <em>Area</em>:<br />- Destacamos que los parÃ¡metros declarados de una funciÃ³n son <strong><em>Variables Impl<span class="diffchar">is</span>itamente Declaradas</em></strong>. Por ello es posible usarlas para obtener su valor, como asÃ­ tambiÃ©n para asignarles uno nuevo. En este Ãºltimo caso el cambio tiene vigencia solo dentro del Ã¡mbito de la funciÃ³n (lo que se llama <em>pasaje de parametros por copia</em>).<br /><br />Por otro lado, una funciÃ³n definida por el usuario se ejecuta mÃ¡s lentamente que una funciÃ³n interna. Por ello es deseable que en lo posible se utili<span class="diffchar">z</span>en las funciones internas antes de definir una <em>nueva</em> funciÃ³n que realice lo mismo.<br />+ Destacamos que los parÃ¡metros declarados de una funciÃ³n son <strong><em>Variables Impl<span class="diffchar">Ã­c</span>itamente Declaradas</em></strong>. Por ello es posible usarlas para obtener su valor, como asÃ­ tambiÃ©n para asignarles uno nuevo. En este Ãºltimo caso el cambio tiene vigencia solo dentro del Ã¡mbito de la funciÃ³n (lo que se llama <em>pasaje de parametros por copia</em>).<br /><br />Por otro lado, una funciÃ³n definida por el usuario se ejecuta mÃ¡s lentamente que una funciÃ³n interna. Por ello es deseable que en lo posible se utili<span class="diffchar">c</span>en las funciones internas antes de definir una <em>nueva</em> funciÃ³n que realice lo mismo.<br />- Las capturas permiten que el programa hormiga interactÃºe con el usuario final. Por medio de estas es posible solicitar, en medio de la ejecuciÃ³n, que el usuario cargue un valor (que serÃ¡ alojado en una variable declarada) que es parÃ¡metro para el programa, necesario para resolver el cÃ¡lculo especÃ­fico. Una captura se declara (generalmente) asociada a una <em>variable</em>, especificandose en que forma se quiere el ingreso del valor. Es posible controlar que el nÃºmero ingresado cumpla con <span class="diffchar">s</span>iertas condiciones y que por defecto se inicie con un valor especÃ­fico. A continuaciÃ³n se muestra la declaraciÃ³n de una captura asociada a una varible (supuestamente definida previamente) llamada <em>altura</em>, la cual debe ser cargada con un valor positivo y que por defecto vale 5:<br />+ Las capturas permiten que el programa hormiga interactÃºe con el usuario final. Por medio de estas es posible solicitar, en medio de la ejecuciÃ³n, que el usuario cargue un valor (que serÃ¡ alojado en una variable declarada) que es parÃ¡metro para el programa, necesario para resolver el cÃ¡lculo especÃ­fico. Una captura se declara (generalmente) asociada a una <em>variable</em>, especificandose en que forma se quiere el ingreso del valor. Es posible controlar que el nÃºmero ingresado cumpla con <span class="diffchar">c</span>iertas condiciones y que por defecto se inicie con un valor especÃ­fico. A continuaciÃ³n se muestra la declaraciÃ³n de una captura asociada a una vari<span class="diffchar">a</span>ble (supuestamente definida previamente) llamada <em>altura</em>, la cual debe ser cargada con un valor positivo y que por defecto vale 5:<br />- Esta captura presenta al usuario una lista de <em>opciones</em> entre las cuales puede ele<span class="diffchar">j</span>ir solo una. Las opciones son representadas por una lista de cadenas separadas por coma (<strong>,</strong>) Cada una de las opciones es mapeada a un n<span class="diffchar">u</span>mero seg<span class="diffchar">u</span>n orden comenzando a contar desde 0 (cero). Asi la primer opciÃ³n siempre es retornada como 0 y es la opciÃ³n que el sistema entendera como <em>pre-seleccionada</em>; la segunda opciÃ³n sera retornada como 1 y asÃ­ sucesivamente.<br />+ Esta captura presenta al usuario una lista de <em>opciones</em> entre las cuales puede ele<span class="diffchar">g</span>ir solo una. Las opciones son representadas por una lista de cadenas separadas por coma (<strong>,</strong>) Cada una de las opciones es mapeada a un n<span class="diffchar">Ãº</span>mero seg<span class="diffchar">Ãº</span>n orden comenzando a contar desde 0 (cero). Asi la primer opciÃ³n siempre es retornada como 0 y es la opciÃ³n que el sistema entendera como <em>pre-seleccionada</em>; la segunda opciÃ³n sera retornada como 1 y asÃ­ sucesivamente.<br />- Puede mostrarse una imagen durante las capturas para complementar informacion al usuario o hacer la vista mas bonita ;) . Para esto se debe colocar un archivo con la imagen a mostrar dentro del rango de busqueda de m<span class="diffchar">o</span>dulos. Las imagenes no tienen lÃ­mite de tamaÃ±o pero se aconseja no colocar imÃ¡genes pesadas. Para asegurar la visiÃ³n de estas, el sistema escalarÃ¡ las imagenes que superen los 800x600 pixeles a esta medida (manteniendo el aspecto). Los formatos soportados son los comunes: png, gif, jpg, bmp,...<br />+ Puede mostrarse una imagen durante las capturas para complementar informacion al usuario o hacer la vista mas bonita ;) . Para esto se debe colocar un archivo con la imagen a mostrar dentro del rango de busqueda de m<span class="diffchar">Ã³</span>dulos. Las imagenes no tienen lÃ­mite de tamaÃ±o pero se aconseja no colocar imÃ¡genes pesadas. Para asegurar la visiÃ³n de estas, el sistema escalarÃ¡ las imagenes que superen los 800x600 pixeles a esta medida (manteniendo el aspecto). Los formatos soportados son los comunes: png, gif, jpg, bmp,...<br />- Como siempre, el parÃ¡metro step regula la definiciÃ³n del grÃ¡fico; es decir, quÃ© tan preciso es. Un valor muy grande harÃ¡ que al grÃ¡fico le falten puntos, haciÃ©ndolo <em>cuadrado</em>; por el contrario, un valor ex<span class="diffchar">e</span>civamente pequeÃ±o provocarÃ¡ que consuma mayor cantidad de memoria y tome mÃ¡s tiempo realizarlo. Queda en el programador, quien conoce la naturaleza y caracterÃ­sticas de la funciÃ³n que gr<span class="diffchar">a</span>fica, ajustar el step debidamente.<br />+ Como siempre, el parÃ¡metro step regula la definiciÃ³n del grÃ¡fico; es decir, quÃ© tan preciso es. Un valor muy grande harÃ¡ que al grÃ¡fico le falten puntos, haciÃ©ndolo <em>cuadrado</em>; por el contrario, un valor exc<span class="diffchar">es</span>ivamente pequeÃ±o provocarÃ¡ que consuma mayor cantidad de memoria y tome mÃ¡s tiempo realizarlo. Queda en el programador, quien conoce la naturaleza y caracterÃ­sticas de la funciÃ³n que gr<span class="diffchar">Ã¡</span>fica, ajustar el step debidamente.<br />- Al igual que durante las capturas, es posible mostrar imagenes durante los reportes. Puede ver a continuaciÃ³n un ejemplo de uso. Para mas informaciÃ³n ve<span class="diffchar">a el mas arrib</span>a <em>Mostrar una imagen durante las capturas</em>.<br />+ Al igual que durante las capturas, es posible mostrar imagenes durante los reportes. Puede ver a continuaciÃ³n un ejemplo de uso. Para mas informaciÃ³n vea <em>Mostrar una imagen durante las capturas</em>.<br />- Cuando un <em>Step</em> necesita que otro se haya ejecutado previamente por<span class="diffchar"> </span>que utiliza un valor que este Ãºltimo genera (calcula), estamos ante la pre<span class="diffchar">c</span>encia de una <em>dependencia</em>. Una dependencia se <em>declara</em> agregando el nombre de la variable que necesitamos utilizar (que es exportada por el Step que la genera) en el <em>bloque de dependencias</em>. A continuaciÃ³n se muestra un <em>bloque de dependencias</em> de un step que depende del supuesto <em>Step1</em>:<br />+ Cuando un <em>Step</em> necesita que otro se haya ejecutado previamente porque utiliza un valor que este Ãºltimo genera (calcula), estamos ante la pre<span class="diffchar">s</span>encia de una <em>dependencia</em>. Una dependencia se <em>declara</em> agregando el nombre de la variable que necesitamos utilizar (que es exportada por el Step que la genera) en el <em>bloque de dependencias</em>. A continuaciÃ³n se muestra un <em>bloque de dependencias</em> de un step que depende del supuesto <em>Step1</em>:<br />- Los <em>steps</em> cuentan con un bloque de ejecuciÃ³n, que son la raz<span class="diffchar">o</span>n de ser de un Step. Un paso de cÃ¡lculo debe tener al menos eso... un cÃ¡lculo. Los bloques de ejecuciÃ³n de los step tienen una forma similar a:<br />+ Los <em>steps</em> cuentan con un bloque de ejecuciÃ³n, que son la raz<span class="diffchar">Ã³</span>n de ser de un Step. Un paso de cÃ¡lculo debe tener al menos eso... un cÃ¡lculo. Los bloques de ejecuciÃ³n de los step tienen una forma similar a:<br />- <h3 class="showhide_heading" id="M<span class="diffchar">o</span>dulos"><span style="color:#3366ff; background:">M<span class="diffchar">o</span>dulos</span></h3><br />El uso de m<span class="diffchar">o</span>dulos permite reutilizar partes de c<span class="diffchar">o</span>digo en varios programas. Cada m<span class="diffchar">o</span>dulo es un archivo con un formato particular (similar al de un programa) que contiene una colecci<span class="diffchar">o</span>n de <em><strong>elementos de programa Hormiga</strong></em>: <em>declaraci<span class="diffchar">o</span>n de magnitudes, unidades, constantes, funciones y steps</em> como as<span class="diffchar">i</span> tambien <em>declaraciones de uso de otros m<span class="diffchar">o</span>dulos</em>.<br />+ <h3 class="showhide_heading" id="M<span class="diffchar">_</span>dulos"><span style="color:#3366ff; background:">M<span class="diffchar">Ã³</span>dulos</span></h3><br />El uso de m<span class="diffchar">Ã³</span>dulos permite reutilizar partes de c<span class="diffchar">Ã³</span>digo en varios programas. Cada m<span class="diffchar">Ã³</span>dulo es un archivo con un formato particular (similar al de un programa) que contiene una colecci<span class="diffchar">Ã³</span>n de <em><strong>elementos de programa Hormiga</strong></em>: <em>declaraci<span class="diffchar">Ã³</span>n de magnitudes, unidades, constantes, funciones y steps</em> como as<span class="diffchar">Ã­</span> tambien <em>declaraciones de uso de otros m<span class="diffchar">Ã³</span>dulos</em>.<br />- Las declaraciones de uso de m<span class="diffchar">o</span>dulo se colocan inmediatamente despu<span class="diffchar">e</span>s de la sentencia de declaraciÃ³n de <em>programa</em> o <em>m<span class="diffchar">o</span>dulo</em> y significa literalmente que esa sentencia ser<span class="diffchar">a</span> reemplazada por el contenido del m<span class="diffchar">o</span>dulo invocado. En caso que este <span class="diffchar">u</span>ltimo necesite mas m<span class="diffchar">o</span>dulos, estos ser<span class="diffchar">a</span>n tambi<span class="diffchar">e</span>n incluidos de forma autom<span class="diffchar">a</span>tica. A continuaci<span class="diffchar">o</span>n se da un ejemplo de <em>declaraci<span class="diffchar">o</span>n de uso de m<span class="diffchar">o</span>dulo</em>:<br />+ Las declaraciones de uso de m<span class="diffchar">Ã³</span>dulo se colocan inmediatamente despu<span class="diffchar">Ã©</span>s de la sentencia de declaraciÃ³n de <em>programa</em> o <em>m<span class="diffchar">Ã³</span>dulo</em> y significa literalmente que esa sentencia ser<span class="diffchar">Ã¡</span> reemplazada por el contenido del m<span class="diffchar">Ã³</span>dulo invocado. En caso que este <span class="diffchar">Ãº</span>ltimo necesite mas m<span class="diffchar">Ã³</span>dulos, estos ser<span class="diffchar">Ã¡</span>n tambi<span class="diffchar">Ã©</span>n incluidos de forma autom<span class="diffchar">Ã¡</span>tica. A continuaci<span class="diffchar">Ã³</span>n se da un ejemplo de <em>declaraci<span class="diffchar">Ã³</span>n de uso de m<span class="diffchar">Ã³</span>dulo</em>:<br />- Cada declaraci<span class="diffchar">o</span>n de uso hace referencia a un archivo ubicado en un directorio definido por el sistema, o eventualmente en algun subdirectorio del mismo. Por esta raz<span class="diffchar">o</span>n, nunca se debe hacer referencia a un m<span class="diffchar">o</span>dulo utilizando una <em>ruta absoluta</em>. En el ejemplo anterior se declara el uso de 2 m<span class="diffchar">o</span>dulos; el primero se encuntra en un archivo llamado <em>simela.hrm</em> el cual est<span class="diffchar">a</span> alojado dentro de un subdirectorio llamado <em>sistemas</em>; el segundo hace referencia a un m<span class="diffchar">o</span>dulo cuyo archivo es llamado <em>otro_modulo.hrm</em>. Ambas direcciones de archivo son relativas al directorio de m<span class="diffchar">o</span>dulos Hormiga.<br /><br />Cabe aclarar que para separar de directorios debe usarse la <em>barra a derecha</em> (<strong>/</strong>) para asegurar la portabilidad de los programas y m<span class="diffchar">o</span>dulos Hormiga.<br /><br /><h4 class="showhide_heading" id="Directorio_de_m<span class="diffchar">o</span>dulos_Hormiga">Directorio de m<span class="diffchar">o</span>dulos Hormiga</h4><br />El directorio de m<span class="diffchar">o</span>dulos hormiga es el lugar a partir del cual lo m<span class="diffchar">o</span>dulos son buscados. Este directorio depende de la arquitectura sobre la cual el int<span class="diffchar">e</span>rprete es ejecutado (Windows, Linux, Mac, etc):<br />+ Cada declaraci<span class="diffchar">Ã³</span>n de uso hace referencia a un archivo ubicado en un directorio definido por el sistema, o eventualmente en algun subdirectorio del mismo. Por esta raz<span class="diffchar">Ã³</span>n, nunca se debe hacer referencia a un m<span class="diffchar">Ã³</span>dulo utilizando una <em>ruta absoluta</em>. En el ejemplo anterior se declara el uso de 2 m<span class="diffchar">Ã³</span>dulos; el primero se encuntra en un archivo llamado <em>simela.hrm</em> el cual est<span class="diffchar">Ã¡</span> alojado dentro de un subdirectorio llamado <em>sistemas</em>; el segundo hace referencia a un m<span class="diffchar">Ã³</span>dulo cuyo archivo es llamado <em>otro_modulo.hrm</em>. Ambas direcciones de archivo son relativas al directorio de m<span class="diffchar">Ã³</span>dulos Hormiga.<br /><br />Cabe aclarar que para separar de directorios debe usarse la <em>barra a derecha</em> (<strong>/</strong>) para asegurar la portabilidad de los programas y m<span class="diffchar">Ã³</span>dulos Hormiga.<br /><br /><h4 class="showhide_heading" id="Directorio_de_m<span class="diffchar">_</span>dulos_Hormiga">Directorio de m<span class="diffchar">Ã³</span>dulos Hormiga</h4><br />El directorio de m<span class="diffchar">Ã³</span>dulos hormiga es el lugar a partir del cual lo m<span class="diffchar">Ã³</span>dulos son buscados. Este directorio depende de la arquitectura sobre la cual el int<span class="diffchar">Ã©</span>rprete es ejecutado (Windows, Linux, Mac, etc):<br />- Esta configuracion puede ser sobre escrita utilizando la clave <em>Core/Modules_Path</em> en la configuraci<span class="diffchar">o</span>n de Hormiga (por ahora solo usuarios avanzados).<br /><br /><h4 class="showhide_heading" id="Estructura_de_un_m<span class="diffchar">o</span>dulo">Estructura de un m<span class="diffchar">o</span>dulo</h4><br />Cada m<span class="diffchar">o</span>dulo debe ser declarado en archivos independientes y cada uno de ellos contiene solo un tipo de declaraci<span class="diffchar">o</span>n. Un archivo que declara m<span class="diffchar">o</span>dulos posee un formato como el siguiente:<br />+ Esta configuracion puede ser sobre escrita utilizando la clave <em>Core/Modules_Path</em> en la configuraci<span class="diffchar">Ã³</span>n de Hormiga (por ahora solo usuarios avanzados).<br /><br /><h4 class="showhide_heading" id="Estructura_de_un_m<span class="diffchar">_</span>dulo">Estructura de un m<span class="diffchar">Ã³</span>dulo</h4><br />Cada m<span class="diffchar">Ã³</span>dulo debe ser declarado en archivos independientes y cada uno de ellos contiene solo un tipo de declaraci<span class="diffchar">Ã³</span>n. Un archivo que declara m<span class="diffchar">Ã³</span>dulos posee un formato como el siguiente:<br />- Un buen nombre para el archivo que contenga este m<span class="diffchar">o</span>dulo podr<span class="diffchar">i</span>a ser <em>funciones_simela.hrm</em> eventualmente alojado en alg<span class="diffchar">u</span>n subdirectorio como podria ser <em>funciones</em>. Este m<span class="diffchar">o</span>dulo usa otro m<span class="diffchar">o</span>dulo (que esta en el archivo sistemas/simela.hrm en el directorio de m<span class="diffchar">o</span>dulos) y declara una funci<span class="diffchar">o</span>n llamada <em>Area</em>. Luego cualquier programa Hormiga podr<span class="diffchar">i</span>a usar esta funci<span class="diffchar">o</span>n (o cualquier otro elemento declarado dentro de ese m<span class="diffchar">o</span>dulo o incluida por el) con solo declarar el uso de este m<span class="diffchar">o</span>dulo.<br />+ Un buen nombre para el archivo que contenga este m<span class="diffchar">Ã³</span>dulo podr<span class="diffchar">Ã­</span>a ser <em>funciones_simela.hrm</em> eventualmente alojado en alg<span class="diffchar">Ãº</span>n subdirectorio como podria ser <em>funciones</em>. Este m<span class="diffchar">Ã³</span>dulo usa otro m<span class="diffchar">Ã³</span>dulo (que esta en el archivo sistemas/simela.hrm en el directorio de m<span class="diffchar">Ã³</span>dulos) y declara una funci<span class="diffchar">Ã³</span>n llamada <em>Area</em>. Luego cualquier programa Hormiga podr<span class="diffchar">Ã­</span>a usar esta funci<span class="diffchar">Ã³</span>n (o cualquier otro elemento declarado dentro de ese m<span class="diffchar">Ã³</span>dulo o incluida por el) con solo declarar el uso de este m<span class="diffchar">Ã³</span>dulo.<br />]]></description>
            <pubDate>Fri, 05 Mar 2010 14:58:32 +0100</pubDate>
        </item>
        <item>
            <title>Principal</title>
            <link>http://www.hormigaproject.com.ar/Principal</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- Este proyecto fue iniciado en el aÃ±o 2009 y estÃ¡ abocado a <span class="diffchar">real</span>i<span class="diffchar">z</span>ar una herramienta de cÃ¡lculo flexible y fÃ¡cil de utilizar. Nace <span class="diffchar">de</span> un<span class="diffchar">a</span> nece<span class="diffchar">s</span>idad en la <span class="diffchar">f</span>acultad de <span class="diffchar">i</span>ngenierÃ­a<span class="diffchar"> civil</span> de la <span class="diffchar">cu</span>idad de <span class="diffchar">O</span>lava<span class="diffchar">rrÃ­a y</span> <span class="diffchar">s</span>e <span class="diffchar">com</span>en<span class="diffchar">zÃ³</span> <span class="diffchar">a</span> des<span class="diffchar">arrol</span>la<span class="diffchar">r</span> como te<span class="diffchar">s</span>is de <span class="diffchar">g</span>ra<span class="diffchar">d</span>o de la <span class="diffchar">f</span>acultad de <span class="diffchar">i</span>ngenierÃ­a <span class="diffchar">de siste</span>m<span class="diffchar">as</span> de la cu<span class="diffchar">id</span>ad de <span class="diffchar">Ta</span>n<span class="diffchar">d</span>i<span class="diffchar">l</span> <span class="diffchar">(prov.</span> de <span class="diffchar">Buenos</span> <span class="diffchar">A</span>i<span class="diffchar">re</span>s<span class="diffchar">,</span> <span class="diffchar">Arge</span>n<span class="diffchar">t</span>i<span class="diffchar">n</span>a<span class="diffchar">)</span>.<br />+ Este proyecto fue iniciado en el aÃ±o 2009 y estÃ¡ abocado a i<span class="diffchar">mplement</span>ar una herramienta de cÃ¡lculo flexible y fÃ¡cil de utilizar. Nace <span class="diffchar">con</span> un <span class="diffchar">co</span>n<span class="diffchar">v</span>e<span class="diffchar">nio de </span>c<span class="diffchar">olaboraciÃ³n </span>e<span class="diffchar">ntre el Coleg</span>i<span class="diffchar">o </span>d<span class="diffchar">e Ingenieros de l</span>a<span class="diffchar"> Provincia </span>d<span class="diffchar">e</span> <span class="diffchar">Bu</span>en<span class="diffchar">os Aires y</span> la <span class="diffchar">F</span>acultad de <span class="diffchar">I</span>ngenierÃ­a de la <span class="diffchar">Univers</span>idad<span class="diffchar"> Nacional del Centro</span> de la<span class="diffchar"> Pro</span>v<span class="diffchar">inci</span>a <span class="diffchar">d</span>e <span class="diffchar">Bu</span>en<span class="diffchar">os</span> <span class="diffchar">Aires,</span> des<span class="diffchar">de </span>la c<span class="diffchar">ual se f</span>o<span class="diffchar">r</span>m<span class="diffchar">a un grup</span>o <span class="diffchar">in</span>te<span class="diffchar">rd</span>is<span class="diffchar">ciplinario</span> de <span class="diffchar">estudiantes y p</span>r<span class="diffchar">ofesion</span>a<span class="diffchar">les, tant</span>o de la <span class="diffchar">mencionada F</span>acultad de <span class="diffchar">I</span>ngenierÃ­a <span class="diffchar">co</span>m<span class="diffchar">o</span> de la <span class="diffchar">Fa</span>cu<span class="diffchar">lt</span>ad de <span class="diffchar">Cie</span>n<span class="diffchar">c</span>i<span class="diffchar">as</span> <span class="diffchar">Exactas</span> de <span class="diffchar">la</span> <span class="diffchar">m</span>is<span class="diffchar">ma</span> <span class="diffchar">U</span>ni<span class="diffchar">versid</span>a<span class="diffchar">d</span>.<span class="diffchar"><br /><br /></span><br />- La herramienta en sÃ­<span class="diffchar">,</span> es un intÃ©rprete de un <strong>lenguaje</strong> diseÃ±ado para facilitar su uso por parte de usuarios &quot;<strong>no informÃ¡ticos</strong>&quot;. Mediante <span class="diffchar">Ã©</span>ste lenguaje, cualquier usuario puede realizar un &quot;programa&quot; encargado de <strong>resolver problemas de cÃ¡lculo especÃ­ficos</strong>.<br />+ <span class="diffchar"><br /><br /></span>La herramienta en sÃ­ es un intÃ©rprete de un <strong>lenguaje</strong> diseÃ±ado para facilitar su uso por parte de usuarios &quot;<strong>no informÃ¡ticos</strong>&quot;. Mediante <span class="diffchar">e</span>ste lenguaje, cualquier usuario puede realizar un &quot;programa&quot; encargado de <strong>resolver problemas de cÃ¡lculo especÃ­ficos</strong>.<span class="diffchar"><br /><br /></span><br />- En los <a class="wiki"  href="/<span class="diffchar">tiki-</span>forums<span class="diffchar">.php</span>" rel=""><strong>Foros Hormiga</strong></a> encontrarÃ¡ <strong><em>programas de ejemplo y contribuidos</em></strong>, listos para usar !!! como asÃ­ tambien un canal de comunicaciÃ³n entre la comunidad de usuarios.<br />+ <span class="diffchar"><br /><br /></span>En los <a class="wiki"  href="/forums" rel=""><strong>Foros Hormiga</strong></a> encontrarÃ¡ <strong><em>programas de ejemplo y contribuidos</em></strong>, listos para usar !!! como asÃ­ tambien un canal de comunicaciÃ³n entre la comunidad de usuarios.<br />- <ul><li> <strong>Desarrolladores</strong>: Son quienes se encargan de diseÃ±ar el lenguaje e implementar el <span class="diffchar">	</span>interprete. Generalmente son personas allegadas al Ã¡mbito <span class="diffchar">	</span>informÃ¡tico, ya sean usuarios avanzados, estudiantes de ingenierÃ­a <span class="diffchar">	</span>de sistemas o recibidos.<br /></li><li> <strong>Usuarios Finales</strong>: Son aquellos qu<span class="diffchar">e simplement</span>e utilizan el intÃ©rprete con programas <span class="diffchar">	</span>realizados por otros usuarios para resolver sus problemas de cÃ¡lculo.<br /></li><li> <strong>Usuarios Programadores</strong>: Son aquellos que 	escriben en &quot;cÃ³digo Hormiga&quot; los programas necesarios <span class="diffchar">	</span>(por ellos mismos o por terceros) para resolver cÃ¡lculos especÃ­ficos.+ <span class="diffchar"><br /><br /></span><ul><li> <strong>Desarrolladores</strong>: Son quienes se encargan de diseÃ±ar el lenguaje e implementar el interprete. Generalmente son personas allegadas al Ã¡mbito informÃ¡tico, ya sean usuarios avanzados, estudiantes de ingenierÃ­a de sistemas o recibidos.<br /></li<span class="diffchar">></ul><br /><br /><br /><ul</span>><li> <strong>Usuarios Finales</strong>: Son aquellos que utilizan el intÃ©rprete con programas <span class="diffchar"> </span>realizados por otros usuarios para resolver sus problemas de cÃ¡lculo.<br /></li<span class="diffchar">></ul><br /><br /><br /><ul</span>><li> <strong>Usuarios Programadores</strong>: Son aquellos que 	escriben en &quot;cÃ³digo Hormiga&quot; los programas necesarios <span class="diffchar"> </span>(por ellos mismos o por terceros) para resolver cÃ¡lculos especÃ­ficos.- El lenguaje permite a los programadores <span class="diffchar">enf</span>ocarse en el problema a resolver <span class="diffchar">y </span>e<span class="diffchar">vit</span>a<span class="diffchar">r</span> <span class="diffchar">qu</span>e <span class="diffchar">n</span>e<span class="diffchar">ces</span>it<span class="diffchar">e esfo</span>r<span class="diffchar">za</span>r<span class="diffchar">s</span>e<span class="diffchar"> </span>e<span class="diffchar">n</span> l<span class="diffchar">a </span>i<span class="diffchar">n</span>t<span class="diffchar">erfaz</span> <span class="diffchar">d</span>e<span class="diffchar"> comunicaciÃ³n</span> intera<span class="diffchar">ctiva</span> con el usuario.<br />+ <span class="diffchar"><br /><br /></span>El lenguaje permite a los programadores <span class="diffchar">c</span>o<span class="diffchar">n</span>c<span class="diffchar">entr</span>arse en<span class="diffchar"> especificar declarativamente</span> el problema a resolver<span class="diffchar">,</span> <span class="diffchar">d</span>e<span class="diffchar">leg</span>a<span class="diffchar">ndo</span> e<span class="diffchar">n</span> e<span class="diffchar">l </span>i<span class="diffchar">n</span>t<span class="diffchar">Ã©</span>r<span class="diffchar">p</span>re<span class="diffchar">t</span>e <span class="diffchar">a</span>l<span class="diffchar">gor</span>it<span class="diffchar">mos</span> e inter<span class="diffchar">f</span>a<span class="diffchar">z</span> con el usuario<span class="diffchar"> final</span>.<span class="diffchar"><br /><br /></span><br />+ <br />+ <br />- </li><li> tiene soporte para cÃ¡lculo de integrales definidas en multiples dimensiones.- </li><li> incorpora un nuevo concepto llamado <strong>Step</strong>, similar a un procedimiento de Pascal, pero que permite declarar dependencias entre ellos.+ <br />+ <ul><li> tiene soporte para cÃ¡lculo de integrales definidas en multiples dimensiones.+ </li></ul>+ <br />+ <ul><li> incorpora un nuevo concepto llamado <strong>Step</strong>, similar a un procedimiento de Pascal, pero que permite declarar dependencias entre ellos.+ </li></ul>+ <br />+ <br />- </li><li> Sea posible ejecutarlo en la mayorÃ­a de las plataformas conocidas (MS Windows, Linux/Unix, Mac) y posiblemente en tecnologÃ­as embebidas como telÃ©fonos celulares (particularmente Nokia, que adquiriÃ³ la empresa que desarrolla las bibliotecas de programaciÃ³n QT).- </li><li> El lenguaje de base posee toda la potencia y la fexibilidad que nos asegure a futuro poder expandir el alcance del proyecto.- </li><li> El lenguaje de base es bien conocido, con excelentes desarrolladores al rededor de todo el mundo.+ <br />+ <ul><li> Sea posible ejecutarlo en la mayorÃ­a de las plataformas conocidas (MS Windows, Linux/Unix, Mac) y posiblemente en tecnologÃ­as embebidas como telÃ©fonos celulares (particularmente Nokia, que adquiriÃ³ la empresa que desarrolla las bibliotecas de programaciÃ³n QT).+ </li></ul>+ <br />+ <ul><li> El lenguaje de base posee toda la potencia y la fexibilidad que asegure a futuro poder expandir el alcance del proyecto.+ </li></ul>+ <br />+ <ul><li> El lenguaje de base es bien conocido, con excelentes desarrolladores alrededor de todo el mundo.+ </li></ul>+ <br />- En este <a class="wiki"  href="/<span class="diffchar">tiki-view_tracker.php?</span>tracker<span class="diffchar">Id=</span>1" rel="">Tracker</a> se organizan las tareas por hacer y quien las hace. Asi mismo esta conectado con el repositorio para mantener la trazabilidad de las tareas con el release de svn en que se implementan (o corrigen) si corresponde.<br />+ En este <a class="wiki"  href="/tracker1" rel="">Tracker</a> se organizan las tareas por hacer y quien las hace. Asi mismo esta conectado con el repositorio para mantener la trazabilidad de las tareas con el release de svn en que se implementan (o corrigen) si corresponde.<br />]]></description>
            <pubDate>Thu, 19 Nov 2009 16:55:58 +0100</pubDate>
        </item>
        <item>
            <title>Syntax</title>
            <link>http://www.hormigaproject.com.ar/Syntax</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>+ <div class="simplebox">Translation in progress.</div><br />+ <br />+ <h2 class="showhide_heading" id="Hormiga_Syntax"><div style="text-align: center;">Hormiga Syntax</div></h2>+ <span id='toc'><div id='toctitle'><h3>Table of contents</h3></div><ul class="toc"><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#M_dulos' class='link'><span style="color:#3366ff; background:">MÃ³dulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_m_dulos_Hormiga' class='link'>Directorio de mÃ³dulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_m_dulo' class='link'>Estructura de un mÃ³dulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#Hormiga_Syntax' class='link'><div style="text-align: center;">Hormiga Syntax</div></a>+ <ul><li><a href='#What_is_an_Hormiga_program_' class='link'><span style="color:#3366ff; background:">What is an Hormiga program?</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li></ul>+ </span><br />+ In this area it will be specified in the most possible clear way which is the language syntax, that is to say, in which way the programs should be written using Hormiga code.<br />+ <br />+ <h3 class="showhide_heading" id="What_is_an_Hormiga_program_"><span style="color:#3366ff; background:">What is an Hormiga program?</span></h3>+ An Hormiga program is a simple text file which contains a specific configuration of the engine (or interpreter) in a well defined and structured language. Through this configuration or programming, the interpreter will guide the final user to make the desired calculation.<br />+ El lenguaje definido consta de un grupo de palabras reservadas (o tokens) que estrucutran el lenguaje y de identificadores del usuario que le permiten configurar de forma flexible el motor.<br />+ <br />+ <h3 class="showhide_heading" id="Generalidades_del_lenguaje"><span style="color:#3366ff; background:">Generalidades del lenguaje</span></h3>+ El lenguaje Hormiga es insensible a mayusculas/minusculas, lo que significa que <em>VARIABLE</em> y <em>variable</em> se interpretan de igual manera, tanto para las palabras reservadas como para identificadores definidos por el usuario.<br />+ Un programa Hormiga se compone de una serie de sentencias, cada una de las cuales termina con la &quot;palabra&quot; (o simbolo) reservado: <strong>;</strong><br />+ <br />+ <h3 class="showhide_heading" id="Estructura_de_un_programa_Hormiga"><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></h3>+ A continuaciÃ³n se muestra la estructura general de un programa Hormiga. Los textos en <strong>negrita</strong> son palabras reservadas. Los bloques de texto encerrados por los sÃ­mbolos <strong>/*</strong> y <strong>*/</strong> son <em>comentarios</em>, lo que significa que ese bloque de texto no debe ser interpretado por el motor y solo se encuentra allÃ­ para claridad de quien programa.<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_programa">DeclaraciÃ³n de programa</h4>+ Todo programa Hormiga comienza con una sentencia de declaraciÃ³n de progrma, donde ademÃ¡s se le da un nombre:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>program</strong> ProgramaDeEjemplo <strong>;</strong></pre><br />+ AsÃ­ mismo, todo programa <strong>termina</strong> con una declaraciÃ³n de <em>fin de programa</em>. Podemos notar que es necesario repetir el nombre, para dejar claro que es lo que queremos hacer:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>end program</strong> ProgramaDeEjemplo <strong>;</strong></pre><br />+ Por lo tanto, podemos definir que el <strong><em>Cuerpo del programa</em></strong> es todo lo que queda encerrado entre las dos sentencias anteriores:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>program</strong> ProgramaDeEjemplo <strong>;</strong>+     <em>cuerpo del programa</em>+ <strong>end program</strong> ProgramaDeEjemplo <strong>;</strong></pre><br />+ En general, el cuerpo del programa es un conjunto de declaraciones. Mas concretamente, un programa Hormiga tiene la forma:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>program</strong> ProgramaDeEjemplo <strong>;</strong>+     <em>declaracion de magnitudes</em>+     <em>declaracion de constantes</em>+     <em>declaracion de funciones</em>+     declaracion de steps+ <strong>end program</strong> ProgramaDeEjemplo <strong>;</strong></pre><br />+ Las secciones que estan en <em>cursiva</em> son opcionales.<br />+ <br />+ <h3 class="showhide_heading" id="Elementos_de_un_programa_Hormiga"><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></h3>+ <h4 class="showhide_heading" id="Declaraci_n_de_magnitudes">DeclaraciÃ³n de magnitudes</h4>+ Dado que el lenguaje estÃ¡ orientado al cÃ¡lculo, generalmente de problemas fÃ­sicos, es necesario declarar las magnitudes con las cuales se operarÃ¡. Una magnitud tiene asociada una unidad principal, en la cual el motor realizarÃ¡ los cÃ¡lculos. A continuaciÃ³n declaramos una magnitud llamada <strong>Area</strong> y le <em>creamos asociada</em> una unidad llamada <strong>m2</strong> (que nos simbolizarÃ¡ <strong>metros cuadrados</strong>):<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare magnitude</strong> Area <strong>unit</strong> m2 <strong>;</strong></pre><br />+ Podemos agregar unidades adicionales (secundarias) asociadas a una <strong>magnitud definida previamente</strong>. Estas magnitudes adicionales puden ser utilizadas para mejorar la legibilidad del cÃ¡digo, evitar posibles errores de tipeo cuando los numeros son muy grandes (o muy pequeÃ±os) y codificar mÃ¡s cÃ³modamente. A continuaciÃ³n declaramos una <strong>nueva unidad</strong> llamada <strong>mm2</strong> asociada a la magnitud <strong>Area</strong> previamente declarada y especificamos que <em>1 mm2 = 0.000001 m2</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare unit</strong> mm2 <strong>for magnitude</strong> Area <strong>:=</strong> 0.000001 <strong>M2 ;</strong></pre><br />+ Las unidades a las que se hace referencia para la conversiÃ³n (m2 en este ejemplo) deben pertenecer a la misma magnitud para la que se estÃ¡ creando la unidad.<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_constantes">DeclaraciÃ³n de constantes</h4>+ Las constantes permiten declarar valores en un Ãºnico lugar y luego utilizarlos donde sea necesario. Las constantes tienen como objetivo hacer mas legible el cÃ³digo de los programas y definir un lugar Ãºnico desde el cual puede controlarse su valor. Como su nombre indica, las constantes no varÃ­an su valor durante la ejecuciÃ³n del programa. Cualquier intento de asignar modificar el valor de una constante provocarÃ¡ un error. A continuaciÃ³n se declaran algunas constantes (se supone declarada la magnitud <em>adimencional</em>):<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare constant</strong> PI <strong>magnitude</strong> adimencional <strong>:=</strong> 3.1416 <strong>;</strong>+ <strong>declare constant</strong> SupCircRadio2mm <strong>magnitude</strong> Area <strong>:=</strong> PI * 4 mm <strong>;</strong></pre><br />+ Luego podemos usar estas constantes, llamandolas por su nombre, en el resto del programa (o dentro del ambiente en el que fueron declaradas) para hacer referencia a su valor. En el ejemplo anterior puede verse el <em>uso</em> de la constante <em>PI</em> para calcular el valor de <em>SupCircRadio2mm</em>.<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_variables">DeclaraciÃ³n de variables</h4>+ Las variables son objetos del lenguaje similares a las constantes. Se diferencian de las Ãºltimas en que, como su nombre lo indica, su valor puede variar durante la ejecuciÃ³n del programa. Una veriable nos permite almacenar valores como pueden ser resultados de una cierta operaciÃ³n o cÃ¡lculo intermedio. A continuaciÃ³n se declara una variable llamada <strong>Superficie</strong> que representa un <strong><em>Area</em></strong>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare variable</strong> Superficie <strong>magnitude</strong> Area <strong>;</strong></pre><br />+ Como puede verse, una variable no se declara con un inicial valor asociado. Si bien el motor las inicializarÃ¡ con un valor 0 (cero), es tarea del programador cuidar de no usarlas sin haberles dado un valor previamente.<br />+ Para evitar malas prÃ¡cticas de programaciÃ³n, no se permite declarar variables en el ambito global (ver Ambitos mas adelante) sino que sÃ³lo pueden ser declaradas dentro del Ã¡mbito de una <em>FunciÃ³n</em> o un <em>Step</em>.<br />+ <h4 class="showhide_heading" id="Expresiones_aritm_ticas">Expresiones aritmÃ©ticas</h4>+ Las expresiones aritmÃ©ticas y booleanas son la base de cualquier cÃ¡lculo que querramos realizar. El motor del lenguaje es capaz de interpretar y realizar las siguientes operaciones aritmÃ©ticas:<br />+ <ul><li> <strong>Suma:</strong> <em>expresion</em> <strong>+</strong> <em>expresion</em>+ </li><li> <strong>Resta:</strong> <em>expresion</em> <strong>-</strong> <em>expresion</em>+ </li><li> <strong>MultiplicaciÃ³n:</strong> <em>expresion</em> <strong>*</strong> <em>expresion</em>+ </li><li> <strong>DivisiÃ³n:</strong> <em>expresion</em> <strong>/</strong> <em>expresion</em>+ </li><li> <strong>Factorial:</strong> <em>expresion</em> <strong>!</strong>+ </li><li> <strong>MÃ³dulo:</strong> <em>expresion</em> <strong>mod</strong> <em>expresion</em>+ </li></ul>+ donde <em>expresion</em> puede ser un simple nÃºmero (o constante numÃ©rica), un llamado a funciÃ³n o cualquier construcciÃ³n a partir de las operaciones anteriores; es decir una suma o una divisiÃ³n es tambiÃ©n una expresiÃ³n.<br />+ La presedencia de los operadores es la habitual y las operaciones pueden <em>asociarse</em> mediante el uso de <strong>( )</strong>, por ejemplo:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">Valor <strong>:= (</strong> 3 <strong>+</strong> 5 <strong>) / (</strong> 3 <strong>! ) ;</strong>+ Valor <strong>:=</strong> PI <strong>* (</strong> 3 <strong>+</strong> 5 <strong>) / (</strong> 3 <strong>! ) ;</strong></pre><br />+ Se aclara que en el contexto del ejemplo anterior, se ve la <em>asignaciÃ³n</em> de una <em>expresion</em> a una variable.<br />+ <h4 class="showhide_heading" id="Expresiones_booleanas">Expresiones booleanas</h4>+ Las expresiones booleanas serÃ¡n utilizadas en estructuras de control de flujo. Funcionan de un modo similar a las <em>expresiones aritmÃ©ticas</em>. Una expresiÃ³n booleana simple puede ser cualquiera de las siguientes, donde <em>expresion</em> es cualquier forma de expresiÃ³n aritmÃ©tica:<br />+ <ul><li> <strong>Igual:</strong> <em>expresion</em> <strong>=</strong> <em>expresion</em>+ </li><li> <strong>Distinto:</strong> <em>expresion</em> <strong>&lt;&gt;</strong> <em>expresion</em>+ </li><li> <strong>Mayor estricto:</strong> <em>expresion</em> <strong>&gt;</strong> <em>expresion</em>+ </li><li> <strong>Mayor o igual:</strong> <em>expresion</em> <strong>&gt;=</strong> <em>expresion</em>+ </li><li> <strong>Menor estricto:</strong> <em>expresion</em> <strong>&lt;</strong> <em>expresion</em>+ </li><li> <strong>Menor o igual:</strong> <em>expresion</em> <strong>&lt;=</strong> <em>expresion</em>+ </li></ul>+ Para lograr expresiones mas complejas, podemos convinar las anteriores mediante las operaciones siguientes. AquÃ­ una <em>expresiÃ³n booleana</em> ( en adelante <em>boolexp</em> ) puede ser una construcciÃ³n simple (cualquiera de las anteriores) o mas compleja (formada por otras <em>boolexp</em>).<br />+ Las operaciones lÃ³gicas disponibles son:<br />+ <ul><li> <strong>NegaciÃ³n: NOT</strong> <em>boolexp</em>+ </li><li> <strong>AND lÃ³gico:</strong> <em>boolexp</em> <strong>AND</strong> <em>boolexp</em>.+ </li><li> <strong>NOT lÃ³gico:</strong> <em>boolexp</em> <strong>OR</strong> <em>boolexp</em>+ </li></ul>+ El orden de precedencia es el mismo en el que se listaron: NOT, AND, OR.<br />+ Ejemplos:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">3 <strong>></strong> 5 <strong>/*</strong> falso <strong>*/</strong>+ 3 <strong><=</strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ 3 <strong><></strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>NOT</strong> 3 <strong>></strong> 5 <strong>/*</strong> verdadero, es lo mismo que: 3 <strong><=</strong> 5 <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) <=</strong> 3 <strong>AND</strong> 1 <strong><</strong> 5 <strong>/*</strong> falso <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) >=</strong> 3 <strong>AND</strong> 1 <strong><</strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) ></strong> 3 <strong>AND</strong> 1 <strong>>=</strong> 5 <strong>/*</strong> falso <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) <=</strong> 3 <strong>OR</strong> 1 <strong><</strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) >=</strong> 3 <strong>OR</strong> 1 <strong><</strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) ></strong> 3 <strong>OR</strong> 1 <strong>>=</strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>(</strong> 2 <strong>*</strong> PI <strong>) <</strong> 3 <strong>OR</strong> 1 <strong>>=</strong> 5 <strong>/*</strong> falso <strong>*/</strong>+ <strong>/*</strong> Unos ejemplos mas complejos <strong>*/</strong>+ 2 <strong><=</strong> 3 <strong>AND</strong> 1 <strong><</strong> 5 <strong>AND</strong> 7 <strong>></strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ 2 <strong><=</strong> 3 <strong>AND</strong> 1 <strong><</strong> 5 <strong>AND</strong> 7 <strong><=</strong> 5 <strong>/*</strong> falso <strong>*/</strong>+ 2 <strong><=</strong> 3 <strong>OR</strong> 1 <strong><</strong> 5 <strong>AND</strong> 7 <strong>></strong> 5 <strong>/*</strong> verdadero <strong>*/</strong>+ <strong>(</strong> 2 <strong><=</strong> 3 <strong>OR</strong> 1 <strong><</strong> 5 <strong>) AND</strong> 7 <strong>></strong> 5 <strong>/*</strong> falso <strong>*/</strong></pre><br />+ <h4 class="showhide_heading" id="Asignaciones">Asignaciones</h4>+ Las asignaciones permiten, valga la redundancia, asignarle un valor a una variable (perdiendo Ã©sta su valor anterior). En adelante, cuando se utilize la varible en una expresiÃ³n, tomarÃ¡ el nuevo valor. Para realizar una asignaciÃ³n se escribe el nombre de la variable a la que queremos cambiar su valor, seguida del sÃ­mbolo reservado <strong><em>:=</em></strong> y luego una expresion matemÃ¡tica (o un simple valor) terminada por <strong>;</strong>. A continuaciÃ³n se muestran algunos ejemplos:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>/*</strong> Asignamos una constante a una variable. En adelante ambas valen igual <strong>*/</strong>+ Superficie <strong>:=</strong> PI <strong>;</strong>+ <strong>/*</strong> Ahora hacemos que Superficie valga '5.3' <strong>*/</strong>+ Superficie <strong>:=</strong> 5.3 <strong>;</strong>+ <strong>/*</strong> Tambi&eacute;n podr&iacute;amos calcular la superficie de un c&iacute;rculo de radio 2 m <strong>*/</strong>+ Superficie <strong>:=</strong> PI <strong>*</strong> 4 <strong>;</strong>+ <strong>/*</strong> O utilizar la funcion que definiremos a continuaci&oacute;n para calcular la misma superficie <strong>*/</strong>+ Superficie <strong>:=</strong> SuperficieCirculo<strong>(</strong> 2 <strong>)</strong> <strong>;</strong></pre><br />+ La idea general es: el sÃ­mbolo ':=' indica una asignaciÃ³n. Del lado izquierdo solo puede haber el nombre de una varible declarada previamente. Del lado derecho puede aparecer cualquier tipo de expresiÃ³n, tan complicada como sea necesario ;) MÃ¡s adelante trataremos las expresiones.<br />+ <br />+ <h3 class="showhide_heading" id="Estructuras_de_control_de_flujo"><span style="color:#3366ff; background:">Estructuras de control de flujo</span></h3>+ Muchas veces, mientras realizamos un cÃ¡lculo, es necesario realizar una tarea u otra dependiendo de diferentes valores o condiciones que venimos recolectando durante el cÃ¡lculo. Este <em>camino</em> que venimos trazando con los cÃ¡lculos realizados (instrucciÃ³n a instrucciÃ³n) se llama <strong>flujo del programa</strong>. Existen diferentes <em>estructuras de control</em> que nos permiten especificar los pasos a seguir de manera completa, utilizando evaluaciÃ³n de condiciones booleanas para decidir que hacer.<br />+ <h4 class="showhide_heading" id="Estructura_de_ejecuci_n_condicional:_IF">Estructura de ejecuciÃ³n condicional: IF</h4>+ La estructura condicional <strong>IF</strong> nos permite realizar una tarea (u otra) dependiendo de una condiciÃ³n que declaramos. La instrucciÃ³n condicional <strong>IF</strong> tiene (en general) 3 bloques configurables: una condiciÃ³n booleana, un bloque de ejecuciÃ³n cuando la condiciÃ³n se cumple y otro bloque de ejecuciÃ³n en caso contrario. Por ejemplo:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>if</strong> Superficie <strong><></strong> 0 <strong>then</strong>+     Altura <strong>:=</strong> Volumen <strong>/</strong> Superficie <strong>;</strong>+ <strong>else</strong>+     Altura <strong>:=</strong> 1 <strong>;</strong>+ <strong>end if ;</strong></pre><br />+ En el ejemplo podemos ver:<br />+ <ul><li> la condiciÃ³n booleana: Superficie <strong>&lt;&gt;</strong> 0+ </li><li> el bloque de ejecuciÃ³n <em>verdadero</em>: Altura <strong>:=</strong> Volumen <strong>/</strong> Superficie <strong>;</strong>+ </li><li> el bloque de ejecuciÃ³n <em>falso</em>: Altura <strong>:=</strong> 1 <strong>;</strong>+ </li></ul>+ La condiciÃ³n booleana puede ser tan compleja como necesitemos y los bloques de ejecuciÃ³n pueden ser solo una instrucciÃ³n (como en el ejemplo) o varias seguidas.<br />+ La rama <em>falsa</em> es opcional, y no necesita estar presente siempre; otra estructura correcta de <strong>IF</strong> puede ser:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>if</strong> Superficie <strong><></strong> 0 <strong>then</strong>+     Altura <strong>:=</strong> Volumen <strong>/</strong> Superficie <strong>;</strong>+ <strong>end if ;</strong></pre><br />+ <h4 class="showhide_heading" id="Estructura_de_repetici_n_condicional:_WHILE">Estructura de repeticiÃ³n condicional: WHILE</h4>+ La estrucutura <strong>while</strong> es similar (en sintaxis) al <strong>if</strong> (sin la <em>rama falsa</em>). Posee una condiciÃ³n booleana y un bloque de ejecuciÃ³n. En este caso el bloque de ejecuciÃ³n serÃ¡ ejecutado 0 o mÃ¡s veces <strong><em>mientras</em></strong> la condiciÃ³n se cumpla:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">Distancia <strong>:=</strong> 100 <strong>;</strong>+ <strong>while</strong> Distancia <strong>></strong> 0 <strong>do</strong>+     Distancia <strong>:=</strong> Distancia <strong>/</strong> 2 <strong>;</strong>+ <strong>end while ;</strong></pre><br />+ En este ejemplo se muestra la sintaxis de la sentencia <strong>while</strong>. Sin embargo se introdujo un error a drede. Lo que se muestra programado es el problema del conejo que, para llegar a la meta, siempre recorre la mitad de la distancia que le falta para llegar. De esta forma, el primer tramo es recorrido rÃ¡pidamente pero, si bien se acerca indefinidamente, nunca logra realmente llegar (recordemos que estamos trabajando con nÃºmeros reales). Es necesario tener especial cuidado al escribir sentencias <strong>while</strong>, ya que podrÃ­amos caer en un <strong><em>ciclo infinito</em></strong> como en el ejemplo anterior. Debe verificarse que la ejecuciÃ³n del bloque de cÃ³digo haga que <strong><em>la condiciÃ³n (tarde o temprano) deje de cumplirse</em></strong>.<br />+ Por otro lado, si la condiciÃ³n no se cumple al menos la primera vez, el bloque de instrucciones <span style="text-decoration:underline;">NO se ejecuta</span>.<br />+ <h4 class="showhide_heading" id="Estructura_de_repetici_n_pre_establesida:_FOR">Estructura de repeticiÃ³n pre-establesida: FOR</h4>+ Si bien con la sentencia <strong>while</strong> alcanza para realizar cualquier tipo de ciclo, hay casos en que una determinada tarea debe repetirse un nÃºmero determinado de veces, o sobre una secuencia determinada de valores. Para ello existe una estructura de repeticiÃ³n llamada <strong>for</strong> que toma una variable (previamente declarada) y en cada ciclo, le asigna un valor obtenido de una secuencia (cuyo incremento queda determinado por el parÃ¡metro <em>Step</em>). En el siguiente ejemplo la variable <em>Valor</em> va tomando los valores: 1, 1.5, 2, 2.5, ... y asÃ­ hasta lo que valga la variable Maximo (que podrÃ­a ser el resultado de un cÃ¡lculo previo) que en nuestro ejemplo la hemos fijado en 5:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">Maximo <strong>:=</strong> 5 <strong>;</strong>+ /* otras lÃ­neas de cÃ³digo por acÃ¡ que quizas hagan algo... */+ <strong>for</strong> Valor <strong>:= [</strong> 1 <strong>..</strong> Maximo <strong>step</strong> 0.5 <strong>] do</strong>+     Producto <strong>:=</strong> Producto <strong>*</strong> Valor <strong>;</strong>+ <strong>end for ;</strong></pre><br />+ <br />+ <h3 class="showhide_heading" id="Funciones"><span style="color:#3366ff; background:">Funciones</span></h3>+ <h4 class="showhide_heading" id="Funciones_Internas">Funciones Internas</h4>+ El intÃ©rprete provee un conjunto de funciones de utilidad general. Una funciÃ³n interna es una herramienta provista que realiza una funcionalidad bien definida. Las funciones se invocan con uno o mas parÃ¡metros y retornan un valor especÃ­fico (al igual que cualquier <em>funciÃ³n matemÃ¡tica</em>).<br />+ Puede ver el listado de funciones internas disponibles en la pÃ¡gina de &quot;Funciones internas&quot;<br />+ <h4 class="showhide_heading" id="Utilizaci_n_de_funciones">UtilizaciÃ³n de funciones</h4>+ Una funciÃ³n se utiliza llamÃ¡ndola por su nombre seguido, entre parÃ©ntesis, de uno o mÃ¡s parÃ¡metros (segÃºn la funcÃ³n haya sido refinida); es decir una funciÃ³n concebida para recibir 2 parÃ¡metros debe ser invocada con <em><strong>exactamente</strong></em> 2 parÃ¡metros, del mismo tipo y en el <strong>mismo orden</strong>. Por ejemplo, el motor cuenta con una funciÃ³n interna llamada 'pow' que calcula una potenciaciÃ³n. Esta funciÃ³n recibe por parÃ¡metro 2 nÃºmeros: <em>base</em> y <em>exponente</em> (en ese orden). Cada uno de ellos puede ser un simple nÃºmero (o constante) o una expresiÃ³n. En el siguiente ejemplo se muestra un posible uso de la funciÃ³n <strong>pow</strong>. Supongamos que calculemos el volumen de un cilindor (PI*r2) de radio 3 y altura 5:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">Superficie <strong>:=</strong> PI <strong>*</strong> pow<strong>(</strong> 3 <strong>,</strong> 2 <strong>)</strong> <strong>*</strong> 5 <strong>;</strong>+ <strong>/*</strong> O si tenemos el radio y la altura en una variable llamada <em>radio</em> y <em>altura</em> respectivamente... <strong>*/</strong>+ Superficie <strong>:=</strong> PI <strong>*</strong> pow<strong>(</strong> radio <strong>,</strong> 2 <strong>)</strong> <strong>*</strong> altura <strong>;</strong>+ <strong>/*</strong> Contando con la funci&oacute;n <strong><em>sqrt</em></strong> que calcula la raiz cuadrada de su par&aacute;metro, podemos hacer algo (rid&iacute;culo) como... <strong>*/</strong>+ Superficie <strong>:=</strong> sqrt<strong>(</strong> pow<strong>(</strong> radio <strong>,</strong> 2 <strong>)</strong> <strong>) ;</strong></pre><br />+ En el Ãºltimo ejemplo la variable <em>Superficie</em> deberia valer simplemente <em>radio</em>, ya que estamos calculando la raÃ­z cuadrada del resultado de haber hecho <em>radio al cuadrado</em>. Esta no parece ser una operaciÃ³n muy Ãºtil; solo se buscaba mostrar que es posible dar por parÃ¡metro a una funciÃ³n el llamado a otra funciÃ³n (que podrÃ­a ser eventualmente la misma).<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_funciones_del_usuario">DeclaraciÃ³n de funciones del usuario</h4>+ Una funciÃ³n definida por el usuario nos permite crear un mÃ³dulo de cÃ³digo reutilizable que tiene una funcionalidad bien definida. Generalmente una funciÃ³n recibe uno o mas parÃ¡metros, elavoran un <em>Ãºnico</em> resultado asociado a sus parÃ¡metros y lo retornan. El usuario puede definir sus propias funciones en la medida que le sean necesarias y utilizarlas luego de la misma manera que cualquier otra funciÃ³n interna. A continuaciÃ³n se declara la funciÃ³n <strong>SuperficieCirculo</strong> encargada de calcular la superficie de un cÃ­rculo a partir de su radio; para ello recibe un Ãºnico parÃ¡metro, el <strong>radio</strong> del cÃ­rculo (asociado a una magnitud previamente declarada llamada <em>distancia</em>) que queremos calcular, y retorna una magnitud <em>Area</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare function</strong> SuperficieCirculo <strong>(</strong> Radio <strong>magnitude</strong> Distancia <strong>) magnitude</strong> Area <strong>;</strong>+     SuperficieCirculo <strong>:=</strong> PI <strong>*</strong> Radio <strong>*</strong> Radio <strong>;</strong>+ <strong>end function</strong> SuperficieCirculo <strong>;</strong></pre><br />+ Como podemos ver, los parÃ¡metros de una funciÃ³n se encierran entre parÃ©ntesis. En caso de requerir mÃ¡s de un parÃ¡metro, se los declara de igual manera separados por coma.<br />+ Para indicarle a una funciÃ³n cual es el valor que debe retornar, se realiza una asignaciÃ³n a una variable que lleva el mismo nombre que la funciÃ³n (como muestra la lÃ­nea central). A continuaciÃ³n se muestra un ejemplo de una funciÃ³n que recibe 2 parÃ¡metros (<em>superficie</em> y <em>altura</em>) y calcula el volumen de un cuerpo (simple). Una vez mÃ¡s, suponemos que las magnitudes aquÃ­ invovadas fueron previamente declaradas:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare function</strong> VolumenSimple <strong>(</strong> Altura <strong>magnitude</strong> Distancia <strong>,</strong> Superficie <strong>magnitude</strong> Area <strong>) magnitude</strong> Volumen <strong>;</strong>+     VolumenSimple <strong>:=</strong> Superficie <strong>*</strong> Altura <strong>;</strong>+ <strong>end function</strong> VolumenSimple <strong>;</strong></pre><br />+ Destacamos que los parÃ¡metros declarados de una funciÃ³n son <strong><em>Variables Implisitamente Declaradas</em></strong>. Por ello es posible usarlas para obtener su valor, como asÃ­ tambiÃ©n para asignarles uno nuevo. En este Ãºltimo caso el cambio tiene vigencia solo dentro del Ã¡mbito de la funciÃ³n (lo que se llama <em>pasaje de parametros por copia</em>).<br />+ Por otro lado, una funciÃ³n definida por el usuario se ejecuta mÃ¡s lentamente que una funciÃ³n interna. Por ello es deseable que en lo posible se utilizen las funciones internas antes de definir una <em>nueva</em> funciÃ³n que realice lo mismo.<br />+ <h4 class="showhide_heading" id="C_lculo_de_integrales_definidas">CÃ¡lculo de integrales definidas</h4>+ Es posible obtener el resultado de integrar una funciÃ³n en un rango definido. El cÃ¡lculo de la integral se realiza por <em>cÃ¡lculo iterativo</em>; es decir que la integral se convierte a una sumatoria por cada dimensiÃ³n integrada. Por ejemplo podemos integrar la funciÃ³n <em>sqrt</em> (que solo recibe un parÃ¡metro) en el intÃ©rvalo <a class="wiki"  href="4..9" rel="">4..9</a> utilizando un diferencial de <em>ancho</em> 0.01 (suponiendo declarada una variable llamada <em>resultado</em>):<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">resultado <strong>:=</strong> sqrt<strong>( [</strong> 4 <strong>..</strong> 9 <strong>step</strong> 0.01 <strong>] ) ;</strong></pre><br />+ En caso que la funciÃ³n reciba mÃ¡s de un parÃ¡metro, podemos integrarla sobre todos o un conjunto cualquiera de ellos. Por ejemplo:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>/*</strong> Sobre ambos par&aacute;metros... <strong>*/</strong>+ resultado <strong>:=</strong> pow<strong>( [</strong> 4 <strong>..</strong> 9 <strong>step</strong> 0.001 <strong>] , [</strong> 5 <strong>..</strong> 7 <strong>step</strong> 0.01 <strong>] ) ;</strong>+ <strong>/*</strong> Sobre solo uno de ellos, dejamos el otro <em>fijo</em>... <strong>*/</strong>+ resultado <strong>:=</strong> pow<strong>( [</strong> 4 <strong>..</strong> 9 <strong>step</strong> 0.001 <strong>] ,</strong> 8 <strong>) ;</strong></pre><br />+ La funciÃ³n <em>a integrar</em> puede ser cualquiera de las disponibles para uso general, ya sea <em><strong>interna</strong></em> o <em><strong>definida por el usuario</strong></em>. El intÃ©rprete realizarÃ¡ una integraciÃ³n simpre que <strong>al menos uno</strong> de los parÃ¡metros sea una construcciÃ³n <strong>pura</strong> de tipo <em>secuencia</em> (como las mostradas en los ejemplos anteriores). Ver <em>El operador Secuencia</em> para mas detalles.<br />+ <br />+ <h3 class="showhide_heading" id="Steps"><span style="color:#3366ff; background:">Steps</span></h3>+ Un step es una unidad funcional de cÃ¡lculo, en la cual es dividido el problema. En general un step queda delimitado por la necesidad de interacciÃ³n con el usuario final; como ser, pedirle que ingrese un valor o mostrarle un cierto resultado (final o intermedio). La estructura general de un Step es:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare step</strong> StepDeEjemplo <strong>;</strong>+     <em>declaracion bloque de dependencias</em>+     <em>declaracion de magnitudes</em>+     <em>declaracion de constantes</em>+     <em>declaracion de variables</em>+     <em>declaracion de capturas</em>+     <em>declaracion de reportes</em>+     declaracion de bloque de salida+     declaracion de bloque de ejecucion+     <em>declaracion de post-condicion de step</em>+ <strong>end program</strong> ProgramaDeEjemplo <strong>;</strong></pre><br />+ Las secciones escritas en <em>cursiva</em> son opcionales.<br />+ Los <em>bloques de dependencias</em>, <em>bloques de salida</em>, <em>capturas</em> y <em>reportes</em> son elementos exclusivos de los Steps.<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_capturas">DeclaraciÃ³n de capturas</h4>+ Las capturas permiten que el programa hormiga interactÃºe con el usuario final. Por medio de estas es posible solicitar, en medio de la ejecuciÃ³n, que el usuario cargue un valor (que serÃ¡ alojado en una variable declarada) que es parÃ¡metro para el programa, necesario para resolver el cÃ¡lculo especÃ­fico. Una captura se declara (generalmente) asociada a una <em>variable</em>, especificandose en que forma se quiere el ingreso del valor. Es posible controlar que el nÃºmero ingresado cumpla con siertas condiciones y que por defecto se inicie con un valor especÃ­fico. A continuaciÃ³n se muestra la declaraciÃ³n de una captura asociada a una varible (supuestamente definida previamente) llamada <em>altura</em>, la cual debe ser cargada con un valor positivo y que por defecto vale 5:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare capture for variable</strong> entrada <strong>type ctxt label</strong> "Ingrese el valor de altura"+           <strong>postcondition</strong> altura <strong>></strong> 0 <strong>default :=</strong> 5 <strong>;</strong></pre><br />+ El texto que sigue a la palabra reservada <em><strong>label</strong></em> encerrado entre comillas serÃ¡ mostrado en la interfaz grÃ¡fica, para guiar al usuario y darle a conocer que valor estÃ¡ configurando.<br />+ Las capturas se realizan <em>antes</em> de ejecutar el <em>Step</em> (su bolque de ejecuciÃ³n).<br />+ Existen otros tipos de captura adicionales como podemos ver a continuaciÃ³n:<br />+ <h5 class="showhide_heading" id="Captura_num_rica_controlada_gr_ficamente">Captura numÃ©rica controlada grÃ¡ficamente</h5>+ Esta captura es muy similar a la anterior, pero el valor se elije grÃ¡ficamente dentro de un rango acotado. Su sintaxis es como sigue:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare capture for variable</strong> entrada <strong>type cgui label</strong> "Elija el valor de altura"+           <strong>range [</strong> 0.05 <strong>..</strong> 10 <strong>step</strong> 0.005 <strong>] default :=</strong> 5 <strong>;</strong></pre><br />+ <h5 class="showhide_heading" id="Captura_de_selecci_n">Captura de selecciÃ³n</h5>+ Esta captura presenta al usuario una lista de <em>opciones</em> entre las cuales puede elejir solo una. Las opciones son representadas por una lista de cadenas separadas por coma (<strong>,</strong>) Cada una de las opciones es mapeada a un numero segun orden comenzando a contar desde 0 (cero). Asi la primer opciÃ³n siempre es retornada como 0 y es la opciÃ³n que el sistema entendera como <em>pre-seleccionada</em>; la segunda opciÃ³n sera retornada como 1 y asÃ­ sucesivamente.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare capture for variable</strong> entrada <strong>type cselect label</strong> "Seleccione el perfil:"+           <strong>options</strong> "Hierro cuadrado" <strong>,</strong> "Hierro T" <strong>,</strong> "Hierro L" <strong>;</strong></pre><br />+ <h5 class="showhide_heading" id="Mostrar_una_imagen_durante_las_capturas">Mostrar una imagen durante las capturas</h5>+ Puede mostrarse una imagen durante las capturas para complementar informacion al usuario o hacer la vista mas bonita ;) . Para esto se debe colocar un archivo con la imagen a mostrar dentro del rango de busqueda de modulos. Las imagenes no tienen lÃ­mite de tamaÃ±o pero se aconseja no colocar imÃ¡genes pesadas. Para asegurar la visiÃ³n de estas, el sistema escalarÃ¡ las imagenes que superen los 800x600 pixeles a esta medida (manteniendo el aspecto). Los formatos soportados son los comunes: png, gif, jpg, bmp,...<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare capture from file</strong> "table.png" <strong>type cimg label</strong> "Tabla de valores" <strong>;</strong></pre><br />+ <h5 class="showhide_heading" id="Mostrar_el_gr_fico_de_una_funci_n_de_2D">Mostrar el grÃ¡fico de una funciÃ³n de 2D</h5>+ Puede mostrarse el grÃ¡fico de una funciÃ³n, ya sea interna o declarada por el usuario, al momento de las capturas de un step. La funciÃ³n puede tener cualquier cantidad de parÃ¡metros (al menos 1), pero solo uno de ellos puede ser invocado con una <em>secuencia</em>, sobre la cual se graficarÃ¡. Dicho parÃ¡metro serÃ¡ tomado como el eje X de grÃ¡fico y la evaluaciÃ³n de la funciÃ³n ( f(x) ) como eje Y. El resto de los parÃ¡metros, si los hubiese, deben ser expresiones simples: variables, constantes o una combinaciÃ³n algebrÃ¡ica de Ã©stas incluyendo tambiÃ©n el invocaciÃ³n de funciones; es decir cualquier otra cosa que no sea una simple secuencia.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare capture type cplot label</strong> "GrÃ¡fico de sen(x) entre 0 y 2PI" <strong>function</strong> sin<strong>( [</strong>0 <strong>..</strong> 6.29 <strong>step</strong> 0.1<strong>] ) ;</strong>+ <strong>declare capture type cplot label</strong> "GrÃ¡fico de log5(x) entre 5 y 23" <strong>function</strong> log<strong>(</strong> 5 <strong>, [</strong>5 <strong>..</strong> 23 <strong>step</strong> 0.1<strong>] ) ;</strong></pre><br />+ Como siempre, el parÃ¡metro step regula la definiciÃ³n del grÃ¡fico; es decir, quÃ© tan preciso es. Un valor muy grande harÃ¡ que al grÃ¡fico le falten puntos, haciÃ©ndolo <em>cuadrado</em>; por el contrario, un valor execivamente pequeÃ±o provocarÃ¡ que consuma mayor cantidad de memoria y tome mÃ¡s tiempo realizarlo. Queda en el programador, quien conoce la naturaleza y caracterÃ­sticas de la funciÃ³n que grafica, ajustar el step debidamente.<br />+ Considere que, como se explicaba en el pÃ¡rrafo anterior, realizar el grÃ¡fico de una funciÃ³n puede consumir muchos recursos; por lo tanto, en caso que el grÃ¡fico de la funciÃ³n sea siempre el mismo (no varÃ­a de una ejecuciÃ³n a otra, ni depende de parÃ¡metros) seguramente sea conveniente que tome una imagen del mismo y la coloque usando una captura de tipo <em><strong>CIMG</strong></em>.<br />+ NotarÃ¡ que la sintaxis de invocaciÃ³n de la funciÃ³n es idÃ©ntica a un cÃ¡lculo de integraciÃ³n; no se preocupe, el intÃ©rprete sabrÃ¡ que hacer.<br />+ <h4 class="showhide_heading" id="Declaraci_n_de_reportes">DeclaraciÃ³n de reportes</h4>+ Los reportes son la contrapartida de las capturas, y sirven para mostrar un resultado. Tienen un formato similar al de la captura correspondiente, pero ya que son <em>solo informativos</em> no necesitan de las condiciones de control ni el valor por defecto. A continuaciÃ³n se muestra una declaraciÃ³n de <em>reporte</em> asociada a una variable (supuestamente definida previamente) llamada <em>resultado</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare report for variable</strong> resultado <strong>type ctxt label</strong> "Resultado del calculo" ;</pre><br />+ Los reportes se muestran <em>al finalizar</em> el bloque de ejecuciÃ³n del <em>Step</em>.<br />+ Existen otros tipos de captura adicionales como podemos ver a continuaciÃ³n:<br />+ <h5 class="showhide_heading" id="Reporte_num_rico_con_escala">Reporte numÃ©rico con escala</h5>+ Este reporte es similar al anterior pero muetra el valor dentro de una escala pre-establesida.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare report for variable</strong> entrada <strong>type cgui label</strong> "Altura:"+           <strong>range [</strong> 10.5 <strong>..</strong> 50 <strong>step</strong> 0.1 <strong>] ;</strong></pre><br />+ <h5 class="showhide_heading" id="Reporte_de_selecci_n">Reporte de selecciÃ³n</h5>+ Este reporte, como contrapartida a la captura de igual nombre, permite mostrar uno texto de los textos de la lista de opciones, segÃºn sea el valor de la variable asociada.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare report for variable</strong> entrada <strong>type cselect label</strong> "Perfil calculado:"+           <strong>options</strong> "Hierro cuadrado" <strong>,</strong> "Hierro T" <strong>,</strong> "Hierro L" <strong>;</strong></pre><br />+ <h5 class="showhide_heading" id="Mostrar_una_imagen_durante_los_reportes">Mostrar una imagen durante los reportes</h5>+ Al igual que durante las capturas, es posible mostrar imagenes durante los reportes. Puede ver a continuaciÃ³n un ejemplo de uso. Para mas informaciÃ³n vea el mas arriba <em>Mostrar una imagen durante las capturas</em>.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare report from file</strong> "table.png" <strong>type cimg label</strong> "Tabla de valores" <strong>;</strong></pre><br />+ <h5 class="showhide_heading" id="Mostrar_el_gr_fico_de_una_funci_n_de_2D_2">Mostrar el grÃ¡fico de una funciÃ³n de 2D</h5>+ Puede mostrarse el grÃ¡fico de una funciÃ³n, ya sea interna o declarada por el usuario, al momento de los reportes de un step. Vea el mismo apartado para las capturas para mas informaciÃ³n.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>declare report type cplot label</strong> "GrÃ¡fico de sen(x) entre 0 y 2PI" <strong>function</strong> sin<strong>( [</strong>0 <strong>..</strong> 6.29 <strong>step</strong> 0.1<strong>] ) ;</strong></pre><br />+ <h4 class="showhide_heading" id="Exportaci_n_de_datos">ExportaciÃ³n de datos</h4>+ Un <em>Step</em> puede exportar valores calculados para que estÃ©n disponibles para otros <em>Steps</em>. Esta tarea se realiza agregando las variables de interÃ©s en el <em>bloque de salida</em>. Las variables a exportar <strong>deben</strong> habar sido declaradas <strong>dentro</strong> del mismo <em>step</em> que la exporta. A continuaciÃ³n se muestra un ejemplo de <em>bloque de salida</em> que exporta una variable llamada <em>resultadoStep1</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>begin export ;</strong>+     <strong>variable</strong> resultadoStep1 <strong>;</strong>+ <strong>end export ;</strong></pre><br />+ En adelante, los Steps declarados despuÃ©s de este, podrÃ¡n acceder al dato calculado.<br />+ <h4 class="showhide_heading" id="Dependencias_entre_Steps">Dependencias entre Steps</h4>+ Cuando un <em>Step</em> necesita que otro se haya ejecutado previamente por que utiliza un valor que este Ãºltimo genera (calcula), estamos ante la precencia de una <em>dependencia</em>. Una dependencia se <em>declara</em> agregando el nombre de la variable que necesitamos utilizar (que es exportada por el Step que la genera) en el <em>bloque de dependencias</em>. A continuaciÃ³n se muestra un <em>bloque de dependencias</em> de un step que depende del supuesto <em>Step1</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>begin needs ;</strong>+     <strong>variable</strong> resultadoStep1 <strong>;</strong>+ <strong>end needs ;</strong></pre><br />+ Opcionalmente, aunque no es recomendado su uso, se puede declarar la dependencia de un step, suponiendo que el step que exporta la variable anterior es llamado <em>Step1</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>begin needs ;</strong>+     <strong>step</strong> Step1 <strong>;</strong>+ <strong>end needs ;</strong></pre><br />+ <h4 class="showhide_heading" id="Bloque_de_ejecuci_n">Bloque de ejecuciÃ³n</h4>+ Los <em>steps</em> cuentan con un bloque de ejecuciÃ³n, que son la razon de ser de un Step. Un paso de cÃ¡lculo debe tener al menos eso... un cÃ¡lculo. Los bloques de ejecuciÃ³n de los step tienen una forma similar a:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>begin execution ;</strong>+     miVariable <strong>:=</strong> resultadoStep1 * PI <strong>;</strong>+ <strong>end execution ;</strong></pre><br />+ <h4 class="showhide_heading" id="Declaraci_n_de_Post_Condiciones_de_Step">DeclaraciÃ³n de Post-Condiciones de Step</h4>+ Finalmente, los Steps pueden especificar una lista de Post-Condiciones compuestas por una condiciÃ³n booleana y un texto a mostrarse en caso que la evaluaciÃ³n de la condiciÃ³n falle (sea falsa). Estas condiciones se evalÃºan al finalizar la ejecuciÃ³n del step en cuestiÃ³n, y en caso de fallar alguna evita que los Steps que dependen de Ã©ste se habiliten para ejecuciÃ³n, ya que supone un estado no aceptable del presente Step.<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>postcondition</strong> miVariable <strong>></strong> 0 <strong>or show</strong> "El resultado es Negativo" <strong>;</strong>+ <strong>postcondition</strong> variable1 <strong><></strong> variable2 <strong>or show</strong> "Los valores son distintos" <strong>;</strong></pre><br />+ Como siempre, la expresiÃ³n booleana puede ser tan compleja como sea necesario, y el alcance de la misma es igual al del cuerpo del Step.<br />+ <h3 class="showhide_heading" id="Modulos"><span style="color:#3366ff; background:">Modulos</span></h3>+ El uso de modulos permite reutilizar partes de codigo en varios programas. Cada modulo es un archivo con un formato particular (similar al de un programa) que contiene una coleccion de <em><strong>elementos de programa Hormiga</strong></em>: <em>declaracion de magnitudes, unidades, constantes, funciones y steps</em> como asi tambien <em>declaraciones de uso de otros modulos</em>.<br />+ <h4 class="showhide_heading" id="Declaracion_de_uso">Declaracion de uso</h4>+ Las declaraciones de uso de modulo se colocan inmediatamente despues de la sentencia de declaraciÃ³n de <em>programa</em> o <em>modulo</em> y significa literalmente que esa sentencia sera reemplazada por el contenido del modulo invocado. En caso que este ultimo necesite mas modulos, estos seran tambien incluidos de forma automatica. A continuacion se da un ejemplo de <em>declaracion de uso de modulo</em>:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>program</strong> ProgramaDeEjemplo <strong>;</strong>+     <strong>needs module "</strong>sistemas/simela.hrm<strong>" ;</strong>+     <strong>needs module "</strong>otro_modulo.hrm<strong>" ;</strong>+     ...</pre><br />+ Cada declaracion de uso hace referencia a un archivo ubicado en un directorio definido por el sistema, o eventualmente en algun subdirectorio del mismo. Por esta razon, nunca se debe hacer referencia a un modulo utilizando una <em>ruta absoluta</em>. En el ejemplo anterior se declara el uso de 2 modulos; el primero se encuntra en un archivo llamado <em>simela.hrm</em> el cual esta alojado dentro de un subdirectorio llamado <em>sistemas</em>; el segundo hace referencia a un modulo cuyo archivo es llamado <em>otro_modulo.hrm</em>. Ambas direcciones de archivo son relativas al directorio de modulos Hormiga.<br />+ Cabe aclarar que para separar de directorios debe usarse la <em>barra a derecha</em> (<strong>/</strong>) para asegurar la portabilidad de los programas y modulos Hormiga.<br />+ <h4 class="showhide_heading" id="Directorio_de_modulos_Hormiga">Directorio de modulos Hormiga</h4>+ El directorio de modulos hormiga es el lugar a partir del cual lo modulos son buscados. Este directorio depende de la arquitectura sobre la cual el interprete es ejecutado (Windows, Linux, Mac, etc):<br />+ <ul><li><strong>En Windows:</strong> C:\hormiga\modules\+ </li><li><strong>En Linux:</strong> /usr/lib/hormiga/modules/+ </li><li><strong>En Mac OSX:</strong> /usr/lib/hormiga/modules/+ </li></ul>+ Esta configuracion puede ser sobre escrita utilizando la clave <em>Core/Modules_Path</em> en la configuracion de Hormiga (por ahora solo usuarios avanzados).<br />+ <h4 class="showhide_heading" id="Estructura_de_un_modulo">Estructura de un modulo</h4>+ Cada modulo debe ser declarado en archivos independientes y cada uno de ellos contiene solo un tipo de declaracion. Un archivo que declara modulos posee un formato como el siguiente:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;"><strong>module</strong> funciones_simela <strong>;</strong>+   <strong>needs module "</strong>sistemas/simela.hrm<strong>" ;</strong>+   <strong>declare function</strong> Area <strong>(</strong> b <strong>magnitude</strong> longitud<strong>,</strong> h <strong>magnitude</strong> longitud <strong>) magnitude</strong> area <strong>;</strong>+     A <strong>:=</strong> b <strong>*</strong> h  <strong>;</strong>+   <strong>end function</strong> Area <strong>;</strong>+ <strong>end module</strong> funciones_simela <strong>;</strong></pre><br />+ Un buen nombre para el archivo que contenga este modulo podria ser <em>funciones_simela.hrm</em> eventualmente alojado en algun subdirectorio como podria ser <em>funciones</em>. Este modulo usa otro modulo (que esta en el archivo sistemas/simela.hrm en el directorio de modulos) y declara una funcion llamada <em>Area</em>. Luego cualquier programa Hormiga podria usar esta funcion (o cualquier otro elemento declarado dentro de ese modulo o incluida por el) con solo declarar el uso de este modulo.<br />+ <br />+ <h3 class="showhide_heading" id="El_operador_Secuencia"><span style="color:#3366ff; background:">El operador Secuencia</span></h3>+ <h3 class="showhide_heading" id="Ambitos_de_las_declaraciones"><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></h3>+ <br />]]></description>
            <pubDate>Fri, 02 Oct 2009 19:37:06 +0100</pubDate>
        </item>
        <item>
            <title>Download and Installation</title>
            <link>http://www.hormigaproject.com.ar/Download+and+Installation</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- To install the language interpreter (core) you need to have the packages that a<span class="diffchar">r</span>e in the download area. Then, decompress in the same direcrory the content of all of them, for example <em>C:\Hormiga</em> . When you finish, that directory should have a file list like:<br />+ To install the language interpreter (core) you need to have the packages that <span class="diffchar">c</span>a<span class="diffchar">n b</span>e<span class="diffchar"> found</span> in the download area. Then, decompress in the same direcrory the content of all of them, for example <em>C:\Hormiga</em> . When you finish, that directory should have a file<span class="diffchar">s</span> list like:<br />]]></description>
            <pubDate>Fri, 02 Oct 2009 19:15:19 +0100</pubDate>
        </item>
        <item>
            <title>TOC</title>
            <link>http://www.hormigaproject.com.ar/TOC</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- <br />+ <span class="diffchar"><a class="wiki"  href="/faqs" rel="">FAQs</a></span><br />]]></description>
            <pubDate>Thu, 01 Oct 2009 14:55:54 +0100</pubDate>
        </item>
        <item>
            <title>Main</title>
            <link>http://www.hormigaproject.com.ar/Main</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- You can communicate with us by sending an e-mail to <<span class="diffchar">a </span>cla<span class="diffchar">ss</span>="<span class="diffchar">wik</span>i" <span class="diffchar"> hr</span>e<span class="diffchar">f</span>="develgroup<span class="diffchar">@</span>hormigaproject.com.ar<span class="diffchar">"</span> r<span class="diffchar">el=""</span>>develgroup<span class="diffchar">@</span>hormigaproject.com.ar</<span class="diffchar">a</span>> .<br />+ You can communicate with us by sending an e-mail to <<span class="diffchar">s</span>c<span class="diffchar">ript </span>la<span class="diffchar">nguage</span>="<span class="diffchar">Javascr</span>i<span class="diffchar">pt</span>" <span class="diffchar">typ</span>e="<span class="diffchar">text/javascript">document.write(protectEmail('</span>develgroup<span class="diffchar">', '</span>hormigaproject.com.ar<span class="diffchar">',</span> <span class="diffchar">'@'));</sc</span>r<span class="diffchar">ipt><noscript</span>>develgroup<span class="diffchar"> at </span>hormigaproject.com.ar</<span class="diffchar">noscript</span>> .<br />]]></description>
            <pubDate>Thu, 01 Oct 2009 14:29:07 +0100</pubDate>
        </item>
        <item>
            <title>Descarga e instalacion</title>
            <link>http://www.hormigaproject.com.ar/Descarga+e+instalacion</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- Pueden instalarlo facil<span class="diffchar">e</span>mente a partir del c<span class="diffchar">o</span>digo fuente, que pueden descargar del SVN (ver mas arriba). All<span class="diffchar">i</span> encontrar<span class="diffchar">a</span>n un archivo README con toda la informaci<span class="diffchar">o</span>n necesaria.<br />+ Pueden instalarlo facilmente a partir del c<span class="diffchar">Ã³</span>digo fuente, que pueden descargar del SVN (ver mas arriba). All<span class="diffchar">Ã­</span> encontrar<span class="diffchar">Ã¡</span>n un archivo README con toda la informaci<span class="diffchar">Ã³</span>n necesaria.<br />]]></description>
            <pubDate>Wed, 30 Sep 2009 19:55:25 +0100</pubDate>
        </item>
        <item>
            <title>Funciones internas</title>
            <link>http://www.hormigaproject.com.ar/Funciones+internas</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>- </li><li><a href='#sqrt_expresion_' class='link'><span style="color:#3366ff; background:">sqrt( expresion )</span></a>- </li><li><a href='#abs_expresion_' class='link'><span style="color:#3366ff; background:">abs( expresion )</span></a>- </li><li><a href='#ln_expresion_' class='link'><span style="color:#3366ff; background:">ln( expresion )</span></a>- </li><li><a href='#log_base_argumento_' class='link'><span style="color:#3366ff; background:">log( base , argumento )</span></a>- </li><li><a href='#sin_expresion_' class='link'><span style="color:#3366ff; background:">sin( expresion )</span></a>- </li><li><a href='#cos_expresion_' class='link'><span style="color:#3366ff; background:">cos( expresion )</span></a>- </li><li><a href='#tan_expresion_' class='link'><span style="color:#3366ff; background:">tan( expresion )</span></a>- </li></ul></li><li><a href='#Funciones_Internas' class='link'><div style="text-align: center;">Funciones Internas</div></a>- <ul><li><a href='#pow_base_exponente_' class='link'><span style="color:#3366ff; background:">pow( base , exponente )</span></a>+ <h3 class="showhide_heading" id="floor_expresion_"><span style="color:#3366ff; background:">floor( expresion )</span></h3>+ Calcula el valor entero inferior (piso) de <em>expresion</em>.<br />+ <h3 class="showhide_heading" id="ceil_expresion_"><span style="color:#3366ff; background:">ceil( expresion )</span></h3>+ Calcula el valor entero superior (techo) de <em>expresion</em>.<br />]]></description>
            <pubDate>Thu, 23 Jul 2009 14:21:18 +0100</pubDate>
        </item>
        <item>
            <title>FAQ</title>
            <link>http://www.hormigaproject.com.ar/FAQ</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>+ <h2 class="showhide_heading" id="Frequently_Asked_Questions_Preguntas_Frecuentes"><div style="text-align: center;">Frequently Asked Questions / Preguntas Frecuentes</div></h2>+ <span id='toc'><div id='toctitle'><h3>Table of contents</h3></div><ul class="toc"><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#M_dulos' class='link'><span style="color:#3366ff; background:">MÃ³dulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_m_dulos_Hormiga' class='link'>Directorio de mÃ³dulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_m_dulo' class='link'>Estructura de un mÃ³dulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#Hormiga_Syntax' class='link'><div style="text-align: center;">Hormiga Syntax</div></a>+ <ul><li><a href='#What_is_an_Hormiga_program_' class='link'><span style="color:#3366ff; background:">What is an Hormiga program?</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#Download_and_Installation' class='link'><span style="text-decoration:underline;">Download and Installation</span></a>+ <ul><li><a href='#Downloads' class='link'><span style="color:#3366ff; background:">Downloads</span></a>+ </li><li><a href='#Installation_Windows_' class='link'><span style="color:#3366ff; background:">Installation (Windows)</span></a>+ </li><li><a href='#Installation_Linux_and_others_' class='link'><span style="color:#3366ff; background:">Installation (Linux and others)</span></a>+ </li></ul></li><li><a href='#Download_and_Installation' class='link'><span style="text-decoration:underline;">Download and Installation</span></a>+ <ul><li><a href='#Downloads' class='link'><span style="color:#3366ff; background:">Downloads</span></a>+ </li><li><a href='#Installation_Windows_' class='link'><span style="color:#3366ff; background:">Installation (Windows)</span></a>+ </li><li><a href='#Installation_Linux_and_others_' class='link'><span style="color:#3366ff; background:">Installation (Linux and others)</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;"><strong>HORMIGA Project</strong></div></a>+ <ul><li><a href='#Tabla_de_contenidos' class='link'>Tabla de contenidos</a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;"><strong>HORMIGA Project</strong></div></a>+ <ul><li><a href='#Tabla_de_contenidos' class='link'>Tabla de contenidos</a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introduction' class='link'><span style="color:#3366ff; background:">Introduction</span></a>+ </li><li><a href='#User_Levels' class='link'><span style="color:#3366ff; background:">User Levels</span></a>+ </li><li><a href='#The_Language' class='link'><span style="color:#3366ff; background:">The Language</span></a>+ </li><li><a href='#The_Interpreter' class='link'><span style="color:#3366ff; background:">The Interpreter</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introduction' class='link'><span style="color:#3366ff; background:">Introduction</span></a>+ </li><li><a href='#User_Levels' class='link'><span style="color:#3366ff; background:">User Levels</span></a>+ </li><li><a href='#The_Language' class='link'><span style="color:#3366ff; background:">The Language</span></a>+ </li><li><a href='#The_Interpreter' class='link'><span style="color:#3366ff; background:">The Interpreter</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#Descarga_e_instalacion' class='link'><span style="text-decoration:underline;">Descarga e instalacion</span></a>+ <ul><li><a href='#Descargas' class='link'><span style="color:#3366ff; background:">Descargas</span></a>+ </li><li><a href='#Instalacion_Windows_' class='link'><span style="color:#3366ff; background:">Instalacion (Windows)</span></a>+ </li><li><a href='#Instalacion_Linux_y_otros_' class='link'><span style="color:#3366ff; background:">Instalacion (Linux y otros)</span></a>+ </li></ul></li><li><a href='#Descarga_e_instalacion' class='link'><span style="text-decoration:underline;">Descarga e instalacion</span></a>+ <ul><li><a href='#Descargas' class='link'><span style="color:#3366ff; background:">Descargas</span></a>+ </li><li><a href='#Instalacion_Windows_' class='link'><span style="color:#3366ff; background:">Instalacion (Windows)</span></a>+ </li><li><a href='#Instalacion_Linux_y_otros_' class='link'><span style="color:#3366ff; background:">Instalacion (Linux y otros)</span></a>+ </li></ul></li><li><a href='#Funciones_Internas' class='link'><div style="text-align: center;">Funciones Internas</div></a>+ <ul><li><a href='#floor_expresion_' class='link'><span style="color:#3366ff; background:">floor( expresion )</span></a>+ </li><li><a href='#ceil_expresion_' class='link'><span style="color:#3366ff; background:">ceil( expresion )</span></a>+ </li><li><a href='#pow_base_exponente_' class='link'><span style="color:#3366ff; background:">pow( base , exponente )</span></a>+ </li><li><a href='#sqrt_expresion_' class='link'><span style="color:#3366ff; background:">sqrt( expresion )</span></a>+ </li><li><a href='#abs_expresion_' class='link'><span style="color:#3366ff; background:">abs( expresion )</span></a>+ </li><li><a href='#ln_expresion_' class='link'><span style="color:#3366ff; background:">ln( expresion )</span></a>+ </li><li><a href='#log_base_argumento_' class='link'><span style="color:#3366ff; background:">log( base , argumento )</span></a>+ </li><li><a href='#sin_expresion_' class='link'><span style="color:#3366ff; background:">sin( expresion )</span></a>+ </li><li><a href='#cos_expresion_' class='link'><span style="color:#3366ff; background:">cos( expresion )</span></a>+ </li><li><a href='#tan_expresion_' class='link'><span style="color:#3366ff; background:">tan( expresion )</span></a>+ </li></ul></li><li><a href='#Funciones_Internas' class='link'><div style="text-align: center;">Funciones Internas</div></a>+ <ul><li><a href='#pow_base_exponente_' class='link'><span style="color:#3366ff; background:">pow( base , exponente )</span></a>+ </li><li><a href='#sqrt_expresion_' class='link'><span style="color:#3366ff; background:">sqrt( expresion )</span></a>+ </li><li><a href='#abs_expresion_' class='link'><span style="color:#3366ff; background:">abs( expresion )</span></a>+ </li><li><a href='#ln_expresion_' class='link'><span style="color:#3366ff; background:">ln( expresion )</span></a>+ </li><li><a href='#log_base_argumento_' class='link'><span style="color:#3366ff; background:">log( base , argumento )</span></a>+ </li><li><a href='#sin_expresion_' class='link'><span style="color:#3366ff; background:">sin( expresion )</span></a>+ </li><li><a href='#cos_expresion_' class='link'><span style="color:#3366ff; background:">cos( expresion )</span></a>+ </li><li><a href='#tan_expresion_' class='link'><span style="color:#3366ff; background:">tan( expresion )</span></a>+ </li></ul></li><li><a href='#Frequently_Asked_Questions_Preguntas_Frecuentes' class='link'><div style="text-align: center;">Frequently Asked Questions / Preguntas Frecuentes</div></a>+ <ul><li><a href='#Es_posible_utilizar_caracteres_griegos_tildes_o_dieresis_para_los_nombres_de_identificadores_' class='link'>Â¿Es posible utilizar caracteres griegos, tildes o dieresis para los nombres de identificadores?</a>+ </li><li><a href='#Como_puedo_declarar_una_variable_o_constante_sin_magnitud_como_el_caso_de_la_constantes_trigonometrica_PI_' class='link'>Â¿Como puedo declarar una variable o constante sin magnitud, como el caso de la constantes trigonometrica PI?</a>+ </li><li><a href='#Puedo_declarar_variables_y_constantes_con_igual_identificador_nombre_' class='link'>Â¿Puedo declarar variables y constantes con igual identificador (nombre)?</a>+ </li><li><a href='#Puedo_declarar_funciones_o_steps_con_igual_nombre_que_constantes_o_variables_' class='link'>Â¿Puedo declarar funciones o steps con igual nombre que constantes o variables?</a>+ </li></ul></li></ul>+ </span><br />+ <br />+ <h3 class="showhide_heading" id="Es_posible_utilizar_caracteres_griegos_tildes_o_dieresis_para_los_nombres_de_identificadores_">Â¿Es posible utilizar caracteres griegos, tildes o dieresis para los nombres de identificadores?</h3>+ No. Para los identificadores (nombres de: variables, constantes, magnitudes, unidades, funciones, steps, programas y modulos) solo se permiten caracteres standard correspondientes al idioma ingles. Basicamente estos son: letras <em>base</em> desde la A a la Z (mayusculas o minusculas) sin tildes ni ningun otro modificador , y numeros; no pudiendo en ningun caso ser un numero el primer caracter (siempre debe ser una letra). Sin embargo <strong>no existe restriccion</strong> para los caracteres utilizados en strings (cadenas de caracteres) los cuales van encerrados entre comillas, por ejemplo: <em>&quot;Esto es un string&quot;</em><br />+ <br />+ <h3 class="showhide_heading" id="Como_puedo_declarar_una_variable_o_constante_sin_magnitud_como_el_caso_de_la_constantes_trigonometrica_PI_">Â¿Como puedo declarar una variable o constante sin magnitud, como el caso de la constantes trigonometrica PI?</h3>+ Todas las variables, constantes o funciones deben ser declaradas asociadas a una magnitud. Para estos casos se deberia declarar una magnitud que los agrupe semanticamente, como bien podira ser declarar una magnitud llamada <em><strong>adimencional</strong></em>.<br />+ <br />+ <h3 class="showhide_heading" id="Puedo_declarar_variables_y_constantes_con_igual_identificador_nombre_">Â¿Puedo declarar variables y constantes con igual identificador (nombre)?</h3>+ No. Los identificadores de variables y constantes comparten el ambito de nombres. Esto quiere decir que no es posible declarar variables y constantes con igual nombre <em>en el mismo ambito</em>. En cambio si puede hacerse en ambitos distintos. Por ejemplo, como cada funcion tiene un ambito propio y hereda el ambito del programa; cualquier definicion de identificador de constante o variable dentro de una funciÃ³n (o step) sobreescribira (tapara) la existencia del identificador en el ambito superior:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">declare contant PI magnitude adimencional := 3.14 ;+ declare function PerimietroPreciso ( Radio magnitude Longitud ) magnitude Longitud ;+   declare contant <strong>PI</strong> magnitude adimencional := 3.14159265359 ;+   PerimietroPreciso := pow( Radio, 2 ) * <strong>PI</strong> ;+ end function PermietroPreciso ;</pre><br />+ Esto es totalmente valido y hace que <strong>dentro de la funcion</strong>, PI tenga su valor mas preciso. En el resto del programa seguira valiendo 3.14.<br />+ <br />+ <h3 class="showhide_heading" id="Puedo_declarar_funciones_o_steps_con_igual_nombre_que_constantes_o_variables_">Â¿Puedo declarar funciones o steps con igual nombre que constantes o variables?</h3>+ Si. El ambito de identificadores para nombres de funciones y steps es independiente del ambito de identificadores para constantes y variables. Esto es posible por que sintacticamente es diferenciable la invocacion de una funcion al uso de una variable. Por ello es posible tener una funcion y una variable con igual nombre, supongamos llamadas PI como en el ejemplo:<br />+ <pre class="codelisting" dir="ltr" style="white-space:pre-wrap; white-space:-moz-pre-wrap !important; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word;">declare contant PI magnitude adimencional := 3.14 ;+ declare function PI ( Radio magnitude Longitud ) magnitude Longitud ;+   PI := pow( Radio, 2 ) * 3.1 ;+ end function PI ;+ ...+ /* Sin parentesis, uso de variable: */+ A := 2 + PI ; /* A = <strong>5.14</strong> */+ + /* Con parentesis, llamado a funcion: */+ B := 2 + PI(1) /* B = 2 + pow(1,2) * 3.1 = <strong>5.1</strong> */</pre><br />+ <br />]]></description>
            <pubDate>Thu, 04 Jun 2009 18:06:03 +0100</pubDate>
        </item>
        <item>
            <title>Wiki Help</title>
            <link>http://www.hormigaproject.com.ar/Wiki+Help</link>
            <description><![CDATA[<style TYPE="text/css"> .diffchar { color:red; } </style>+ <div class="titlebar">Sample page elements</div>+ <br />+ <strong>These are produced by standard Tiki wiki syntax:</strong><br />+  {maketoc} :<br />+ <span id='toc'><div id='toctitle'><h3>Table of contents</h3></div><ul class="toc"><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#M_dulos' class='link'><span style="color:#3366ff; background:">MÃ³dulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_m_dulos_Hormiga' class='link'>Directorio de mÃ³dulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_m_dulo' class='link'>Estructura de un mÃ³dulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#Sintaxis_de_Hormiga' class='link'><div style="text-align: center;">Sintaxis de Hormiga</div></a>+ <ul><li><a href='#Que_es_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Que es un programa Hormiga</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introducci_n' class='link'><span style="color:#3366ff; background:">IntroducciÃ³n</span></a>+ </li><li><a href='#Niveles_de_usuarios' class='link'><span style="color:#3366ff; background:">Niveles de usuarios</span></a>+ </li><li><a href='#El_Lenguaje' class='link'><span style="color:#3366ff; background:">El Lenguaje</span></a>+ </li><li><a href='#El_Int_rprete' class='link'><span style="color:#3366ff; background:">El IntÃ©rprete</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#Hormiga_Syntax' class='link'><div style="text-align: center;">Hormiga Syntax</div></a>+ <ul><li><a href='#What_is_an_Hormiga_program_' class='link'><span style="color:#3366ff; background:">What is an Hormiga program?</span></a>+ </li><li><a href='#Generalidades_del_lenguaje' class='link'><span style="color:#3366ff; background:">Generalidades del lenguaje</span></a>+ </li><li><a href='#Estructura_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Estructura de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_programa' class='link'>DeclaraciÃ³n de programa</a>+ </li></ul></li><li><a href='#Elementos_de_un_programa_Hormiga' class='link'><span style="color:#3366ff; background:">Elementos de un programa Hormiga</span></a>+ <ul><li><a href='#Declaraci_n_de_magnitudes' class='link'>DeclaraciÃ³n de magnitudes</a>+ </li><li><a href='#Declaraci_n_de_constantes' class='link'>DeclaraciÃ³n de constantes</a>+ </li><li><a href='#Declaraci_n_de_variables' class='link'>DeclaraciÃ³n de variables</a>+ </li><li><a href='#Expresiones_aritm_ticas' class='link'>Expresiones aritmÃ©ticas</a>+ </li><li><a href='#Expresiones_booleanas' class='link'>Expresiones booleanas</a>+ </li><li><a href='#Asignaciones' class='link'>Asignaciones</a>+ </li></ul></li><li><a href='#Estructuras_de_control_de_flujo' class='link'><span style="color:#3366ff; background:">Estructuras de control de flujo</span></a>+ <ul><li><a href='#Estructura_de_ejecuci_n_condicional:_IF' class='link'>Estructura de ejecuciÃ³n condicional: IF</a>+ </li><li><a href='#Estructura_de_repetici_n_condicional:_WHILE' class='link'>Estructura de repeticiÃ³n condicional: WHILE</a>+ </li><li><a href='#Estructura_de_repetici_n_pre_establesida:_FOR' class='link'>Estructura de repeticiÃ³n pre-establesida: FOR</a>+ </li></ul></li><li><a href='#Funciones' class='link'><span style="color:#3366ff; background:">Funciones</span></a>+ <ul><li><a href='#Funciones_Internas' class='link'>Funciones Internas</a>+ </li><li><a href='#Utilizaci_n_de_funciones' class='link'>UtilizaciÃ³n de funciones</a>+ </li><li><a href='#Declaraci_n_de_funciones_del_usuario' class='link'>DeclaraciÃ³n de funciones del usuario</a>+ </li><li><a href='#C_lculo_de_integrales_definidas' class='link'>CÃ¡lculo de integrales definidas</a>+ </li></ul></li><li><a href='#Steps' class='link'><span style="color:#3366ff; background:">Steps</span></a>+ <ul><li><a href='#Declaraci_n_de_capturas' class='link'>DeclaraciÃ³n de capturas</a>+ <ul><li><a href='#Captura_num_rica_controlada_gr_ficamente' class='link'>Captura numÃ©rica controlada grÃ¡ficamente</a>+ </li><li><a href='#Captura_de_selecci_n' class='link'>Captura de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_las_capturas' class='link'>Mostrar una imagen durante las capturas</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Declaraci_n_de_reportes' class='link'>DeclaraciÃ³n de reportes</a>+ <ul><li><a href='#Reporte_num_rico_con_escala' class='link'>Reporte numÃ©rico con escala</a>+ </li><li><a href='#Reporte_de_selecci_n' class='link'>Reporte de selecciÃ³n</a>+ </li><li><a href='#Mostrar_una_imagen_durante_los_reportes' class='link'>Mostrar una imagen durante los reportes</a>+ </li><li><a href='#Mostrar_el_gr_fico_de_una_funci_n_de_2D_2' class='link'>Mostrar el grÃ¡fico de una funciÃ³n de 2D</a>+ </li></ul></li><li><a href='#Exportaci_n_de_datos' class='link'>ExportaciÃ³n de datos</a>+ </li><li><a href='#Dependencias_entre_Steps' class='link'>Dependencias entre Steps</a>+ </li><li><a href='#Bloque_de_ejecuci_n' class='link'>Bloque de ejecuciÃ³n</a>+ </li><li><a href='#Declaraci_n_de_Post_Condiciones_de_Step' class='link'>DeclaraciÃ³n de Post-Condiciones de Step</a>+ </li></ul></li><li><a href='#Modulos' class='link'><span style="color:#3366ff; background:">Modulos</span></a>+ <ul><li><a href='#Declaracion_de_uso' class='link'>Declaracion de uso</a>+ </li><li><a href='#Directorio_de_modulos_Hormiga' class='link'>Directorio de modulos Hormiga</a>+ </li><li><a href='#Estructura_de_un_modulo' class='link'>Estructura de un modulo</a>+ </li></ul></li><li><a href='#El_operador_Secuencia' class='link'><span style="color:#3366ff; background:">El operador Secuencia</span></a>+ </li><li><a href='#Ambitos_de_las_declaraciones' class='link'><span style="color:#3366ff; background:">Ambitos de las declaraciones</span></a>+ </li></ul></li><li><a href='#Download_and_Installation' class='link'><span style="text-decoration:underline;">Download and Installation</span></a>+ <ul><li><a href='#Downloads' class='link'><span style="color:#3366ff; background:">Downloads</span></a>+ </li><li><a href='#Installation_Windows_' class='link'><span style="color:#3366ff; background:">Installation (Windows)</span></a>+ </li><li><a href='#Installation_Linux_and_others_' class='link'><span style="color:#3366ff; background:">Installation (Linux and others)</span></a>+ </li></ul></li><li><a href='#Download_and_Installation' class='link'><span style="text-decoration:underline;">Download and Installation</span></a>+ <ul><li><a href='#Downloads' class='link'><span style="color:#3366ff; background:">Downloads</span></a>+ </li><li><a href='#Installation_Windows_' class='link'><span style="color:#3366ff; background:">Installation (Windows)</span></a>+ </li><li><a href='#Installation_Linux_and_others_' class='link'><span style="color:#3366ff; background:">Installation (Linux and others)</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;"><strong>HORMIGA Project</strong></div></a>+ <ul><li><a href='#Tabla_de_contenidos' class='link'>Tabla de contenidos</a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;"><strong>HORMIGA Project</strong></div></a>+ <ul><li><a href='#Tabla_de_contenidos' class='link'>Tabla de contenidos</a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introduction' class='link'><span style="color:#3366ff; background:">Introduction</span></a>+ </li><li><a href='#User_Levels' class='link'><span style="color:#3366ff; background:">User Levels</span></a>+ </li><li><a href='#The_Language' class='link'><span style="color:#3366ff; background:">The Language</span></a>+ </li><li><a href='#The_Interpreter' class='link'><span style="color:#3366ff; background:">The Interpreter</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#HORMIGA_Project' class='link'><div style="text-align: center;">HORMIGA Project</div></a>+ <ul><li><a href='#Introduction' class='link'><span style="color:#3366ff; background:">Introduction</span></a>+ </li><li><a href='#User_Levels' class='link'><span style="color:#3366ff; background:">User Levels</span></a>+ </li><li><a href='#The_Language' class='link'><span style="color:#3366ff; background:">The Language</span></a>+ </li><li><a href='#The_Interpreter' class='link'><span style="color:#3366ff; background:">The Interpreter</span></a>+ </li><li><a href='#Tracker' class='link'><span style="color:#3366ff; background:">Tracker</span></a>+ </li></ul></li><li><a href='#Descarga_e_instalacion' class='link'><span style="text-decoration:underline;">Descarga e instalacion</span></a>+ <ul><li><a href='#Descargas' class='link'><span style="color:#3366ff; background:">Descargas</span></a>+ </li><li><a href='#Instalacion_Windows_' class='link'><span style="color:#3366ff; background:">Instalacion (Windows)</span></a>+ </li><li><a href='#Instalacion_Linux_y_otros_' class='link'><span style="color:#3366ff; background:">Instalacion (Linux y otros)</span></a>+ </li></ul></li><li><a href='#Descarga_e_instalacion' class='link'><span style="text-decoration:underline;">Descarga e instalacion</span></a>+ <ul><li><a href='#Descargas' class='link'><span style="color:#3366ff; background:">Descargas</span></a>+ </li><li><a href='#Instalacion_Windows_' class='link'><span style="color:#3366ff; background:">Instalacion (Windows)</span></a>+ </li><li><a href='#Instalacion_Linux_y_otros_' class='link'><span style="color:#3366ff; background:">Instalacion (Linux y otros)</span></a>+ </li></ul></li><li><a href='#Funciones_Internas' class='link'><div style="text-align: center;">Funciones Internas</div></a>+ <ul><li><a href='#floor_expresion_' class='link'><span style="color:#3366ff; background:">floor( expresion )</span></a>+ </li><li><a href='#ceil_expresion_' class='link'><span style="color:#3366ff; background:">ceil( expresion )</span></a>+ </li><li><a href='#pow_base_exponente_' class='link'><span style="color:#3366ff; background:">pow( base , exponente )</span></a>+ </li><li><a href='#sqrt_expresion_' class='link'><span style="color:#3366ff; background:">sqrt( expresion )</span></a>+ </li><li><a href='#abs_expresion_' class='link'><span style="color:#3366ff; background:">abs( expresion )</span></a>+ </li><li><a href='#ln_expresion_' class='link'><span style="color:#3366ff; background:">ln( expresion )</span></a>+ </li><li><a href='#log_base_argumento_' class='link'><span style="color:#3366ff; background:">log( base , argumento )</span></a>+ </li><li><a href='#sin_expresion_' class='link'><span style="color:#3366ff; background:">sin( expresion )</span></a>+ </li><li><a href='#cos_expresion_' class='link'><span style="color:#3366ff; background:">cos( expresion )</span></a>+ </li><li><a href='#tan_expresion_' class='link'><span style="color:#3366ff; background:">tan( expresion )</span></a>+ </li></ul></li><li><a href='#Funciones_Internas' class='link'><div style="text-align: center;">Funciones Internas</div></a>+ <ul><li><a href='#pow_base_exponente_' class='link'><span style="color:#3366ff; background:">pow( base , exponente )</span></a>+ </li><li><a href='#sqrt_expresion_' class='link'><span style="color:#3366ff; background:">sqrt( expresion )</span></a>+ </li><li><a href='#abs_expresion_' class='link'><span style="color:#3366ff; background:">abs( expresion )</span></a>+ </li><li><a href='#ln_expresion_' class='link'><span style="color:#3366ff; background:">ln( expresion )</span></a>+ </li><li><a href='#log_base_argumento_' class='link'><span style="color:#3366ff; background:">log( base , argumento )</span></a>+ </li><li><a href='#sin_expresion_' class='link'><span style="color:#3366ff; background:">sin( expresion )</span></a>+ </li><li><a href='#cos_expresion_' class='link'><span style="color:#3366ff; background:">cos( expresion )</span></a>+ </li><li><a href='#tan_expresion_' class='link'><span style="color:#3366ff; background:">tan( expresion )</span></a>+ </li></ul></li><li><a href='#Frequently_Asked_Questions_Preguntas_Frecuentes' class='link'><div style="text-align: center;">Frequently Asked Questions / Preguntas Frecuentes</div></a>+ <ul><li><a href='#Es_posible_utilizar_caracteres_griegos_tildes_o_dieresis_para_los_nombres_de_identificadores_' class='link'>Â¿Es posible utilizar caracteres griegos, tildes o dieresis para los nombres de identificadores?</a>+ </li><li><a href='#Como_puedo_declarar_una_variable_o_constante_sin_magnitud_como_el_caso_de_la_constantes_trigonometrica_PI_' class='link'>Â¿Como puedo declarar una variable o constante sin magnitud, como el caso de la constantes trigonometrica PI?</a>+ </li><li><a href='#Puedo_declarar_variables_y_constantes_con_igual_identificador_nombre_' class='link'>Â¿Puedo declarar variables y constantes con igual identificador (nombre)?</a>+ </li><li><a href='#Puedo_declarar_funciones_o_steps_con_igual_nombre_que_constantes_o_variables_' class='link'>Â¿Puedo declarar funciones o steps con igual nombre que constantes o variables?</a>+ </li></ul></li><li><a href='#h1_heading' class='link'>h1 heading</a>+ <ul><li><a href='#h2_heading' class='link'>h2 heading</a>+ <ul><li><a href='#h3_heading' class='link'>h3 heading</a>+ <ul><li><a href='#h4_heading' class='link'>h4 heading</a>+ </li></ul></li></ul></li></ul></li></ul>+ </span><br />+ <div class="titlebar">A titlebar</div>+ <br />+ <h2 class="showhide_heading" id="h1_heading">h1 heading</h2>+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin consequat libero. Phasellus porta diam id justo. In eget neque ut metus aliquet bibendum. Curabitur lacinia aliquam sem. Praesent aliquam. Morbi quis tellus. Vestibulum nec neque commodo metus sagittis ullamcorper. Maecenas turpis. Mauris quis leo. Maecenas id felis. Nulla nec nibh. Morbi facilisis. Cras in ipsum a felis ornare dapibus.<br />+ <br />+ <h3 class="showhide_heading" id="h2_heading">h2 heading</h3>+ Nullam mi. Praesent vehicula consectetuer tortor. Mauris venenatis leo at metus. Ut sit amet enim. Aenean tortor orci, hendrerit a, eleifend quis, pharetra eu, felis.<br />+ <br />+ <h4 class="showhide_heading" id="h3_heading">h3 heading</h4>+ Vestibulum dignissim. Praesent non magna id ipsum iaculis pharetra. Nam tristique vestibulum felis. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Fusce eget nisi. Nullam quis nisi.<br />+ <br />+ <h5 class="showhide_heading" id="h4_heading">h4 heading</h5>+ Cras euismod lectus vel metus. Praesent gravida. Nunc molestie mattis justo. Curabitur ornare, felis et vulputate dapibus, leo est condimentum enim, blandit ultrices orci mauris at eros. Pellentesque eu arcu eu massa mattis rhoncus. Ut volutpat mi in ligula. Pellentesque vitae tellus quis nibh feugiat ornare. Nullam arcu. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.<br />+ <br />+ <ul><li>An unordered list item+ <ul><li>A subitem+ </li></ul></li></ul>+ And some text<br />+ <ul><li>Another item+ </li></ul>+ . . . and more text . . .<br />+ <ul><li>Item 3+ </li></ul>+ . . . and some more text, to illustrate the line spacing.<br />+ <br />+ A table:<br />+ <table class="wikitable"><tr><td class="wikicell" >Row One, Column One</td><td class="wikicell" >Row One, Column Two</td></tr><tr><td class="wikicell" >Row Two, Column One</td><td class="wikicell" >Row Two, Column Two</td></tr></table><br />+ <br />+ <div class="simplebox">A box</div><br />+ <br />+ A <a class="wiki external" target="_blank" href="http://tikiwiki.org" rel="external">link</a><img border="0" class="externallink" src="img/icons/external_link.gif" alt=" (external link)" /><br />+ <br />+ <strong>And these are produced by wiki plugins:</strong><br />+ <br />+ Quote plugin:<br />+ <div class='quoteheader'>Quote:</div><div class='quotebody'>Just what do you think you're doing, Dave?<br /><br />--HAL, in 2001: A Space Odyssey (1968)</div><br />+ <br />+ Code plugin:<br />+ <pre class="codelisting" dir="ltr" style="overflow:auto;">{Hello World in Pascal}+ + program HelloWorld(output);+ begin+   WriteLn('Hello World!');+ end.</pre><br />+ <br />+ <br />+  {FANCYTABLE()}  example:<br />+ <table class="normal" id="fancytable_1"><thead><tr><th>head one</th><th>head two</th><th>head three</th></tr></thead><tbody><tr><td class="odd">cell one</td><td class="odd">cell two</td><td class="odd">cell three</td></tr><tr><td class="even">r2 c1</td><td class="even"> r2 c2</td><td class="even"> r3 c2</td></tr></tbody></table><br />+ <br />+ <br />]]></description>
            <pubDate>Wed, 20 May 2009 16:55:26 +0100</pubDate>
        </item>
    </channel>
</rss>
