ComenzarEmpieza gratis

Calcular raíces cuadradas con un bucle for

Igual que en R, los bucles for de C++ ejecutan el mismo código un número determinado de veces, cambiando solo un valor índice en cada iteración. Sin embargo, la sintaxis de un bucle for es un poco más compleja que en R.

for(int i = 0, i < n, i++) {
  // Do something
}
  • int i = 0 declara que el índice es un entero (lo más habitual) y establece su valor en 0 en la primera iteración.
  • i < n define la condición de iteración: cuando i alcanza el valor n, esta condición falla y el bucle deja de ejecutarse.
  • i++ significa incrementar el valor de i en 1 en cada iteración.

Aquí vas a completar la definición de una función para calcular la raíz cuadrada mediante el método babilónico. (En código real, deberías usar sqrt(), que utiliza un algoritmo moderno más rápido.)

Este ejercicio forma parte del curso

Optimizar código de R con Rcpp

Ver curso

Instrucciones del ejercicio

  • Inicializa una variable local double x con uno.
  • Especifica un bucle for.
    • Inicializa un entero, i, en 0.
    • Define la condición de iteración como i menor que n.
    • Incrementa i en uno en cada paso.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

#include 
using namespace Rcpp;

// [[Rcpp::export]]
double sqrt_approx(double value, int n) {
    // Initialize x to be one
    double x = ___;
    // Specify the for loop
    ___(int i = ___; ___; ___) {
        x = (x + value / x) / 2.0;
    }
    return x;
}

/*** R
sqrt_approx(2, 10)
*/
Editar y ejecutar código