Menghitung akar kuadrat dengan for loop
Sama seperti di R, for loop di C++ menjalankan kode yang sama sejumlah kali tertentu, hanya mengubah nilai indeks pada setiap iterasi. Namun, sintaks for loop sedikit lebih kompleks dibandingkan R.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0menyatakan indeks sebagai integer (kasus yang paling umum), dan menetapkan nilainya menjadi0pada iterasi pertama.i < nmenetapkan kondisi iterasi: setelahimencapai nilain, kondisi ini tidak terpenuhi dan loop akan berhenti berjalan.i++berarti menambah nilaiisebesar1pada setiap iterasi.
Di sini Anda akan melengkapi definisi fungsi untuk menghitung akar kuadrat menggunakan metode Babilonia. (Untuk kode dunia nyata, sebaiknya gunakan sqrt() saja, yang menggunakan algoritma modern yang lebih cepat.)

Latihan ini merupakan bagian dari kursus
Mengoptimalkan Kode R dengan Rcpp
Instruksi latihan
- Inisialisasi
doublelokal x ke satu. - Tentukan sebuah
forloop.- Inisialisasi sebuah integer,
i, ke0. - Tetapkan kondisi iterasi sebagai
ilebih kecil darin. - Naikkan
isatu per langkah.
- Inisialisasi sebuah integer,
Latihan interaktif langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
#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)
*/