EJERCICIOS PRÁCTICOS DE DESARROLLO DE APLICACIONES

Ejercicio 2: Creación y Uso de Bibliotecas de Funciones

Introducción Teórica: Bibliotecas de Funciones

Concepto: Las bibliotecas son colecciones de funciones reutilizables que:

  • Organizan código relacionado
  • Promueven la reutilización
  • Facilitan el mantenimiento
  • Abstractan complejidad

Tipos comunes:

Bibliotecas estándar (como math.h en C)
Paquetes/módulos (como NumPy en Python)
APIs específicas de dominio

Ejercicio Práctico

Objetivo:

Crear una biblioteca JavaScript para operaciones matemáticas avanzadas y usarla en una aplicación web.

Enunciado:

  1. Crear archivo mathlib.js con funciones para:
    • Cálculo de factorial
    • Números primos
    • Fibonacci
    • Conversión de bases numéricas
  2. Desarrollar página HTML que importe la biblioteca
  3. Implementar interfaz para probar todas las funciones

Implementación:

Factorial

Número Primo

Secuencia Fibonacci

Conversión de Base

Código de la Biblioteca

// Biblioteca de operaciones matemáticas avanzadas
const MathLib = {
    // Calcula factorial de n (n!)
    factorial: function(n) {
        if (n < 0) throw "Factorial no definido para negativos";
        if (n === 0 || n === 1) return 1;
        let result = 1;
        for (let i = 2; i <= n; i++) {
            result *= i;
        }
        return result;
    },
    
    // Verifica si un número es primo
    isPrime: function(num) {
        if (num <= 1) return false;
        if (num === 2) return true;
        if (num % 2 === 0) return false;
        const sqrtNum = Math.sqrt(num);
        for (let i = 3; i <= sqrtNum; i += 2) {
            if (num % i === 0) return false;
        }
        return true;
    },
    
    // Genera secuencia Fibonacci hasta n términos
    fibonacci: function(n) {
        if (n <= 0) return [];
        if (n === 1) return [0];
        const sequence = [0, 1];
        for (let i = 2; i < n; i++) {
            sequence.push(sequence[i-1] + sequence[i-2]);
        }
        return sequence;
    },
    
    // Convierte número entre bases (2-36)
    convertBase: function(num, fromBase, toBase) {
        if (fromBase < 2 || fromBase > 36 || toBase < 2 || toBase > 36) {
            throw "Bases deben estar entre 2 y 36";
        }
        const decimal = parseInt(num, fromBase);
        return decimal.toString(toBase);
    }
};

// Exportar para uso en navegador
if (typeof window !== 'undefined') {
    window.MathLib = MathLib;
}
☰   UF2215-Contenidos