Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 196 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
196
Dung lượng
3,45 MB
Nội dung
TRƯỜNG ĐẠI HỌC SƯ PHẠM TPHCM Khoa Toán – Tin học Tài liệu tham khảo mơn NGƠN NGỮ LẬP TRÌNH C/C++ Giảng viên: LƯƠNG TRẦN HY HIẾN Email: hienlth@hcmup.edu.vn Web Course: http://fit.hcmup.edu.vn/~hienlth/C TPHCM – 2009 LỜI NĨI ĐẦU Ngơn ngữ lập trình (NNLT) C/C++ ngơn ngữ lập trình hướng đối tượng mạnh phổ biến tính mềm dẻo đa Không ứng dụng viết C/C++ mà chương trình hệ thống lớn viết hầu hết C/C++ C++ ngơn ngữ lập trình hướng đối tượng phát triển tảng C, khắc phục số nhược điểm ngôn ngữ C mà quan trọng hơn, C++ cung cấp cho người sử dụng (NSD) phương tiện lập trình theo kỹ thuật mới: lập trình hướng đối tượng Đây kỹ thuật lập trình sử dụng hầu hết ngôn ngữ mạnh nay, đặc biệt ngôn ngữ hoạt động môi truờng Windows Microsoft Access, Visual C++, VB.NET, C++.NET, C#, … Hiện NNLT C/C++ đưa vào giảng dạy hầu hết trường Đại học, Cao đẳng để thay số NNLT cũ Pascal … Nó mang nhiều tên gọi khác Tin học sở, Kỹ thuật lập trình, Ngơn ngữ lập trình bậc cao,… Tài liệu đề cập phần nhỏ đến kỹ thuật lập trình với C++, bên cạnh nói số điểm khác biệt so với C Về kỹ thuật lập trình hướng đối tượng (trong C++) trang bị giáo trình khác Tuy nhiên để ngắn gọn, tài liệu tên gọi C/C++ thay C++ Nội dung tài liệu gồm chương Phần đầu gồm chương từ đến chủ yếu trình bày NNLT C++ tảng kỹ thuật lập trình cấu trúc Các chương lại (chương 6, 8) trình bày cấu trúc C++ kỹ thuật đóng gói (lớp đối tượng), định nghĩa phép toán cho lớp làm việc với file (sinh viên tự tham khảo, giảng viên giới thiệu) Tuy có nhiều cố gắng thời gian trình độ người viết có hạn nên chắn khơng tránh khỏi sai sót, mong nhận góp ý bạn đọc để tài liệu ngày hoàn thiện Mọi đóng góp, xin gửi địa chỉ: LƯƠNG TRẦN HY HIẾN hienlth@hcmup.edu.vn MỤC LỤC CHƯƠNG I CÁC KHÁI NIỆM CƠ BẢN CỦA C++ I.1 CÁC YẾU TỐ CƠ BẢN I.1.1 Bảng ký tự C++ I.1.2 Từ khoá I.1.3 Tên gọi 10 I.1.4 Chú thích chương trình 10 I.2 CÁC BƯỚC ĐỂ TẠO VÀ THỰC HIỆN MỘT CHƯƠNG TRÌNH 11 I.2.1 Qui trình viết thực chương trình 11 I.2.2 Soạn thảo tập tin chương trình nguồn 11 I.2.3 Dịch chương trình 12 I.2.4 Chạy chương trình 12 I.3 VÀO/RA TRONG C++ 12 I.3.1 Vào liệu từ bàn phím 13 I.3.2 In liệu hình 13 I.3.3 Định dạng thông tin cần in hình 15 I.3.4 Vào/ra C 16 I.3.5 In kết hình 16 I.3.6 Nhập liệu từ bàn phím 18 CHƯƠNG II KIỂU DỮ LIỆU, BIỂU THỨC VÀ CÂU LỆNH 20 II.1 KIỂU DỮ LIỆU ĐƠN GIẢN 20 II.1.1 Khái niệm kiểu liệu 20 II.1.2 Kiểu ký tự 21 II.1.3 Kiểu số nguyên 22 II.1.4 Kiểu số thực 22 II.2 HẰNG - KHAI BÁO VÀ SỬ DỤNG HẰNG 22 II.2.1 Hằng nguyên 22 II.2.2 Hằng thực 23 a Dạng dấu phảy tĩnh 23 b Dạng dấu phảy động 23 II.2.3 Hằng kí tự 23 a Cách viết 23 b Một số thông dụng 23 II.2.4 Hằng xâu kí tự 24 II.2.5 Khai báo 24 II.3 BIẾN - KHAI BÁO VÀ SỬ DỤNG BIẾN 25 II.3.1 Khai báo biến 25 a Khai báo không khởi tạo 26 b Khai báo có khởi tạo 26 II.3.2 Phạm vi biến 26 II.3.3 Gán giá trị cho biến (phép gán) 27 II.3.4 Một số điểm lưu ý phép gán 27 II.4 PHÉP TOÁN, BIỂU THỨC VÀ CÂU LỆNH 28 II.4.1 Phép toán 28 a Các phép toán số học: +, -, *, /, % 28 b Các phép toán tự tăng, giảm: i++, ++i, i , i 28 c Các phép toán so sánh lôgic 29 II.4.2 Các phép gán 30 II.4.3 Biểu thức 31 a Thứ tự ưu tiên phép toán 31 b Phép chuyển đổi kiểu 32 II.4.4 Câu lệnh khối lệnh 33 II.5 THƯ VIỆN CÁC HÀM TOÁN HỌC 33 II.5.1 Các hàm số học 34 II.5.2 Các hàm lượng giác 34 CHƯƠNG III CẤU TRÚC ĐIỀU KHIỂN VÀ DỮ LIỆU KIỂU MẢNG 37 III.1 CẤU TRÚC RẼ NHÁNH 37 III.1.1 Câu lệnh điều kiện if 37 a Ý nghĩa 37 b Cú pháp 37 c Đặc điểm 37 d Ví dụ minh hoạ 38 III.1.2 Câu lệnh lựa chọn switch 39 a Ý nghĩa 39 b Cú pháp 39 c Cách thực 39 d Ví dụ minh hoạ 39 III.1.3 Câu lệnh nhảy goto 40 a Ý nghĩa 40 b Cú pháp 41 c Ví dụ minh hoạ 41 III.2 CẤU TRÚC LẶP 41 III.2.1 Lệnh lặp for 42 a Cú pháp 42 b Cách thực 42 c Ví dụ minh hoạ 42 d Đặc điểm 43 e Lệnh for lồng 44 III.2.2 Lệnh lặp while 45 a Cú pháp 45 b Thực 45 c Đặc điểm 45 d Ví dụ minh hoạ 45 III.2.3 Lệnh lặp while 48 a Cú pháp 48 b Thực 48 c Đặc điểm 48 d Ví dụ minh hoạ 48 III.2.4 Lối vòng lặp: break, continue 49 a Lệnh break 49 b Lệnh continue 49 III.2.5 So sánh cách dùng câu lệnh lặp 50 III.3 MẢNG DỮ LIỆU 50 III.3.1 Mảng chiều 50 a Ý nghĩa 50 b Khai báo 51 c Cách sử dụng 52 d Ví dụ minh hoạ 52 III.3.2 Xâu kí tự 54 a Khai báo 54 b Cách sử dụng 54 c Phương thức nhập xâu (#include ) 55 d Một số hàm xử lí xâu (#include ) 56 III.4 a b c MẢNG HAI CHIỀU 60 Khai báo 60 Sử dụng 60 Ví dụ minh hoạ 61 CHƯƠNG IV HÀM VÀ CHƯƠNG TRÌNH 68 IV.1 CON TRỎ VÀ SỐ HỌC ĐỊA CHỈ 68 IV.1.1 Địa chỉ, phép toán & 68 IV.1.2 Con trỏ 69 a Ý nghĩa 69 b Khai báo biến trỏ 69 c Sử dụng trỏ, phép toán * 69 IV.1.3 Các phép toán với trỏ 70 a Phép toán gán 70 b Phép toán tăng giảm địa 70 c Phép toán tự tăng giảm 71 d Hiệu trỏ 71 e Phép toán so sánh 71 IV.1.4 Cấp phát động, toán tử cấp phát, thu hồi new, delete 72 IV.1.5 Con trỏ mảng, xâu kí tự 73 a Con trỏ mảng chiều 73 b Con trỏ xâu kí tự 74 c Con trỏ mảng hai chiều 74 IV.1.6 Mảng trỏ 76 a Khái niệm chung 76 b Mảng xâu kí tự 76 IV.2 HÀM 77 IV.2.1 Khai báo định nghĩa hàm 77 a Khai báo 77 b Định nghĩa hàm 77 c Chú ý khai báo định nghĩa hàm 79 IV.2.2 Lời gọi sử dụng hàm 79 IV.2.3 Hàm với đối mặc định 80 IV.2.4 Khai báo hàm trùng tên 81 IV.2.5 Biến, đối tham chiếu 82 IV.2.6 Các cách truyền tham đối 83 a Truyền theo tham trị 83 b Truyền theo dẫn trỏ 84 c Truyền theo tham chiếu 86 IV.2.7 Hàm mảng liệu 87 a Truyền mảng chiều cho hàm 87 b Truyền mảng chiều cho hàm 88 c Giá trị trả lại hàm mảng 90 d Đối giá trị trả lại xâu kí tự 93 e Đối trỏ 94 IV.2.8 Con trỏ hàm 95 a Khai báo 95 b Khởi tạo 95 c Sử dụng trỏ hàm 95 d Mảng trỏ hàm 96 IV.3 ĐỆ QUI 97 IV.3.1 Khái niệm đệ qui 97 IV.3.2 Lớp toán giải đệ qui 98 IV.3.3 Cấu trúc chung hàm đệ qui 98 IV.4 TỔ CHỨC CHƯƠNG TRÌNH 99 IV.4.1 Các loại biến phạm vi 99 a Biến cục 99 b Biến 100 IV.4.2 Biến với mục đích đặc biệt 102 a Biến từ khoá const 102 b Biến tĩnh từ khoá static 103 c Biến ghi từ khoá register 103 d Biến ngồi từ khố extern 104 IV.4.3 Các thị tiền xử lý 105 a Chỉ thị bao hàm tập tin #include 105 b Chỉ thị macro #define 105 c Các thị biên dịch có điều kiện #if, #ifdef, #ifndef 106 CHƯƠNG V DỮ LIỆU KIỂU CẤU TRÚC VÀ HỢP 113 V.1 KIỂU CẤU TRÚC 113 V.1.1 Khai báo, khởi tạo 113 V.1.2 Truy nhập thành phần kiểu cấu trúc 114 V.1.3 Phép toán gán cấu trúc 115 V.1.4 Các ví dụ minh hoạ 116 V.1.5 Hàm với cấu trúc 118 a Con trỏ địa cấu trúc 118 b Địa thành phần cấu trúc 120 c Đối hàm cấu trúc 120 d Giá trị hàm cấu trúc 124 V.1.6 Cấu trúc với thành phần kiểu bit 127 a Trường bit 127 b Đặc điểm 127 V.1.7 Câu lệnh typedef 128 Hàm sizeof() 128 V.2 CẤU TRÚC TỰ TRỎ VÀ DANH SÁCH LIÊN KẾT 128 V.2.1 Cấu trúc tự trỏ 129 V.2.2 Khái niệm danh sách liên kết 130 V.2.3 Các phép toán danh sách liên kết 131 a Tạo phần tử 131 b Chèn phần tử vào 131 c Xoá phần tử thứ i khỏi danh sách 132 d Duyệt danh sách 132 e Tìm kiếm 132 V.3 KIỂU HỢP 135 V.3.1 Khai báo 135 V.3.2 Truy cập 136 V.4 KIỂU LIỆT KÊ 136 CHƯƠNG VI LỚP VÀ ĐỐI TƯỢNG 142 VI.1 LẬP TRÌNH CĨ CẤU TRÚC VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 142 VI.1.1 Phương pháp lập trình cấu trúc 142 VI.1.2 Phương pháp lập trình hướng đối tượng 143 VI.2 LỚP VÀ ĐỐI TƯỢNG 145 VI.2.1 Khai báo lớp 145 VI.2.2 Khai báo thành phần lớp (thuộc tính phương thức) 146 a Các từ khóa private public 146 b Các thành phần liệu (thuộc tính) 146 c Các phương thức (hàm thành viên) 146 VI.2.3 Biến, mảng trỏ đối tượng 147 a Thuộc tính đối tượng 148 b Sử dụng phương thức 148 c Con trỏ đối tượng 149 VI.3 ĐỐI CỦA PHƯƠNG THỨC, CON TRỎ this 151 VI.3.1 Con trỏ this đối thứ phương thức 151 VI.3.2 Tham số ứng với đối trỏ this 151 VI.4 HÀM TẠO (Constructor) 152 VI.4.1 Hàm tạo (hàm thiết lập) 152 a Cách viết hàm tạo 152 b Dùng hàm tạo khai báo 153 c Dùng hàm tạo cấp phát nhớ 153 d Dùng hàm tạo để biểu điền đối tượng 154 e Ví dụ minh họa 154 VI.4.2 Lớp khơng có hàm tạo hàm tạo mặc định 155 a Nếu lớp khơng có hàm tạo 155 b Nếu lớp có hàm tạo 156 VI.4.3 Hàm tạo chép (Copy Constructor) 157 a Hàm tạo chép mặc định 157 b Cách xây dựng hàm tạo chép 159 c Khi cần xây dựng hàm tạo chép 159 d Ví dụ hàm tạo chép 161 VI.5 HÀM HỦY (Destructor) 163 VI.5.1 Hàm hủy mặc định 163 VI.5.2 Quy tắc viết hàm hủy 163 VI.5.3 Vai trò hàm hủy lớp DT 164 VI.6 CÁC HÀM TRỰC TUYẾN (inline) 164 VI.6.1 Ưu nhược điểm hàm 164 VI.6.2 Các hàm trực tuyến 165 VI.6.3 Cách biên dịch dùng hàm trực tuyến 165 VI.6.4 Sự hạn chế trình biên dịch 166 CHƯƠNG VII HÀM BẠN, ĐỊNH NGHĨA PHÉP TOÁN CHO LỚP 168 VII.1 HÀM BẠN (Friend function) 168 VII.1.1 Hàm bạn 168 VII.1.2 Tính chất hàm bạn 169 VII.1.3 Hàm bạn nhiều lớp 170 VII.2 ĐỊNH NGHĨA PHÉP TOÁN CHO LỚP 173 VII.2.1 Tên hàm toán tử 174 VII.2.2 Các đối hàm toán tử 174 VII.2.3 Thân hàm toán tử 174 a Cách dùng hàm toán tử 175 b Các ví dụ định nghĩa chồng toán tử 175 CHƯƠNG VIII CÁC DÒNG NHẬP/XUẤT VÀ FILE 180 VIII.1 NHẬP/XUẤT VỚI CIN/COUT 180 VIII.1.1 Toán tử nhập >> 181 VIII.1.2 Các hàm nhập kí tự xâu kí tự 182 a Nhập kí tự 182 b Nhập xâu kí tự 182 VIII.1.3 Toán tử xuất ,