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 adalah bagian dari kursus
Mengoptimalkan Kode R dengan Rcpp
Petunjuk 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 praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
#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)
*/