Bài 1 - TỔNG QUAN 7
I. Giới thiệu 7
1. Mục đích, Yêu cầu 7
2. Nội dung môn học 8
3. Tài liệu học tập và tham khảo 10
4. Hình thức đánh giá kết quả môn học 10
II. Bài toán và việc giải bài toán trên máy tính 10
1. Phương pháp tổng quát để giải một bài toán trên máy tính 10
2. Xác định bài toán 11
3. Cấu trúc dữ liệu và Giải thuật 12
4. Chương trình 17
III. Công cụ lập trình 18
1. Ngôn ngữ lập trình 18
2. Công cụ lập trình 19
3. Công cụ lập trình Dev-C++ 20
IV. Tóm tắt nội dung bài học 21
V. Bài tập 22
Bài 2 - NGÔN NGỮ LẬP TRÌNH C/C++ 23
I. Giới thiệu 23
II. Một số khái niệm cơ bản 24
1. Bộ ký tự 24
2. Từ khóa 24
3. Kiểu dữ liệu 25
4. Tên, Biến, hằng 26
5. Biểu thức 30
III. Cấu trúc một chương trình đơn giản 35
1. Cấu trúc chung 35
2. Khai báo sử dụng thư viện 36
3. Khai báo hằng, biến, kiểu 36
4. Một số lệnh đơn 36
5. Chú thích 37
6. Chương trình chính 37
IV. Nhập/Xuất dữ liệu 37
1. Nhập dữ liệu từ bàn phím – Hàm scanf() 37
2. Xuất dữ liệu ra màn hình - Hàm printf() 39
3. Ví dụ 42
V. Tóm tắt nội dung bài học 43
VI. Bài tập 43
Bài 3 - Bài thực hành: MÔI TRƯỜNG LẬP TRÌNH VÀ CÁC LỆNH VÀO/RA 44
I. Làm quen môi trường Dev-C++ 44
1. Khởi động Dev-C++ 44
2. Giao diện chính 44
II. Thực hiện các ví dụ sau 44
1. Tính diện tích một tam giác 44
2. Tính tổng, hiệu, tích, thương của 2 số 46
III. Bài tập tự làm 47
Bài 4 - ĐIỀU KHIỂN CHỌN VÀ LẶP 50
I. Điều khiển chọn 50
1. Khối lệnh 50
2. Cấu trúc IF 52
3. Cấu trúc SWITCH 55
II. Điều khiển lặp 59
1. Cấu trúc FOR 59
2. Cấu trúc WHILE 61
3. Cấu trúc DO .. WHILE 63
4. Lệnh break và continue 66
III. Tóm tắt nội dung bài học 66
IV. Bài tập 66
Bài 5 - Bài thực hành: ĐIỀU KHIỂN CHỌN VÀ LẶP 67
I. Thực hiện các ví dụ sau 67
1. Giải phương trình bậc 2 67
2. Tìm USCNLN của hai số 68
II. Bài tập tự làm 70
Bài 6 - MẢNG, CON TRỎ VÀ XÂU KÝ TỰ 73
I. Mảng 73
1. Mảng trong C 73
2. Mảng một chiều 73
3. Mảng nhiều chiều 78
II. Con trỏ 81
1. Khai báo và sử dụng biến con trỏ 82
2. Con trỏ và mảng 86
3. Con trỏ và tham số hình thức của hàm 90
III. Xâu ký tự 91
1. Khai báo 91
2. Các thao tác trên chuỗi ký tự 92
IV. Tóm tắt nội dung bài học 97
V. Bài tập 98
Bài 7 - Bài thực hành: MẢNG, CON TRỎ VÀ XÂU KÝ TỰ 99
I. Thực hiện các ví dụ sau 99
1. Tìm phần tử lớn nhất của mảng 99
2. Lấy Tên từ họ tên người Việt 100
II. Bài tập tự làm 102
1. Mảng 102
2. Con trỏ 103
3. Xâu ký tự 103
Bài 8 - HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 105
I. Tổ chức chương trình 105
1. Ví dụ 105
2. Cấu trúc chương trình 106
3. Hàm xây dựng sẵn 109
II. Hàm do người dùng định nghĩa 109
1. Khai báo và định nghĩa Hàm 110
2. Lời gọi Hàm 112
3. Hàm với đối mặc định 113
4. Khai báo hàm trùng tên 114
5. Truyền tham số 116
6. Hàm và mảng 121
III. Con trỏ hàm 128
1. Khai báo 128
2. Sử dụng con trỏ hàm 128
3. Mảng con trỏ hàm 130
IV. Đệ qui 130
1. Khái niệm 130
2. Lớp các bài toán giải được bằng đệ qui 132
3. Các ví dụ 132
V. Tóm tắt nội dung bài học 134
VI. Bài tập 135
Bài 9 - Bài thực hành: HÀM VÀ CẤU TRÚC CHƯƠNG TRÌNH 136
I. Thực hiện các ví dụ sau 136
1. Xác định vị trí tương đối của 1 điểm với tam giác ABC 136
2. Viết hàm đếm số từ của một xâu ký tự 137
II. Bài tập tự làm 138
Bài 10 - CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 140
I. Cấu trúc dữ liệu do người dùng tự định nghĩa 140
1 Khái niệm 140
2. Khai báo biến cấu trúc 143
3. Các thao tác trên biến kiểu cấu trúc 143
4. Con trỏ cấu trúc 145
5. Cấu trúc với thành phần kiểu bit 149
6. Câu lệnh typedef 150
7. Hàm sizeof() 150
II. Ngăn xếp 150
1. Khái niệm 151
2. Cài đặt ngăn xếp sử dụng mảng 151
3. Cài đặt ngăn xếp sử dụng con trỏ liên kết 153
4. Một số ứng dụng của ngăn xếp 154
III. Hàng đợi 156
1. Khái niệm 156
2. Cài đặt hàng đợi sử dụng mảng 157
3. Cài hàng đợi sử dụng con trỏ 158
4. Một số ứng dụng của hàng đợi 160
IV. Kiểu hợp 160
1. Khai báo 160
2. Truy cập 160
V. Kiểu liệt kê 161
VI. Tóm tắt nội dung bài học 162
VII. Bài tập 162
Bài 11 - Bài thực hành: CẤU TRÚC DỮ LIỆU DO NGƯỜI DÙNG TỰ ĐỊNH NGHĨA 163
I. Thực hiện các ví dụ sau 163
1. Biểu diễn và thực hiện các phép toán phân số 163
2. Chuyển biểu thức trung tố về dạng hậu tố 165
II. Bài tập tự làm 168
Bài 12 - LÀM VIỆC VỚI FILE 170
I. Một số khái niệm 170
II. Các thao tác trên tập tin 171
1. Khai báo biến tập tin 171
2. Mở tập tin 171
3. Đóng tập tin 172
4. Kiểm tra đến cuối tập tin hay chưa? 172
5. Di chuyển con trỏ tập tin về đầu tập tin - Hàm rewind() 172
III. Truy cập tập tin văn bản 173
1. Ghi dữ liệu lên tập tin văn bản 173
2. Đọc dữ liệu từ tập tin văn bản 174
3. Ví dụ 175
IV. Truy cập tập tin nhị phân 176
1. Ghi dữ liệu lên tập tin nhị phân 176
2. Đọc dữ liệu từ tập tin nhị phân 177
3. Ví dụ 177
V. Tóm tắt nội dung bài học 180
VI. Bài tập 180
Bài 13 - ĐỒ HỌA 181
I. Khởi động đồ hoạ 181
II. Các hàm đồ hoạ 184
1. Mẫu và màu 184
2. Vẽ và tô màu đường tròn 186
3. Vẽ đường gấp khúc và đa giác 187
4. Vẽ điểm, miền 190
5. Hình chữ nhật 191
6. Cửa sổ (Viewport) 192
III. Xử lý văn bản trên màn hình đồ hoạ 193
1. Hiển thị văn bản trên màn hình đồ hoạ 193
2. Sử dụng các Fonts chữ 194
3. Bề rộng và chiều cao của kí tự 195
IV. Hiệu ứng hoạt hình đồ họa 196
V. Tóm tắt nội dung bài học 197
VI. Bài tập 198
Bài 14 - Bài thực hành: LÀM VIỆC VỚI FILE VÀ ĐỒ HỌA 199
I. Thực hiện các ví dụ sau 199
1. Ví dụ 1 199
2. Ví dụ 2 200
II. Bài tập tự làm 200
Bài 15 - ÔN TẬP 202
Bài 1 - Tổng quan 202
Bài 2. Ngôn ngữ lập trình C/C++ 202
Bài 3 - Bài thực hành: Môi trường lập trình và các lệnh vào/ra 202
Bài 4 - Điều khiển Chọn và Lặp 202
Bài 5 - Bài thực hành: Các cấu trúc điều khiển 202
Bài 6 - Mảng, Con trỏ và xâu ký tự 202
Bài 7 - Bài thực hành: Mảng, Con trỏ và Xâu ký tự 202
Bài 8 - Cấu trúc dữ liệu do người dùng tự định nghĩa 202
Bài 9 - Bài thực hành: Cấu trúc dữ liệu do người dùng tự định nghĩa 202
Bài 10 - Hàm 202
Bài 11 - Bài thực hành: Hàm 203
Bài 12 - Làm việc với File 203
Bài 13 - Đồ Họa 203
Bài 14 - Bài thực hành: Làm việc với File và Thuật toán nâng cao 203