• Thân hàm chính chương trình chính • Định nghĩa các hàm đã khai báo... - Biến là một ô nhớ hoặc 1 vùng nhớ dùng để chứa dữ liệu trong quá trình thựchiện chương trình và có kích thước
Trang 1Tống Võ Anh Thuận – MMCL 2021Trần Công Thành – ATCL 2021
Nguyễn Trần Trung Nguyên – ATCL 2021
BHT Đoàn khoa MMT&TT – Training giữa kì I K16
Trang 4• Tiền xử lý (khai báo thư viện).
• Khai báo biến, hàm
• Thân hàm chính (chương trình chính)
• Định nghĩa các hàm đã khai báo
Trang 5Một số kiểu dữ liệu cơ bản trong C++:
Trang 6- Biến là một ô nhớ hoặc 1 vùng nhớ dùng để chứa dữ liệu trong quá trình thực
hiện chương trình và có kích thước tùy thuộc vào kiểu dữ liệu của nó
- Giá trị của biến có thể được thay đổi
- Qui tắc đặt tên biến:
• Không trùng với các từ khóa hoặc tên hàm.
• Ký tự đầu tiên là chữ cái hoặc dấu _
• Không được sử dụng khoảng trắng ở giữa các ký tự
Trang 7- Cú pháp khai báo biến:
Trang 8Biến cục bộ Biến toàn cục
- Biến được định nghĩa trong một hàm
hoặc một block (khối lệnh).
- Chỉ được sử dụng bên trong hàm hoặc
block.
- Biến mất khi khối lệnh kết thúc
- Biến được định nghĩa bên ngoài các hàm
- Có thể truy xuất và sử dụng ở mọi hàm trong chương trình.
- Tồn tại cho đến cuối chương trình
Trang 9- Hằng đại diện cho một giá trị không đổi trong suốt quá trình thực thi của
chương trình Ta không thể gán lại giá trị cho nó
Trang 10- Cách định nghĩa hằng trong C++:
Trang 111 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 12Dùng để gán giá trị cho 1 biến
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 13Phép toán Giải thích Ví dụ
/ Chia (hoặc chia lấy phần nguyên) x = 10 / 2
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 14Dùng để tăng hoặc giảm 1 đơn vị
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 15Dùng để tăng hoặc giảm 1 đơn vị
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 16Toán tử Giải thích Ví dụ
/= Chia (hoặc chia lấy phần nguyên) x /= 2
1 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 171 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 18Toán tử Ký hiệu Ví dụ
Lớn hơn > x > y Nhỏ hơn < x < y Lớn hơn hoặc
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 193 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 201 Toán tử gán
2 Toán tử toán học
3 Toán tử tăng giảm
4 Toán tử toán học & gán
5 Toán tử điều kiện
6 Toán tử quan hệ
7 Toán tử luận lý
Trang 22- Khối lệnh là một dãy các câu lệnh được bao bởi cặp dấu { }
- Phạm vi hoạt động của một biến chính là khối lệnh mà nó được khai báo
Trang 23- Trong C++, có 3 cấu trúc điều khiển chính:
Trang 24- Trong cấu trúc rẽ nhánh, các câu lệnh chỉ được thực thi khi thỏa mãn một số
điều kiện cho trước
- Bao gồm 2 loại:
o Cấu trúc rẽ một trong hai nhánh: if, if…else và toán tử điều kiện (? : )
o Cấu trúc rẽ một, hai hoặc nhiều nhánh: câu lệnh switch
Trang 25Câu lệnh if…else Câu lệnh switch
- Sẽ chạy các câu lệnh bên trong
tùy thuộc vào tính đúng sai của
biểu thức điều kiện
- Có thể sử dụng nhánh default làm lựa chọn mặc định khi không
có nhánh nào khác được chọn
Trang 26- Ví dụ minh họa:
Trang 27- Ví dụ minh họa:
Trang 28Kết
Bắt đầu
Trang 29Cho đoạn chương trình sau: Chương trình sẽ in ra kết quả là?
Trang 31• Cấu trúc lặp (while,
do-while, for)
nhảy (break, continue,
goto)
Trang 32Nhap so bat dau:
5, 4, 3, 2, 1, bum!
5
while (điều kiện)
lệnh;
Trang 33do {
lệnh;
}
while (điều kiện);
Nhap so nguyen (0 de dung):
Bạn da nhap: 12 Nhap so nguyen (0 de dung):
Bạn da nhap: -584 Nhap so nguyen (0 de dung):
Bạn da nhap: 0
12 -584 0
Trang 34for ( khởi tạo ; điều kiện ; cập nhật )
statement;
5, 4, 3, 2, 1, bum
Trang 3510, 9, 8, 7, 6, 5, 4, dung dem nguoc
Trang 361, 3, 5, 7, 9
Trang 37Cho đoạn chương trình sau, đã khai báo đầy
đủ hàm và using namespace std; : Nếu nhập giá trị cho n là 12, kết quả in ra là?
Trang 38Cho đoạn chương trình sau, đã khai báo đầy đủ hàm
và using namespace std; : Kết quả của đoạn code này là gì?
Trang 40<kiểu_trả_về> <tên_hàm>( <tham_số> ){
Trang 41Ví dụ:
Trang 42n trong ham: : 12
n ngoai ham: 1
n trong ham: 12
n ngoai ham: 12
Trang 45Stack là cấu trúc dữ liệu hoạt động theo nguyên lý Last In First Out (LIFO) – vô sau ra trước.
Trang 46Là điều kiện cho hàm dừng
lại Là khi vấn đề đơn giản
nhất.
Là hàm tự gọi bản thân, chia
nhỏ vấn đề.
Trang 48A 5 0
B 10 5
C 5 5
D 10 0 Hãy cho biết kết quả đoạn code sau
Trang 50A 2
B 7
C 8
D 9
Trang 51Nhập xuất dữ liệu,
một số phép toán cơ bản.
Cấu trúc rẽ nhánh, thuật
toán Các cấu trúc điều khiển
Hàm – đệ quy Mảng 1 chiều và mảng 2 chiều Chuỗi kí tự
Trang 52• Giới thiệu mảng 1 chiều và 2 chiều
Trang 54• Mảng 1 chiều gồm 1 dãy các phần tử có cùng kiểu dữ liệu (int, float, char …)
VD:
• Mảng 2 chiều (Ma trận) gồm các phần tử trên dòng và các phần tử trên cột
VD:
Trang 55- Tên mảng: MangKyTu - Tên mảng: MangSoNguyen
- Kiểu dữ liệu của phần tử mảng: char - Kiểu dữ liệu của phần tử mảng: int
Trang 56<Kiểu dữ liệu> <Tên mảng> [<Số phần tử mảng>];
Trang 57• Khởi tạo giá trị cho mọi phần tử của mảng
Trang 59<Tên mảng>[<chỉ số mảng>]
• Các phần tử mảng là 1 dãy liên tục có chỉ số từ 0 đến <Số phần tử mảng> - 1
Trang 60• Tham số kiểu mảng trong khai báo hàm giống như khai báo mảng
void SapXep(int A[100], int n);
Tên hàm: SapXepTham số: kiểu mảng số nguyên A và số lượng phần tử mảng nGiá trị trả về: không có giá trị trả về void
Trang 61• Mảng có thể thay đổi nội dung sau khi thực hiện hàm.
• Có thể bỏ số lượng phần tử hoặc sử dụng con trỏ
VD:
void NhapMang(int A[], int n);
void NhapMang(int *A, int n);
Trang 62• : <Kiểu dữ liệu> <Tên mảng>[<Số Dòng>][<Số Cột>];
Trang 63<Tên mảng>[<Chỉ số dòng>][<Chỉ số cột>]
Trang 64• Mảng có thể thay đổi nội dung sau khi thực hiện hàm.
• Có thể bỏ số lượng phần tử hoặc sử dụng con trỏ
Trang 66char “Chuoi”;
Trang 67• Kiểu char chỉ chứa được một ký tự
VD: char a = ‘a’ ;
char b = ‘abc’ ; // không được
• Để lưu trữ một chuỗi (nhiều ký tự) ta sử dụng mảng (một chiều) các ký tự
• Chuỗi ký tự kết thúc bằng ký tự “\0‟ (null)
• Độ dài chuỗi = kích thước mảng – 1
char Hoten[30]; // Dài 29 ký tựchar NgaySinh[9]; // Dài 8 ký tự
Trang 68char sName[100];
char sName[];
char *sName;
Trang 70• Hàm nhập chuỗi: getline
• Ví dụ: getline(<tên chuỗi>, <độ dài chuỗi>);
• Hàm tự động thêm ký tự NULL (‘\0’) vào cuối chuỗi
char s[100];
cin.getline(s, 99);
Trang 71• Hàm xuất chuỗi: puts
• Ví dụ: puts(<tên chuỗi>);
char *s = “Hello World”;
puts(s);
Trang 72Một số hàm thuộc thư viện <string.h>
• strlen: hàm tính độ dài chuỗi
• strcpy: hàm sao chép chuỗi
• strdup: hàm tạo bản sao
• strcmp : hàm so sánh 2 chuỗi có phân biệt hoa thường
• stricmp : hàm so sánh 2 chuỗi không phân biệt hoa thường
• strcat : hàm nối 2 chuỗi
• strstr : hàm tìm chuỗi trong chuỗi
72
Trang 74A 5
B 20
C 25
Trang 75A 2 3 4
B 1 2 3 4
C Biên dịch lỗi
D 1 2 3 4
Trang 7617/12