Tính căn bậc hai với vòng lặp for
Tương tự như trong R, vòng lặp for của C++ chạy cùng một đoạn mã một số lần xác định, chỉ thay đổi giá trị chỉ số ở mỗi lượt lặp. Tuy nhiên, cú pháp của for trong C++ phức tạp hơn R một chút.
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0khai báo chỉ số là một số nguyên (trường hợp thường gặp nhất) và đặt giá trị là0ở lượt lặp đầu tiên.i < nđặt điều kiện lặp: khiiđạt giá trịn, điều kiện này không còn đúng và vòng lặp sẽ dừng.i++nghĩa là tăng giá trị củaithêm1ở mỗi lượt lặp.
Tại đây bạn sẽ hoàn thiện định nghĩa một hàm để tính căn bậc hai bằng phương pháp Babylon. (Trong mã thực tế, bạn nên dùng sqrt() vì nó sử dụng thuật toán hiện đại nhanh hơn.)

Bài tập này là một phần của khóa học
Tối ưu hóa mã R với Rcpp
Hướng dẫn bài tập
- Khởi tạo một biến cục bộ
doublex bằng một. - Chỉ định một vòng lặp
for.- Khởi tạo một số nguyên,
i, bằng0. - Đặt điều kiện lặp là
inhỏ hơnn. - Tăng
ithêm một ở mỗi bước.
- Khởi tạo một số nguyên,
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
#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)
*/