TIN ĐẠI CƯƠNG Bài 3: NHẬP XUẤT DỮ LIỆU & CÁC HÀM TOÁN HỌC
1
(cid:73) Cấu trúc một chương trình C++ : khai báo các
Nội dung bài trước
(cid:73) Kiểu dữ liệu : kí tự (char), nguyên (int), thực
thư viện, các biến, các hàm (main,...)
(cid:73) Khái niệm biến, quy cách đặt tên (cid:73) Biểu thức, phép gán và các phép toán (cid:73) Bài tập
2
(float, double), logic (bool)
Nội dung chính
3
1. Nhập và xuất dữ liệu 2. Các hàm toán học 3. Hàm (function) 4. Bài tập
(cid:73) Thư viện iostream chứa các đối tượng cin, cout làm
1. Nhập và xuất dữ liệu
nhiệm vụ nhập và xuất dữ liệu
(cid:73) Chúng được khai báo trong không gian tên std, do vậy phải tham chiếu đến chúng bằng tên đầy đủ (ví dụ std::cin), hoặc viết lệnh using namespace std;
4
(cid:73) Cách dùng
(cid:73) cout << bieuthuc_1 ; (cid:73) cout << bieuthuc_1 << bieuthuc_2 ;
(cid:73) Ví dụ :
(cid:73) in chuỗi kí tự, hằng, biến ra màn hình
cout << "Xin chao !" int a = 8 ; cout << a++ ; cout << ++a ;
//in ra 8, tăng a lên 1 //tăng a lên 1, in ra 10
(cid:73) có thể sử dụng toán tử << nhiều lần trên cùng một dòng
cout << "Chieu dai canh la " << a ;
(cid:73) kết hợp in xâu kí tự và biểu thức
cout << "Chu vi la " << 4*a << " dien tich la " << a*a ;
5
Xuất dữ liệu với cout
(cid:73) Sau khi in, cout không làm con trỏ xuống dòng
Xuất dữ liệu với cout
cout << "Câu thứ nhất." ; cout << "Câu thứ hai." ; → Câu thứ nhất.Câu thứ hai.
(cid:73) Để xuống dòng, ta dùng kí tự \n hoặc endl
Thay câu lệnh đầu tiên bằng cout << "Câu thứ nhất.\n" ; hoặc cout << "Câu thứ nhất." << endl ;
6
(cid:73) Cách dùng
(cid:73) Cách 1 : nhập lần lượt
cin >> bien_1 ;
(cid:73) Cách 2 : nhập cùng lúc
cin >> bien_1 >> bien_2 ;
(cid:73) Bấm Enter để kết thúc việc nhập dữ liệu (cid:73) Nên nhập đúng giá trị cho kiểu của biến, nếu
Nhập dữ liệu với cin
(cid:73) Rất cẩn thận khi nhập cùng lúc dữ liệu cho
không có thể có lỗi phát sinh
7
nhiều biến. Khi đó phải phân tách chúng bằng khoảng trống : dấu cách, tab, xuống dòng
(cid:73) Trong thư viện
2. Các hàm toán học
(cid:73) Tham khảo : http:
nhiều hàm toán học hữu ích
8
//www.cplusplus.com/reference/cmath/
(cid:73) exp(a) : ea (cid:73) log(a) : ln(a) (cid:73) log10(a) : log10(a) (cid:73) pow(a,b) : ab (cid:73) sqrt(a) : căn bậc 2 của a (cid:73) cbrt(a) : căn bậc 3 của a (cid:73) hypot(a,b) : sqrt(a*a + b*b)
9
Các hàm mũ, lũy thừa
(cid:73) sin(a) (chú ý : a theo đơn vị radian) (cid:73) cos(a) (cid:73) tan(a) (cid:73) asin(a) (a phải nằm trong khoảng [-1,1]) (cid:73) acos(a) (a phải nằm trong khoảng [-1,1]) (cid:73) atan(a)
10
Các hàm lượng giác
(cid:73) abs(a) : giá trị tuyệt đối của a (cid:73) floor(a) : trả về số nguyên lớn nhất mà vẫn còn
Một số hàm khác
(cid:73) ceil(a) : trả về số nguyên nhỏ nhất mà vẫn còn
nhỏ hơn hoặc bằng a (làm tròn xuống)
(cid:73) fmax(a,b) : trả về giá trị lớn nhất giữa a và b (cid:73) fmin(a,b) : trả về giá trị nhỏ nhất giữa a và b (cid:73) fmod(a,b) : tính phần dư của phép chia a cho b
11
lớn hơn hoặc bằng a (làm tròn lên)
Ví dụ
12
1. Nhập hai số thực x và y (x dương). Tính và in ra màn hình giá trị x y .
Ví dụ
13
2. Cho hai điểm A, B với toạ độ (1.,-2.), (3.,4.). Tính độ dài đoạn thẳng AB.
(cid:73) Các hàm toán học có sẵn trong C++ nói trên là hàm do các lập trình viên khác viết ra, chúng ta chỉ sử dụng lại (cid:73) Ta có thể viết các hàm mới để dùng theo mục đích riêng (cid:73) Ví dụ 1 : Nhập hai số thực x và y. Tính và in ra màn hình
Nhận xét
diện tích của các hình chữ nhật có cạnh là : b) x+5 và y*2 a) x và y
c) x/2 và x+y
→ viết một hàm tính diện tích hình chữ nhật, sử dụng được
ở nhiều nơi
(cid:73) Ví dụ 2 : Biết toạ độ ba đỉnh của tam giác ABC. Tính
diện tích tam giác đó.
→ chia thành các bài toán nhỏ hơn :
(cid:73) tính độ dài đoạn thẳng (cid:73) tính diện tích tam giác theo công thức Heron
14
(cid:73) Hàm : đoạn chương trình máy tính thực hiện
3. Hàm (function)
(cid:73) Cú pháp :
một nhiệm vụ nào đó và trả về kết quả
//nội dung thuật toán
(cid:73) Ví dụ :
}
float dientich(float canh1, float canh2) {
return canh1 * canh2 ;
15
}
(cid:73) Gọi hàm : gọi theo tên hàm và tham số (cid:73) Ví dụ :
Hàm
(cid:73) Lợi ích của việc sử dụng hàm
(cid:73) ý tưởng phân rã bài toán thành các bài toán con (cid:73) có thể sử dụng ở nhiều nơi trong cùng chương trình (cid:73) nếu cần chỉnh sửa thì chỉ làm ở một chỗ
(cid:73) Khai báo (interface) và triển khai (implement)
(cid:73) khai báo hàm trước khi sử dụng
(cid:73) nội dung hàm có thể triển khai ở sau
16
float DienTich = dientich (5.2, 7.8) ;
Ví dụ
17
Cho hai điểm A, B với toạ độ (1.,-2.), (3.,4.). Tính độ dài đoạn thẳng AB.
4. Bài tập
Bài 1 Nhập toạ độ hai điểm M1(x1, y1), M2(x2, y2). Tính độ dài đoạn thẳng M1M2.
Bài 2 Nhập tọa độ (x,y) cho 3 điểm A, B, C. Tính chu vi và diện tích tam giác ABC.
Bài 3 Nhập giá trị cho 3 số thực dương x, y, z. Tính giá trị các biểu thức sau
x
x 4 + |y − z| 1
sin2 x + sin x + 1 (cos2 y + cos y + 1)3 Gợi ý : sử dụng hàm f (t) = t 2 + t + 1.
18