Trong lập trình C++, hàm sqrt() là một công cụ mạnh mẽ để tính căn bậc 2 của một số. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng hàm sqrt(), cũng như một phương pháp khác để tính căn bậc 2 nếu không sử dụng hàm này.
I. Hàm sqrt() là gì?
Hàm sqrt() là một hàm có sẵn trong thư viện math của ngôn ngữ lập trình C++. Trước khi sử dụng hàm này, chúng ta cần khai báo thư viện math bằng cách sử dụng câu lệnh sau:
#include <math.h>
Hàm sqrt() được sử dụng để tính căn bậc hai của một số. Tham số truyền vào hàm là một số bất kỳ và giá trị trả về là căn bậc hai của số đó.
Cú pháp sử dụng hàm sqrt():
sqrt(x)
Trong đó, x là một số bất kỳ, có thể là số nguyên hoặc số thực.
Hình ảnh minh họa
II. Hàm Tính Căn Bậc 2 Trong C++
Bây giờ, hãy xem cách sử dụng hàm sqrt() để tính căn bậc hai của một số trong C++.
// Code từ https://techacademy.edu.vn #include <stdio.h> #include <math.h> int main() { int x; printf("Nhập x: "); scanf("%d", &x); printf("Căn bậc hai của %d = %f\n", x, sqrt(x)); return 0; }
Hãy chạy chương trình để kiểm tra kết quả:
Nhập x: 5 Căn bậc hai của 5 = 2.236068
Ngoài ra, nếu bạn muốn tính căn bậc hai của một số mà không sử dụng hàm sqrt(), bạn có thể sử dụng một phương pháp khác như sau:
Hình ảnh minh họa
Ý tưởng để tìm căn bậc hai là:
- Khai báo một giá trị epsilon để đặt sai số chấp nhận được. Vì căn bậc hai của một số có thể là một số thập phân vô hạn.
- Khởi tạo kết quả bằng 1.0.
- Nếu kết quả có sai số cao hơn epsilon, cập nhật lại kết quả theo công thức: result = (number/result - result) / 2 + result;
- Thu hẹp dần giới hạn trên và giới hạn dưới của kết quả, lấy trung bình hiệu khoảng cách giới hạn đó để cập nhật kết quả. Điều này luôn đảm bảo rằng giới hạn trên dưới sẽ bị thu hẹp nhưng sẽ luôn bao bọc đáp án.
- Nếu kết quả có sai số nhỏ hơn epsilon, dừng lại và lấy kết quả đó làm giá trị đáp án.
Dưới đây là đoạn mã đầy đủ để thực hiện ý tưởng này:
// Code từ https://techacademy.edu.vn #include <stdio.h> #include <math.h> #define EPSILON 0.0001f double mySqrt(int number) { double result = 1.0f; while (fabs(result * result - number) / number >= EPSILON) { result = (number / result - result) / 2 + result; } return result; } int main() { int x; printf("Nhập x: "); scanf("%d", &x); printf("Căn bậc hai của %d = %1.9f\n", x, mySqrt(x)); return 0; }
Hãy chạy chương trình để kiểm tra kết quả:
Nhập x: 5 Căn bậc hai của 5 = 2.236068
Với cách này, bạn có thể tính căn bậc hai một cách chính xác và linh hoạt mà không cần sử dụng hàm sqrt() có sẵn.
Hãy khám phá và ứng dụng hàm sqrt() trong lập trình C++ để tính căn bậc hai, và cũng đừng quên cách khác để tính căn bậc hai nếu cần thiết. Chúc bạn thành công trong việc xây dựng các chương trình hữu ích!