Calcul des racines carrées avec une boucle for
Comme en R, les boucles for en C++ exécutent le même code un certain nombre de fois, en ne changeant que la valeur d'un index à chaque itération. La syntaxe d'une boucle for est toutefois un peu plus complexe qu'en R.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0déclare l'index comme un entier (le cas le plus courant) et lui assigne la valeur0à la première itération.i < ndéfinit la condition d'itération : une fois queiatteint la valeurn, cette condition échoue et la boucle s'arrête.i++signifie augmenter la valeur deide1à chaque itération.
Ici, vous allez compléter la définition d'une fonction qui calcule la racine carrée à l'aide de la méthode babylonienne. (Dans du code réel, utilisez simplement sqrt(), qui repose sur un algorithme moderne plus rapide.)

Cette activité fait partie du cours
Optimiser le code R avec Rcpp
Instructions de l’exercice
- Initialisez une variable locale
doublex à un. - Spécifiez une boucle
for.- Initialisez un entier,
i, à0. - Définissez la condition d'itération comme
iinférieur àn. - Incrémentez
ide un à chaque étape.
- Initialisez un entier,
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
#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)
*/