Quadratwurzeln mit einer for-Schleife berechnen
Genau wie in R führen C++-for-Schleifen denselben Code eine festgelegte Anzahl von Malen aus und ändern nur bei jeder Iteration den Indexwert. Die Syntax einer for-Schleife ist in C++ allerdings etwas komplexer als in R.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0deklariert den Index als Integer (der häufigste Fall) und setzt den Wert in der ersten Iteration auf0.i < nlegt die Iterationsbedingung fest: Sobaldiden Wertnerreicht, ist die Bedingung nicht mehr erfüllt und die Schleife endet.i++bedeutet, dassiin jeder Iteration um1erhöht wird.
Hier vervollständigst du die Definition einer Funktion zur Berechnung der Quadratwurzel mit der babylonischen Methode. (Für echten Produktionseinsatz solltest du einfach sqrt() verwenden; das nutzt einen schnelleren, modernen Algorithmus.)

Diese Übung ist Teil des Kurses
R-Code mit Rcpp optimieren
Anleitung zur Übung
- Initialisiere eine lokale
double-Variable x mit eins. - Gib eine
for-Schleife an.- Initialisiere eine Integer-Variable
imit0. - Setze die Iterationsbedingung auf
ikleiner alsn. - Erhöhe
iin jedem Schritt um eins.
- Initialisiere eine Integer-Variable
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
#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)
*/