LoslegenKostenlos loslegen

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 = 0 deklariert den Index als Integer (der häufigste Fall) und setzt den Wert in der ersten Iteration auf 0.
  • i < n legt die Iterationsbedingung fest: Sobald i den Wert n erreicht, ist die Bedingung nicht mehr erfüllt und die Schleife endet.
  • i++ bedeutet, dass i in jeder Iteration um 1 erhö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

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere eine lokale double-Variable x mit eins.
  • Gib eine for-Schleife an.
    • Initialisiere eine Integer-Variable i mit 0.
    • Setze die Iterationsbedingung auf i kleiner als n.
    • Erhöhe i in jedem Schritt um eins.

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)
*/
Code bearbeiten und ausführen