§1. CẤU TRÚC CỦA NGÔN NGỮ LẬP TRÌNH C++
Các thành phần cấu tạo nên 1 chương trình C++ bao gồm các câu lệnh, từ khóa, các cấu trúc điều khiển, hằng, biến và các toán tử.
1. Cấu trúc một chương trình C++
Phần header: bắt đầu bằng từ khóa #include <tên thư viện> Phần khai báo.
int main() //Hàm chính { Các lệnh. Cuối mỗi lệnh là dấu “;” }
Câu lệnh có hai dạng:
- Lệnh đơn
- Lệnh ghép: Gồm nhiều câu lệnh đơn được đặt giữa hai dấu { và }. Lệnh ghép còn được gọi là một khối lệnh.
2. Các kiểu dữ liệu chuẩn
Bộ nhớ máy tính có cấu trúc gồm nhiều ô nhớ (bit). Các ô nhớ này được đánh địa chỉ và tổ chức thành các byte liên tiếp. Mỗi byte lưu trữ được 28 = 256 số.
Để biểu diễn những dữ liệu phức tạp hơn, ta ghép các byte lại để lưu được các số lớn hơn. Sau đây là các kiểu dữ liệu cơ bản của C++.
a. Kiểu số nguyên
<html lang="vi"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bảng kiểu dữ liệu số nguyên</title> </head> <body>
Số nguyên có dấu | Số byte | Số nguyên không dấu |
---|---|---|
char | 1 byte | unsigned char 0..256 |
int -32.768..32.767 |
2 byte | unsigned int 0..65.535 |
long -231 .. 231-1 |
4 byte | unsigned long 0..232 |
long long -263 .. 263-1 |
8 byte | unsigned long long 0..264 |
b. Kiểu số thực
<head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bảng so sánh float và double</title> </head> <body>
Kiểu dữ liệu | Dung lượng | Phạm vi giá trị | Độ chính xác |
---|---|---|---|
float | 4 byte | 3.4×10-38 .. 3.4×1038 | Số thực với độ chính xác 7 chữ số sau dấu thập phân |
double | 8 byte | 1.7×10-308 .. 1.7×10308 | Số thực với độ chính xác 14 chữ số sau dấu thập phân |
c. Kiểu logic: bool (1 byte) gồm hai giá trị true(1), false(0)
3. Biến: Là đại lượng có giá trị thay đổi được trong quá trình thực thi chương trình
a. Khai báo: <tên kiểu dữ liệu><tên biến> ;
Ví dụ: int a, b; //Khai báo hai biến a,b kiểu số nguyên float c; //Khai báo biến c kiểu float
b. Lệnh gán:<tên biến> = <biểu thức>;
Phép gán sẽ tính giá trị của biểu thức vế phải và gán giá trị đó vào biến ở vế trái. Kết quả của biểu thức và biến phải thuộc cùng một kiểu dữ liệu. Ví dụ: int a(10),b; //Khai báo biến a,b và gán a=10 b=a*a+1; //b = 102 +1 = 101
4. Hằng: Là đại lượng có giá trị thay không thay đổi trong toàn bộ chương trình
a. Khai báo: <tên kiểu dữ liệu>const<tên hằng> (giá trị);
Ví dụ: int const maxn(1e9); //Khai báo hằng maxn = 109
float pi = 3.14; //Khai báo hằng số pi = 3.14
5. Chương trình C++ đầu tiên
Bài 1: Viết chương trình in ra màn hình câu chào “Hello world!!!”
#include <iostream> //Khai báo sử dụng thư viện nhập/xuất chuẩn
using namespace std; //Luôn phải có lệnh này
// một câu lệnh nhằm rút ngắn câu lệnh trong quá trình code, ta có thể sử dụng hàm của thư viện đó mà không cần phải gọi tên thư viện đó trước mỗi hàm.
int main()
{
cout << "Hello world!!!”; //Lệnh cout trong thư viện iostream xuất ra màn
return 0; //hình chuỗi "Hello world!!!”
}
Để dịch chương trình, ta ấn tổ hợp phím Ctrl-F9 Để dịch và chạy chương trình, ấn F9.
Bài 2: Viết chương trình nhập hai số nguyên a,b. Tính tổng a+b.
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout << "Nhap a,b = ";
cin >> a >> b; //Mỗi lượt nhập vào phải có lệnh >>
cout << a+b << endl ; //Mỗi lượt xuất ra phải có lệnh <<
return 0;
}
Ghi chú: Biến a,b trong cách khai báo trên là biến riêng (biến cục bộ) của riêng chương trình chính Ta có thể khai báo trên dòng int main() để a,b trở thành biến toàn cục.
Bài 3: Viết chương trình nhập hai số nguyên a,b Tính thương a/b
#include <iostream>
using namespace std;
int main()
{
int a,b;
cout << "Nhap a,b = ";
cin >> a >> b;
cout << float(a)/b << ‘\n’ ;
return 0;
}
Ghi chú: Trong đoạn chương trình trên, nếu viết cout <
6. Giới thiệu các toán tử của C++
a. Toán tử số học
Cộng (+), trừ (-), nhân (*). Phép chia (/): Nếu hai toán hạng đều là số nguyên thì kết quả a/b là phần nguyên của phép chia. Nếu ít nhất một trong hai toán hạnglà số thực thì kết quả là a/b . Phép chia lấy phần dư: % không áp dụng được nếu các toán hạng là số thực.
b. Toán tử so sánh
, >= , < , <=,!=(khác) So sánh bằng hai toán hạng: == Chú ý: Khi thực hiện phép so sánh giữa hai toán hạng, kết quả thu được thuộc kiểu bool (true hoặc false) Điều này là hợp lý vì các biểu thức so sánh đều là các mệnh đề logic. Ví dụ: So sánh 102 với 62 + 82 a = 10 ; b = 6 ; c = 8; bool x = (aa == bb+c*c); // Kết quả là true
c. Toán tử logic
Các phép toán logic tác động lên các mệnh đề và thu được kết quả là một mệnh đề đúng hoặc sai. Phép “và”: && Mệnh đề A Mệnh đề B Mệnh đề A&&B Đúng Đúng Đúng Đúng Sai Sai Sai Đúng Sai Sai Sai Sai
Phép “hoặc”: || Mệnh đề A Mệnh đề B Mệnh đề A||B Đúng Đúng Đúng Đúng Sai Đúng Sai Đúng Đúng Sai Sai Sai
Phép phủ định: ! Mệnh đề A Mệnh đề !A Đúng Sai Sai Đúng
d. Một số hàm toán học thường dùng
Để sử dụng các hàm toán học, ta cần khai báo sử dụng thư viện cmath: <include cmath>
Căn bậc hai: sqrt(x) Giá trị tuyệt đối abs(x) Các hàm lượng giác:sin,cos,tan
Logarit Nepe: log(x) Logarit thập phân log10(x)
Lũy thừa: pow(a,x)
Làm tròn lên: ceil(x). Ví dụ: ceil(2.8) = 3 ; ceil(-3.2) = 3
Làm tròn xuống: floor(x). Ví dụ: floor(2.8) = 2 ; floor(-3.2) = 4
BÀI TẬP
Bài 2: Phân loại nấm
Bài 3: Đoạn thẳng
Bài 4: Đếm chữ
Bài 5: Định dạng thời gian
Bài 6: Ăn nấm
Bài 7: Máy Tính
Bài 8: Số bàn học
Bài 9: A Plus B
Bài 10: Phép nhân phức tạp
Bình luận