cout << "Hello World!";
in dòng chữ Hello World!
Bài 1: Hello World!
using namespace std;
//khơng gian tên chung, nếu k có dịng này thì std::cout
cout <<”Hello World!” << endl;
cout <<15+12;
\n :
xuống hàng
endl : xuống hàng
// in dòng chữ Hello World! và xuống hàng
// làm phép cộng 15+12
Bài 2: Các kiểu dữ liệu
char:
‘A’, ‘6’, ‘*’,...
short:
số nguyên bé hơn 65000
int:
số nguyên trong khoảng -2 tỷ đến +2 tỷ
long:
long long:
float:
số thực, độ chính xác đến 7 chữ số sau dấu phẩy
double:
số thực, 14
bool, true, false:
user define: struct, class,...:
kiểu người dùng tự định nghĩa
thêm unsigned: không dấu
sizeof(int)
: kiểm tra số byte, suy ra khoảng lưu trữ (2^n)*8+1
INT_MAX, SHRT_MAX, ULONG_MAX, DBL_MAX, FLT_MAX: khoảng lưu trữ lớn nhất
Bài 3: Hướng dẫn exclude một file khỏi project khi build
Khi project có nhiều hàm main => cần exclude các hàm main còn lại để chạy hàm main cần
= > chuột phải => general => YES
Bài 4: Variables - Các biến
TQ:
kieu ten_bien = gia_tri;
Phân biệt chữ hoa chữ thường.
Keyword: />Bài 5: Cách sử dụng các biến
float f = 123.456;
float f = 123.456f;
// hiểu là double
// hiểu là float
cin >> a >> b;
//nhập hai giá trị a b
Bài 6: Tài liệu học tập
/> /> /> /> />Bài 7: Hằng số - Khai báo và cách dùng
C1:
C2:
#define PI 3.14
const int SCREEN_WIDTH = 1920;
Bài 8: Phép toán với các con số
float div = 1.0f*a / b;
int div = a / b;
int remain = a % b;
//phép chia số thập phân
//phép chia lấy nguyên
//phép chia lấy dư
Bài 9: Phép so sánh
>, >=, <, <=, ==, !=
cout << (a < b) << endl;
//so sanh a và b, trả về 1/0
Bài 10: Phép gán
Bài 11: Cấu trúc rẽ nhánh if-else
if (t > PASS) {
cout << “A passed this subject!” << endl;
}
else {
cout << “A failed this subject!” <
}
Bài 12: Các phép toán kết hợp các biểu thức điều kiện
||, &&, !
if ((a % 2 != 0) && (a % 5 == 0)) {
cout << “a^2 =” << a * a << endl;
}
else {
cout << “a khong thoa de bai” << endl;
}
Bài 13: Tốn tử ba ngơi
TQ:
biến = (điều kiện) ? biểu thức 1 : biểu thức 2;
Bài 14: Cấu trúc rẽ nhánh switch
TQ:
switch(variable) {
case value1:
…
break;
case value2:
…
break;
…
default:
…
}
Bài 15: Cấu trúc lặp for
for(Khởi tạo; Điều kiện; Bước nhảy){
//Nội dung cần thực hiện
}
EX:
for(int i = 0; i <= n; i++) {
sum += i;
}
Tương tự:
int i = 0;
for(; i <= n;) {
sum += i;
i++;
}
TQ:
Bài 16: Vòng lặp while
TQ:
while(điều kiện){
//Nội dung cần thực hiện
}
//Lặp cho đến khi n = 0
while (n--)
Bài 17: Cấu trúc lặp do-while
TQ:
do{
//nội dung cần lặp
} while(điều kiện);
Bài 18: Vịng lặp vơ hạn, lệnh break, continue
for(;;;), while(8), while(true),....
Ctrl + C để thốt khỏi vịng lặp vơ hạn
continue:
bắt đầu vòng lặp kế tiếp ngay lập tức
Bài 19: Cấu trúc điều khiển lồng nhau
Bài 20: Mảng một chiều
TQ:
data_type array_name[number_of_element];
EX:
int numbers[3] = {0,1,2};
Truy xuất phần tử mảng:
numbers[0] = 99;
Bài 21: Mảng động
TQ:
kiểu* tên_mảng = new kiểu[số_phần_tử];
EX:
int* Array = new int[10];
Lấy độ dài thực tế của mảng kí tự:
strlen(message);
size_t length = strlen(message);
//size_t: kiểu dữ liệu số nguyên 0 dấu
Nhập chuỗi kí tự:
cin.getline(tên_mảng, số_kí_tự_tối_đa);
cin.ignore();
//bỏ qua dấu enter
Bài 22: Mảng kí tự
Ln kết thúc bởi kí tự null: ‘\0’
char message[] = “Hello”;
EX:
//có 6 kí tự bao gồm null
Bài 23: Hàm - function( )
TQ:
type functionName(parameter list){
}
Bài 24: Truyền tham chiếu, truyền giá trị vào hàm
-
Truyền tham chiếu khi muốn cho phép hàm thay đổi giá trị của biến truyền vào hàm.
Truyền giá trị khi kiểu của tham số là những kiểu đơn giản.
void ex(int& b){
b = b * 5;
}
//truyền tham chiếu, truy xuất đến địa chỉ
Bài 25: Tại sao hàm main( ) lại return 0??
Bài 26: Hàm inline
-
Nếu một hàm tương đối ngắn, tức là thực hiện các chức năng đơn giản thì thường
sẽ để là hàm inline.
Hàm inline bắt đầu bởi inline trong khai báo và định nghĩa hàm.
Hàm inline để tối ưu chương trình.
Cú pháp:
inline type functionName(parameters){
//function’s body
}
Bài 27: Tham số mặc định của hàm
Bài 28: Khai báo nguyên mẫu
Khai báo hàm trước khi định nghĩa. Khi khai báo đặt trc hàm main thì phần định nghĩa hàm
đặt đâu cũng được.
TQ:
int addNumber(int, int);
Bài 29: Hàm đệ quy
Gọi chính nó!
Hàm đệ quy tính giai thừa:
long factor(int n){
if(n == 0 || n == 1){
return 1;
}
else{
return * factor(n - 1);
}
}
Hàm đệ quy tính tổng:
int sumFrom1Ton(int n){
if(n == 1){
return 1;
else{
return n * sumFrom1To(n - 1);
}
}
Khi có thể sử dụng vịng lặp thì nên sử dụng, vì hàm đệ quy chiếm rất nhiều ơ nhớ.
Trong hàm đệ quy phải ln ln có điều kiện dừng.
Bài 30: Tham chiếu hằng
Truyền địa chỉ nhẹ hơn, khi muốn truyền giá trị k đổi mà là địa chỉ thì người ta dùng tham
chiếu hằng:
string fullName(const string &firstName, const string &lastNam)
Bài 36: Tổng quan về con trỏ
int* aPtr;
//khai bao con tro aPtr cung kieu du lieu voi a
aPtr = &a;
//Tro con tro aPtr toi bien a
cout << “Gia tri trong con tro aPtr: ” << aPtr << endl;
cout << “Gia tri tai dia chi ma con tro aPtr tro toi: ” << *aPtr << endl;
Bài 37: Tham số của hàm: Con trỏ và tham chiếu
void changeNumber(int n){
n = 2 * n;
}
changeNumber(n);
//kieu thuong, truyen gia tri
void changeNumber2(int* n){
*n = 2 * *n;
}
changeNumber(&n)
//truyen con tro, co the truyen mang/NULL
void changeNumber3(int& n){
//truyen tham chieu, ap dung cho kieu du lieu
lon
n = 2 * n;
}
changeNumber(n)
void changeNumber4(const int& n){
n = 2 * n;
}
changeNumber(n)
//truyen tham chieu hang, k lam thay doi gia tri
Bài 38: Con trỏ và mảng một chiều
Bản chất mảng là một con trỏ nên ta chỉ cần truyền tên mảng
Địa chỉ mảng chính là địa chỉ phần tử đầu tiên
void showResult(int* a){
int* posPtr = a;
for( ; posPtr <= &a[9]; posPtr++)
{
cout << *posPtr << “ “;
//co the thuc hien cac phep tinh voi dia chi
}
}
Bài 39: Con trỏ và mảng hai chiều
/>
//code
Bài 40: Con trỏ NULL, con trỏ void
int* ptr = NULL;
ptr = 0;
con trỏ void: k xác định kiểu
void* data
//truyen tham so vao ham voi kieu du lieu linh hoat
/>rkKR5Y&index=46
Bài 41: Giải phóng bộ nhớ cấp phát động
Cú pháp: delete pointer_name; or delete[] pointer_name
- với con trỏ NULL
- với con trỏ có/khơng có tham chiếu
- với con trỏ mảng
- với con trỏ void
- với con trỏ trỏ tới con trỏ
/>Bài 42:
Bài 43: Kiểu dữ liệu người dùng tự định nghĩa - Struct
/>mx7rkKR5Y&index=49
Bài 44: Con trỏ cấu trúc - Struct Pointer
/>x7rkKR5Y&index=50