Zacznij terazZacznij za darmo

Obliczanie pierwiastków kwadratowych za pomocą pętli for

Podobnie jak w R, pętle for w C++ wykonują ten sam kod określoną liczbę razy, zmieniając przy każdej iteracji wartość indeksu. Składnia pętli for jest jednak nieco bardziej rozbudowana niż w R.

for(int i = 0, i < n, i++) {
  // Do something
}
  • int i = 0 deklaruje indeks jako liczbę całkowitą (najczęstszy przypadek) i ustawia jego wartość na 0 podczas pierwszej iteracji.
  • i < n określa warunek kontynuacji pętli: gdy i osiągnie wartość n, warunek przestaje być spełniony i pętla zatrzymuje się.
  • i++ oznacza zwiększenie wartości i o 1 przy każdej iteracji.

W tym ćwiczeniu uzupełnisz definicję funkcji obliczającej pierwiastek kwadratowy metodą babilońską. (W praktycznym kodzie wystarczy użyć sqrt(), które korzysta z szybszego, nowoczesnego algorytmu.)

To ćwiczenie jest częścią kursu

Optymalizacja kodu R za pomocą Rcpp

Zobacz kurs

Instrukcje do ćwiczenia

  • Zainicjalizuj lokalną zmienną double x wartością jeden.
  • Zdefiniuj pętlę for.
    • Zainicjalizuj liczbę całkowitą i wartością 0.
    • Ustaw warunek iteracji: i mniejsze niż n.
    • Zwiększaj i o jeden przy każdym kroku.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

#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)
*/
Edytuj i uruchom kod