[Programación]: jEdit, editor de texto avanzado

jEdit es un editor de texto con muchas herramientas para ayudar en el trabajo del programador con muchas y buenas utilidades. Además está escrito en Java, lo que le confiere al programa una capacidad multiplataforma para aquellos desarrolladores que utilicen otros sistemas, como Linux y Mac, puedan usarlo.

jEdit permite el auto-formateado y resaltado de código en más de 130 lenguajes diferentes, tratado de código en forma de árbol con posibilidad de plegado y ocultado de partes, se puede dividir en zonas para trabajar más cómodamente, soporta codificación UTF-8 y Unicode. También permite plugins que se instalarán de forma muy sencilla desde el propio menú del programa una vez instalado.

Información

  • Plataforma: Windows/Linux/Mac (Java)
  • Licencia: Open Source
  • Precio: Gratuito
  • Enlace de descarga: jEdit

via Bitelia

VN:F [1.9.12_1141]
Rating: 5.0/5 (4 votes cast)
VN:F [1.9.12_1141]
Rating: +4 (from 4 votes)

[C] – Recursividad

En mi primer día de clases en Programación 2 estuvimos viendo recursividad. ¿Qué es recursividad? Es la forma en la que se especifica un proceso basado en su propia definición. Para entenderlo, voy a citar el ejemplo de mi profesor:

Para ir de un punto A a un punto B puedo ir caminando de a un paso, entonces teniendo la función “ir_al_punto_B” puedo escribir la primer acción que es “dar_un_paso”, en pseudocódigo sería:

ir_al_punto_B()
{
   dar_un_paso;
   return ir_al_punto_B();
}

Ahora, ¿qué pasa cuando llego al punto B? Si no hay un corte, mi función se convierte en un bucle infinito provocando un excesivo uso de memoria provocando el cierre de mi programa. Para solucionar esto, se hace:

ir_al_punto_B()
{
   dar_un_paso;
   si no llegué al punto B
      ir_al_punto_B();
}

Por ejemplo, el factorial.

3! = 3 · (3-1)!
   = 3 · 2!
   = 3 · 2 · (2-1)!
   = 3 · 2 · 1!
   = 3 · 2 · 1 · (1-1)!
   = 3 · 2 · 1 · 0!
   = 3 · 2 · 1 · 1
   = 6
unsigned int factorial(unsigned int n)
{
    if (n > 1)
    {
        return n * factorial(n - 1);
    }
    else
    {
        return 1;
    }
}

Función recursiva para la Multiplicación:

unsigned int multiplicacion(unsigned int a, unsigned int b)
{
    if (b == 0)
    {
        return 0;
    }
    else
    {
        return a + multiplicacion(a, b - 1);
    }
}

¿Cuál es su funcionamiento interno?

¡Tener en cuenta la función de arriba para el seguimiento!

1- Al no ser 0(cero) el valor de b, se analiza la parte falsa del IF y se hace un return llamandose a si misma.

2- Cuando se procesa otra vez la función, el valor de b sigue siendo diferente a 0(cero), se hace un return llamandose a si misma.

3- Luego de este último return, el valor de b pasa a valer 0(cero) y se termina la función quedando pendiente todas las llamadas a la función volviendo hacia atrás devolviendo los resultados. En esta instancia, el return devuelve la suma de 2 + 0 (el resultado de multiplicacion(2, 0) es 0) retornandosela a la instancia anterior.

4- En esta instancia, el valor que devuelve el return es 2 + 2. El resultado de multiplicación(2, 1) es 2). Luego, el valor 4 de este return pasa a la siguiente instancia: 2 + multiplicacion(2, 2) => 2 + 4 = 6 => 2 x 3 = 6

Esto es una introducción básica a recursividad, la semana próxima estaré posteando más cosas. ¡Espero que les sirva!

VN:F [1.9.12_1141]
Rating: 5.0/5 (4 votes cast)
VN:F [1.9.12_1141]
Rating: +4 (from 4 votes)