MỤC LỤC<br />
Phần 1: Mở đầu.............................................................................................................. 9<br />
Bài 1. Các ngôn ngữ lập trình....................................................................................... 9<br />
1.1. Ngôn ngữ lập trình ................................................................................................. 9<br />
1.2. Ra lệnh cho máy tính làm việc ............................................................................ 10<br />
1.3. Phân loại Ngôn ngữ lập trình cấp thấp và cấp cao .............................................. 12<br />
1.4. Tổng quát và chuyên biệt ..................................................................................... 13<br />
1.5. Mô hình tính toán của một NNLT ....................................................................... 14<br />
1.6. Chọn NNLT ......................................................................................................... 14<br />
1.6.1. Yếu tố kỹ thuật ............................................................................................. 14<br />
1.6.2. Yếu tố phi kỹ thuật ....................................................................................... 14<br />
1.6.3. Chọn đúng công cụ cho công việc ................................................................ 15<br />
1.6.4. Sự lựa chọn của các nhà phát triển ............................................................... 15<br />
1.7. CÁC NGÔN NGỮ LẬP TRÌNH ......................................................................... 16<br />
Bài 2. Giới thiệu ngôn ngữ C / C++............................................................................ 23<br />
2.1. Ngôn ngữ C .......................................................................................................... 23<br />
2.2. C – Ngôn ngữ bậc trung....................................................................................... 23<br />
2.3. C - Ngôn ngữ cấu trúc.......................................................................................... 24<br />
2.4. C++ ...................................................................................................................... 25<br />
2.5. Biên dịch chương trình C/C++ ............................................................................ 25<br />
2.6. Tại sao dùng C/C++?? ......................................................................................... 26<br />
Phần 2. Lập trình cấu trúc C (8 tuần) ...................................................................... 27<br />
Bài 3. Phân tích và thiết kế chương trình .................................................................. 27<br />
3.1. Cấu trúc chương trình C ...................................................................................... 27<br />
3.1.1. Ðịnh nghĩa Hàm............................................................................................ 28<br />
3.1.2. Dấu phân cách (Delimiters) .......................................................................... 28<br />
3.1.3. Dấu kết thúc câu lệnh (Terminator).............................................................. 28<br />
3.1.4. Dòng chú thích (Comment) .......................................................................... 28<br />
3.1.5. Thư viện C (Library) .................................................................................... 28<br />
3.2. Biên dịch và thực thi một chương trình (Compiling and Running) .................... 29<br />
<br />
1<br />
<br />
3.3. Các bước lập trình giải quyết vấn đề ................................................................... 30<br />
3.3.1. Mã giả (pseudo code) ................................................................................... 31<br />
3.3.2. Lưu đồ (Flowcharts) ..................................................................................... 33<br />
Bài 4. Cài đặt và làm quen với môi trường lập trình C/C++ với Visual Studio .... 49<br />
4.1. Giới thiệu Microsoft Visual C++ ......................................................................... 49<br />
4.2. Các đặc trưng ....................................................................................................... 49<br />
4.3. Lịch sử ................................................................................................................. 49<br />
Bài 5. Biến, kiểu, dữ liệu, Toán tử, Biểu Thức .......................................................... 57<br />
5.1. Biến và Kiểu dữ liệu ............................................................................................ 57<br />
5.1.1. Biến (variable) .............................................................................................. 57<br />
5.1.2. Hằng (constant)............................................................................................. 59<br />
5.1.3. Các nguyên tắc cho việc chỉ đặt tên.............................................................. 60<br />
5.1.4. Các kiểu dữ liệu (Data types) ....................................................................... 61<br />
5.1.5. Những kiểu dữ liệu cơ bản và dẫn xuất ........................................................ 64<br />
5.1.6. Các toán tử số học (Arithmetic Operators) ................................................... 68<br />
5.2. Toán tử và Biểu thức ............................................................................................ 74<br />
Mục tiêu: ....................................................................................................................... 74<br />
5.2.1. Biểu thức (Expressions)................................................................................ 74<br />
5.2.2. Toán tử quan hệ (Relational Operators) ....................................................... 76<br />
5.2.3. Toán tử luận lý (Logical Operators) và biểu thức ........................................ 77<br />
5.2.4. Toán tử luận lý nhị phân (Bitwise Logical Operators) và biểu thức ............ 78<br />
5.2.5. Biểu thức dạng hỗn hợp & Chuyển đổi kiểu ................................................ 79<br />
5.2.6. Độ ưu tiên của toán tử (Precedence) ............................................................ 81<br />
Bài 6. Nhập và Xuất trong C ....................................................................................... 90<br />
6.1. Tập tin tiêu đề ..................................................................................... 91<br />
6.2. Nhập và xuất trong C (Input and Output) ............................................................ 91<br />
6.2.1. printf() ........................................................................................................... 91<br />
6.2.2. scanf() .........................................................................................................102<br />
6.3. Bộ nhớ đệm Nhập và Xuất (Buffered I/O) ........................................................109<br />
6.3.1.getchar() .......................................................................................................110<br />
<br />
2<br />
<br />
6.3.2. putchar()......................................................................................................111<br />
Bài 7. Điều kiện ..........................................................................................................117<br />
7.1. Câu lệnh điều kiện là gì ? ..................................................................................117<br />
7.2. Các câu lệnh lựa chọn: .......................................................................................118<br />
7.2.1. Câu lệnh ‘if’: ...............................................................................................118<br />
7.2.2 Câu lệnh ‘if … else’: ....................................................................................120<br />
7.2.3. Nhiều lựa chọn – Các câu lệnh ‘if … else’: ................................................122<br />
7.2.4 Các cấu trúc if lồng nhau: ...........................................................................125<br />
7.2.5 Câu lệnh ‘switch’:........................................................................................131<br />
Bài 8. Vòng lặp ...........................................................................................................139<br />
8.1. Vòng lặp: .............................................................................................................139<br />
8.2. Vòng lặp ‘for’: ...................................................................................................139<br />
8.1.2. Vòng lặp ‘while’: ........................................................................................146<br />
8.2. Các lệnh nhẩy: ...................................................................................................153<br />
8.2.1. Lệnh ‘return’: .............................................................................................153<br />
8.2.2. Lệnh ‘goto’: ................................................................................................153<br />
8.2.3. Lệnh ‘break’: ..............................................................................................155<br />
8.2.4. Lệnh ‘continue’: .........................................................................................156<br />
8.2.5. Hàm ‘exit()’: ...............................................................................................157<br />
Bài 9. Mảng .................................................................................................................161<br />
9.1. Các phần tử mảng và các chỉ mục: ....................................................................162<br />
9.2. Việc quản lý mảng trong C: ...............................................................................164<br />
9.3. Mảng hai chiều: .................................................................................................171<br />
Bài 10. Các thao tác với BITs và kỹ thuật lập trình với bit ...................................181<br />
10.1. Bit.....................................................................................................................181<br />
10.2. Các toán tử thao tác bit ....................................................................................181<br />
Bài 11. Macro .............................................................................................................185<br />
11.1 Chỉ thị #define ..................................................................................................185<br />
11.1.1 Hằng tượng trưng.......................................................................................185<br />
11.1.2 Macro rỗng ................................................................................................185<br />
<br />
3<br />
<br />
11.1.3 Macro có tham số ......................................................................................186<br />
11.1.4 Truyền một số lượng tham số không định trước vào macro .....................186<br />
11.2 Chỉ thị undef .....................................................................................................188<br />
11.3 Toán tử macro ...................................................................................................188<br />
11.3.1. Toán tử # ..........................................................................................................188<br />
11.4. Toán tử defined ............................................................................................189<br />
11.5. Chỉ thị có điều kiện (#ifdef, #ifndef, #if, #endif, #else and #elif) ...................189<br />
11.6. Chỉ thị #line .....................................................................................................190<br />
11.7. Chỉ thị #error ....................................................................................................191<br />
11.8. Chỉ thị #pragma ...............................................................................................192<br />
Bài 12. Kỹ thuật lập trình với hàm ..........................................................................192<br />
12.1 Sử dụng các hàm ...............................................................................................193<br />
12.2 Cấu trúc hàm .....................................................................................................194<br />
12.2.1 Các đối số của một hàm.............................................................................194<br />
12.2.2 Sự trả về từ hàm.........................................................................................196<br />
12.2.3 Kiểu của một hàm ......................................................................................197<br />
12.3 Gọi hàm.............................................................................................................197<br />
12.4 Khai báo hàm ....................................................................................................198<br />
12.5 Các nguyên mẫu hàm........................................................................................199<br />
12.6 Các biến.............................................................................................................200<br />
12.6.1 Biến cục bộ ................................................................................................200<br />
12.6.2 Tham số hình thức .....................................................................................202<br />
12.6.3 Biến toàn cục .............................................................................................203<br />
12.7 Lớp lưu trữ (Storage Class)...............................................................................205<br />
12.7.1 Biến tự động...............................................................................................206<br />
12.7.2 Biến ngoại ..................................................................................................206<br />
12.7.3 Biến tĩnh .....................................................................................................208<br />
12.7.4 Biến thanh ghi ............................................................................................210<br />
12.8 Các qui luật về phạm vi của một hàm ...............................................................212<br />
12.9 Gọi hàm .............................................................................................................213<br />
<br />
4<br />
<br />
12.9.1 Truyền bằng giá trị ....................................................................................213<br />
12.9.2 Truyền bằng tham chiếu ............................................................................215<br />
12.10 Sự lồng nhau của lời gọi hàm .........................................................................218<br />
12.11 Hàm trong chương trình nhiều tập tin .............................................................219<br />
12.12 Con trỏ đến hàm ..............................................................................................220<br />
Bài 13. Kỹ thuật lập trình với con trỏ ......................................................................222<br />
13.1 Con trỏ là gì? .....................................................................................................222<br />
13.1.2 Tại sao con trỏ được dùng? .......................................................................223<br />
13.2 Các biến con trỏ ................................................................................................223<br />
13.3 Các toán tử con trỏ ............................................................................................224<br />
13.4 Con trỏ và mảng một chiều ...............................................................................228<br />
13.4.1 Con trỏ và mảng nhiều chiều .....................................................................231<br />
13.5 Cấp phát bộ nhớ ................................................................................................234<br />
Bài 14 Kỹ thuật lập trình với chuỗi ký tự ................................................................246<br />
14.1 Các biến và hằng kiểu chuỗi .............................................................................247<br />
14.1.1 Con trỏ trỏ đến chuỗi .................................................................................248<br />
14.1.2 Các thao tác nhập xuất chuỗi .....................................................................248<br />
14.2 Các hàm về chuỗi ..............................................................................................251<br />
14.2.1 Hàm strcat() ...............................................................................................251<br />
14.2.2 Hàm strcmp() .............................................................................................252<br />
14.2.3 Hàm strchr() ...............................................................................................254<br />
14.2.4 Hàm strcpy() ..............................................................................................256<br />
14.2.5 Hàm strlen() ...............................................................................................257<br />
14.3 Truyền mảng vào hàm ......................................................................................258<br />
14.4 Truyền chuỗi vào hàm ......................................................................................261<br />
Bài 15. CHUYỂN ĐỔI KIỂU DỮ LIỆU & CẤP PHÁT BỘ NHỚ ĐỘNG..........265<br />
15.1. Nhu cầu chuyển đổi dữ liệu .............................................................................265<br />
15.2. Chuyển đổi dữ liệu kiểu tự động .....................................................................265<br />
15.3. Ép kiểu tường minh ..........................................................................................265<br />
15.4. Cấp phát động trong C .....................................................................................266<br />
<br />
5<br />
<br />