Skip to content

En este archivo exploreremos la serie de fibonacci

FIBONACCII

LENGUAJES DE PROGRAMACIÓN DE DISTINTOS PARADIGMAS PARA PROGRAMAR FIBONACCI

JavaScript

En forma de loop

// javascript

function _fibonnacci(_base) {
    let _start_value = 0;
    let _next_value = 1;

    for(let i = 0; i < _base; i ++) {
        let _backup = _start_value;
        _start_value = _next_value; 
        _next_value = _backup + _next_value;
        console.log((i + 1) + ": " + _backup);
    }   
}

_fibonnacci(10)

Recursivo

function recursiveFibonacci(_iterations, _current = 0, _next = 1, _count = 0) {
  if (_count >= _iterations) {
    return;
  }

  console.log(_current);

  // Llamamos a la función recursivamente con los siguientes números de Fibonacci
  recursiveFibonacci(_iterations, _next, _current + _next, _count + 1);
}

// Llamamos a la función e indicamos cuántos números de Fibonacci queremos imprimir (por ejemplo, 10)
recursiveFibonacci(20);

C++

Usando ciclos

#include <iostream>

void printFibonacci(int _iterations) {
  int current = 0;
  int next = 1;

  for (int i = 0; i < _iterations; i++) {
    std::cout << current << std::endl;
    int temp = current;
    current = next;
    next = temp + next;
  }
}

int main() {
  // Llamamos a la función e indicamos cuántos números de Fibonacci queremos imprimir (por ejemplo, 10)
  int iterations = 10;
  printFibonacci(iterations);

  return 0;
}

Recursivo no. 1

#include <iostream>

// Función para calcular el número Fibonacci en la posición n
int fibonacci(int n) {
    if (n == 0) {
        return 0;
    } else if (n == 1) {
        return 1;
    } else {
        int a = 0;
        int b = 1;
        int result = 0;

        for (int i = 2; i <= n; ++i) {
            result = a + b;
            a = b;
            b = result;
        }

        return result;
    }
}

int main() {
    int n;
    std::cout << "Ingrese el valor de n: ";
    std::cin >> n;

    std::cout << "La secuencia de Fibonacci hasta el término " << n << " es:" << std::endl;
    for (int i = 0; i <= n; ++i) {
        std::cout << fibonacci(i) << " ";
    }

    return 0;
}

Recursivo no. 2

#include <iostream>

void printFibonacciRecursive(int _iterations, int current = 0, int next = 1, int count = 0) {
  if (count >= _iterations) {
    return;
  }

  std::cout << current << std::endl;

  // Llamamos a la función recursivamente con los siguientes números de Fibonacci
  printFibonacciRecursive(_iterations, next, current + next, count + 1);
}

int main() {
  // Llamamos a la función e indicamos cuántos números de Fibonacci queremos imprimir (por ejemplo, 10)
  int iterations = 80;
  printFibonacciRecursive(iterations);

  return 0;
}

Fase 2, información sobre el lenguaje

C++

Características principales del lenguaje:

  • Lenguaje de programación de alto nivel: C++ es un lenguaje de programación de alto nivel que permite a los programadores escribir código más fácilmente comprensible y mantenible en comparación con lenguajes de bajo nivel como el lenguaje ensamblador.

  • Orientación a objetos: C++ es un lenguaje orientado a objetos, lo que significa que permite la creación de clases y objetos para modelar problemas del mundo real, lo que facilita la organización y reutilización del código.

  • Rendimiento: C++ se utiliza en aplicaciones que requieren un alto rendimiento, como juegos, sistemas operativos y aplicaciones de tiempo real, gracias a su capacidad para trabajar a nivel de hardware y optimización.

  • Librerías estándar: C++ tiene una amplia librería estándar que proporciona muchas funciones y estructuras de datos predefinidas para simplificar el desarrollo de software.

Ventajas y desventajas:

Ventajas:

  • Alto rendimiento y control de recursos.
  • Versatilidad en el desarrollo de aplicaciones, incluidas aplicaciones de sistemas y juegos.
  • Amplia comunidad y soporte.
  • Orientación a objetos que facilita la reutilización de código.

Desventajas:

  • Mayor complejidad en comparación con algunos lenguajes de programación más modernos.
  • Mayor riesgo de errores de programación debido a la gestión manual de memoria.
  • Curva de aprendizaje más empinada para principiantes.

Usos más comunes del lenguaje:

  • Desarrollo de juegos.
  • Programación de sistemas y control de hardware.
  • Aplicaciones de tiempo real, como sistemas de control y robótica.
  • Aplicaciones científicas y matemáticas.

Ejemplos de casos ideales para el lenguaje:

  • Creación de un motor de juegos para un videojuego de alto rendimiento.
  • Programación de un sistema operativo o controladores de dispositivo.
  • Desarrollo de software para aplicaciones de simulación científica.

JavaScript

Características principales del lenguaje:

  • Lenguaje de scripting: JavaScript es un lenguaje de scripting que se ejecuta en el navegador web del cliente, lo que lo hace ideal para el desarrollo web.

  • Lenguaje de alto nivel: JavaScript es un lenguaje de alto nivel con una sintaxis sencilla que facilita la escritura de código.

  • Orientación a objetos: Aunque JavaScript es multiparadigma, se utiliza comúnmente para programación orientada a objetos, lo que permite la creación de objetos y prototipos.

  • Interacción con el DOM: JavaScript se utiliza para manipular el Document Object Model (DOM) en las páginas web, lo que permite crear páginas web dinámicas e interactivas.

Ventajas y desventajas:

Ventajas:

  • Ampliamente utilizado en el desarrollo web, lo que lo hace esencial para crear sitios web interactivos.
  • Fácil de aprender y utilizar para tareas en el lado del cliente.
  • Comunidad activa y muchas bibliotecas y marcos de trabajo disponibles.

Desventajas:

  • Limitado al entorno del navegador para el lado del cliente.
  • Rendimiento más lento en comparación con lenguajes compilados.
  • Dificultades de seguridad en el lado del cliente si no se maneja adecuadamente.

Usos más comunes del lenguaje:

  • Desarrollo web (front-end): Creación de sitios web dinámicos e interactivos.
  • Desarrollo web (back-end): Uso de Node.js para construir servidores y aplicaciones del lado del servidor.
  • Aplicaciones de servidor en tiempo real, como aplicaciones de chat en tiempo real.

Ejemplos de casos ideales para el lenguaje:

  • Creación de una aplicación web interactiva que responde a eventos del usuario.
  • Desarrollo de un sitio web de comercio electrónico con funcionalidades de carrito de compras y pagos en línea.
  • Construcción de una aplicación de chat en tiempo real utilizando Node.js y WebSocket.

Tabla comparativa

Esta tabla proporciona una comparación rápida de los aspectos clave de C++ y JavaScript en términos de características, ventajas, desventajas, usos comunes y ejemplos de casos ideales.

Aspecto C++ JavaScript
Características Principales - Lenguaje de alto nivel - Orientación a objetos - Rendimiento - Librerías estándar - Lenguaje de scripting - Lenguaje de alto nivel - Orientación a objetos - Interacción con el DOM
Ventajas - Alto rendimiento y control de recursos - Versatilidad en desarrollo - Amplia comunidad y soporte - Orientación a objetos - Ampliamente utilizado en desarrollo web - Fácil de aprender - Comunidad activa - Interacción con el DOM
Desventajas - Mayor complejidad - Mayor riesgo de errores - Curva de aprendizaje empinada - Limitado al entorno del navegador - Rendimiento más lento - Desafíos de seguridad
Usos Comunes - Desarrollo de juegos - Programación de sistemas - Aplicaciones de tiempo real - Aplicaciones científicas - Desarrollo web (front-end) - Desarrollo web (back-end) - Aplicaciones de servidor en tiempo real
Ejemplos de Casos Ideales - Motor de juegos de alto rendimiento - Sistemas operativos y controladores - Simulación científica - Aplicación web interactiva - Sitio web de comercio electrónico - Aplicación de chat en tiempo real