Nội dung text Tài liệu tự học NNLT C++.pdf
Ngôn ngữ lập trình C++ 1 Mục lục § 1. MỘT SỐ KHÁI NIỆM CƠ BẢN................................................................................................................................. 3 1. Bảng chữ cái............................................................................................................................................................ 3 2. Cú pháp ................................................................................................................................................................... 3 3. Ngữ nghĩa................................................................................................................................................................ 3 4. Từ khóa (keyword).................................................................................................................................................. 3 5. Tên (Identifier) ........................................................................................................................................................ 4 6. Chú thích (Comment).............................................................................................................................................. 4 § 2. CẤU TRÚC MỘT CHƯƠNG TRÌNH......................................................................................................................... 5 1. Cấu trúc chung......................................................................................................................................................... 5 2. Các thành phần của chương trình ............................................................................................................................ 5 3. Ví dụ một chương trình đơn giản ............................................................................................................................ 6 § 3. SOẠN THẢO, DỊCH, THỰC HIỆN VÀ HIỆU CHỈNH CHƯƠNG TRÌNH TRÊN CODE::BLOCKS..................... 7 1. Cài đặt và giao diện làm việc Code::Blocks............................................................................................................ 7 2. Các bước để viết một chương trình.......................................................................................................................... 7 3. Gỡ rối và sửa lỗi ...................................................................................................................................................... 9 § 4. CÁC KIỂU DỮ LIỆU ................................................................................................................................................ 11 1. Kiểu kí tự............................................................................................................................................................... 11 2. Kiểu số nguyên...................................................................................................................................................... 11 3. Kiểu số thực........................................................................................................................................................... 12 4. Kiểu logic .............................................................................................................................................................. 12 § 6. BIẾN VÀ KHAI BÁO BIẾN ..................................................................................................................................... 13 1. Khai báo ................................................................................................................................................................ 13 2. Phạm vi của biến ................................................................................................................................................... 13 3. Khởi tạo biến ......................................................................................................................................................... 13 4. Một số chú ý khi khai báo biến.............................................................................................................................. 14 § 7. HẰNG ........................................................................................................................................................................ 15 1. Sử dụng bộ tiền xử lý #define................................................................................................................................ 15 2. Sử dụng từ khóa const ........................................................................................................................................... 15 3. Các loại hằng trong chương trình........................................................................................................................... 15 § 8. PHÉP TOÁN, BIỂU THỨC, CÂU LỆNH GÁN ....................................................................................................... 16 1. Phép toán............................................................................................................................................................... 16 2. Biểu thức ............................................................................................................................................................... 16 3. Câu lệnh gán và biểu thức gán............................................................................................................................... 18 4. Thứ tự ưu tiên các phép toán ................................................................................................................................. 19 § 9. VÀO/ RA TRONG C++............................................................................................................................................. 20
Ngôn ngữ lập trình C++ 2 1. Vào/ra với thiết bị chuẩn (vào từ bàn phím, đưa dữ liệu ra màn hình) .................................................................. 20 2. Vào / ra với file...................................................................................................................................................... 20 BÀI TẬP CHƯƠNG I................................................................................................................................................... 21 § 10. CẤU TRÚC RẼ NHÁNH ........................................................................................................................................ 22 1. Câu lệnh if dạng thiếu............................................................................................................................................ 22 2. Câu lệnh if dạng đủ ............................................................................................................................................... 23 § 11. CẤU TRÚC LẶP ..................................................................................................................................................... 25 1. Cấu trúc lặp for...................................................................................................................................................... 25 2. Cấu trúc lặp while ................................................................................................................................................. 26 3. Cấu trúc lặp do ... while........................................................................................................................................ 28 4. Lệnh break ............................................................................................................................................................ 29 5. Lệnh continue........................................................................................................................................................ 30 BÀI TẬP CHƯƠNG II.................................................................................................................................................. 31 § 12. KIỂU MẢNG ........................................................................................................................................................... 32 1. Kiểu mảng một chiều............................................................................................................................................. 32 2. Kiểu mảng hai chiều.............................................................................................................................................. 35 3. Mảng nhiều chiều .................................................................................................................................................. 36 § 13. KIỂU XÂU KÍ TỰ................................................................................................................................................... 37 1. Khai báo và khởi tạo.............................................................................................................................................. 37 2. Nhập xuất .............................................................................................................................................................. 37 3. Các phép so sánh ................................................................................................................................................... 38 4. Phép lấy độ dài và chỉ số ....................................................................................................................................... 38 5. Các phép biến đổi xâu ........................................................................................................................................... 38 6. Các phương thức tìm kiếm và thay thế .................................................................................................................. 40 BÀI TẬP CHƯƠNG III ................................................................................................................................................ 42 § 14. Xây dựng và sử dụng hàm........................................................................................................................................ 46 1. Xây dựng hàm Cấu trúc chung:............................................................................................................................. 46 2. Sử dụng hàm.......................................................................................................................................................... 46 3. Nguyên tắc hoạt động của hàm.............................................................................................................................. 47 4. Truyền tham số theo tham trị và tham biến ........................................................................................................... 48 § 15. ĐỆ QUY................................................................................................................................................................... 49 1. Khái niệm.............................................................................................................................................................. 49 2. Ưu nhược điểm của đệ quy, khử đệ quy ................................................................................................................ 49 BÀI TẬP CHƯƠNG IV................................................................................................................................................ 51
Ngôn ngữ lập trình C++ 3 CHUYÊN ĐỀ NGÔN NGỮ LẬP TRÌNH C++ CHƯƠNG I. TỔNG QUAN § 1. MỘT SỐ KHÁI NIỆM CƠ BẢN 1. Bảng chữ cái Là tập các kí tự được dùng để viết chương trình. Không được phép dùng bất kì kí tự nào ngoài các kí tự quy định trong bảng chữ cái. Ngôn ngữ lập trình C++ được xây dựng trên bảng chữ cái bao gồm các kí tự sau: • 52 chữ cái in thường và in hoa của bảng chữ cái tiếng Anh: a..z, A..Z. • 10 chữ số: 0..9 • Các kí tự đặc biệt: + - * / = < > [ ] . , ;! # ^ $ %& ( ) : ‘ _ và dấu cách 2. Cú pháp Là bộ quy tắc để viết chương trình. Các kí tự trong bảng chữ cái kết hợp với nhau theo quy tắc (có tính quy ước) để tạo nên các từ, các từ lại được kết hợp với nhau theo quy tắc để tạo thành các câu lệnh (statement). Dựa vào chúng, người lập trình và chương trình dịch biết được tổ hợp nào của các kí tự trong bảng chữ cái là hợp lệ và tổ hợp nào là không hợp lệ. Nhờ đó, có thể mô tả chính xác thuật toán để máy thực hiện. 3. Ngữ nghĩa Xác định ý nghĩa thao tác cần phải thực hiện, ứng với tổ hợp kí tự dựa vào ngữ cảnh của nó. Ví dụ: Xét biểu thức cộng A + B (1) I + J (2) Giả thiết A, B là các đại lượng nhận giá trị thực và I, J là các đại lượng nhận giá trị nguyên. Khi đó dấu “+” trong biểu thức (1) được hiểu là cộng hai số thực, dấu “+” trong biểu thức (2) được hiểu là cộng hai số nguyên. Như vậy, ngữ nghĩa dấu “+” trong hai ngữ cảnh là khác nhau. Tóm lại, cú pháp cho biết cách viết một chương trình hợp lệ, còn ngữ nghĩa xác định ý nghĩa của các tổ hợp kí tự trong chương trình. Các lỗi cú pháp được chương trình dịch phát hiện và thông báo cho người lập trình biết. Chỉ có các chương trình không còn lỗi cú pháp mới có thể được dịch sang ngôn ngữ máy. Các lỗi ngữ nghĩa khó phát hiện hơn. Phần lớn các lỗi ngữ nghĩa chỉ được phát hiện khi thực hiện chương trình trên dữ liệu cụ thể. 4. Từ khóa (keyword) Từ khóa là những từ dành riêng của ngôn ngữ lập trình, được ngôn ngữ lập trình quy định dùng với ý nghĩa riêng xác định, người lập trình không được sử dụng với ý nghĩa khác. Từ
Ngôn ngữ lập trình C++ 4 khóa còn được gọi là tên dành riêng, nó thường được dùng để khai báo biến định nghĩa các kiểu dữ liệu, định nghĩa ra các toán tử, các hàm và viết các câu lệnh. Ví dụ. Một số từ khóa: do, break, if, for, int, void,... Ý nghĩa và cách sử dụng chúng sẽ được lần lượt giới thiệu ở các mục sau. Ở đây ta chỉ cần nhớ: • Không được dùng từ khóa để đặt tên cho các hằng, biến, mảng,... • Từ khóa phải được viết bằng chữ thường. Chẳng hạn, không được viết INT hay Int mà phải viết int. 5. Tên (Identifier) Mọi đối tượng trong chương trình đều phải được đặt tên theo quy tắc của ngôn ngữ lập trình và từng chương trình dịch cụ thể. Tên được dùng để xác định các đối tượng khác nhau trong một chương trình. Tên là một khái niệm rất quan trọng. Tên được đặt theo quy tắc sau: • Tên là một dãy liên tiếp bao gồm chữ số, chữ cái, dấu gạch dưới • Bắt đầu bằng chữ cái hoặc dấu gạch dưới, • Không được trùng với từ khóa • Độ dài theo quy định của chương trình dịch. Ví dụ một số tên hợp lệ: i, j, x, bai_tap, ket_qua... Trong các tên, chữ hoa và chữ thường được xem là khác nhau. Ví dụ, AB và Ab, aB, ab là các tên khác nhau trong C++. Trong C++ thường dùng chữ hoa để đặt tên cho các hằng và dùng chữ thường để đặt tên cho hầu hết các đối tượng khác như biến, mảng, hàm, cấu trúc. Tuy nhiên đây không phải điều bắt buộc. 6. Chú thích (Comment) Có thể đặt các đoạn chú thích trong chương trình nguồn. Các chú thích này giúp cho người đọc chương trình nhận biết ý nghĩa của chương trình đó dễ hơn. Chú thích không ảnh hưởng đến nội dung chương trình nguồn và được chương trình dịch bỏ qua. Trong C++ các đoạn chú thích được đặt giữa cặp dấu /* ... */ hoặc có thể viết chú thích trên một dòng theo sau cặp dấu //