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 = 0declara que el índice es un entero (lo más habitual) y establece su valor en0en la primera iteración.i < ndefine la condición de iteración: cuandoialcanza el valorn, esta condición falla y el bucle deja de ejecutarse.i++significa incrementar el valor deien1en 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
Instrucciones del ejercicio
- Inicializa una variable local
doublex con uno. - Especifica un bucle
for.- Inicializa un entero,
i, en0. - Define la condición de iteración como
imenor quen. - Incrementa
ien uno en cada paso.
- Inicializa un entero,
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)
*/