Ngôn ngữ lập trình c++

10 1 0
Ngôn ngữ lập trình c++

Đang tải... (xem toàn văn)

Thông tin tài liệu

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG NGƠN NGỮ LẬP TRÌNH C++ (Dùng cho sinh viên hệ đào tạo đại học từ xa) HÀ NỘI - 2006 NGÔN NGỮ LẬP TRÌNH C++ PGS.TS Trần Đình Quế KS Nguyễn Mạnh Hùng Lập trình nâng cao với C++ Lập trình hướng đối tượng với C++ GIỚI THIỆU C++ ngôn ngữ lập trình hướng đối tượng mở rộng từ ngơn ngữ C Do vậy, C++ có ưu điểm kế thừa điểm mạnh truyền thống ngôn ngữ C uyển chuyển, tương thích với thiết bị phần cứng Hiện nay, C++ ngôn ngữ lập trình phổ biến, giảng dạy trường đại học nước giới đặc biệt sử dụng rộng rãi cho nhu cầu phát triển công nghiệp phần mềm Tài liệu nhằm giới thiệu cho sinh viên ngôn ngữ lập trình C++, mà cịn mong muốn qua sinh viên hiểu tư tưởng phương pháp lập trình hướng đối tượng nói chung Nội dung tài liệu bao gồm hai phần chính: • Phần thứ lập trình nâng cao với C++, bao gồm lập trình C++ với trỏ mảng, kiểu liệu có cấu trúc thao tác vào tệp • Phần thứ hai lập trình hướng đối tượng với C++, bao gồm định nghĩa thao tác lớp đối tượng, tính kế thừa tương ứng bội C++, cách sử dụng số lớp thư viện C++ Nội dung tài liệu tổ chức thành chương: Chương 1: Giới thiệu tổng quan phương pháp lập trình Trình bày phương pháp lập trình tuyến tính, lập trình cấu trúc đặc biệt, làm quen với khái niệm lập trình hướng đối tượng Chương 2: Con trỏ mảng Trình bày cách khai báo sử dụng kiểu trỏ mảng ngơn ngữ C++ Chương 3: Kiểu liệu có cấu trúc Trình bày cách biểu diễn cài đặt số kiểu cấu trúc liệu trừu tượng C++ Sau đó, trình bày cách áp dụng kiểu liệu ứng dụng cụ thể Chương 4: Vào tệp Trình bày thao tác đọc, ghi liệu tệp tin khác nhau: tệp tin văn tệp tin nhị phân Trình bày cách truy nhập tệp tin trực tiếp Chương 5: Lớp đối tượng Trình bày khái niệm mở đầu cho lập trình hướng đối tượng C++, bao gồm cách khai báo sử dụng lớp, thuộc tính lớp; cách khởi tạo huỷ bỏ đối tượng, quy tắc truy nhập đến thành phần lớp Chương 6: Tính kế thừa tương ứng bội Trình bày cách thức kế thừa lớp C++, nguyên tắc truy nhập kế thừa, định nghĩa nạp chồng phương thức tính đa hình lập trình hướng đối tương với C++ Chương 7: Một số lớp quan trọng Trình bày cách sử dụng số lớp có sẵn thư viện chuẩn C++, bao gồm lớp: lớp tập hợp, lớp chuỗi, lớp ngăn xếp, lớp hàng đợi lớp danh sách liên kết Để đọc sách này, sinh viên phải quen biết khái niệm lập trình, có số kỹ lập trình với ngơn ngữ C C++ Cuốn sách dùng tài liệu tham khảo cho sinh viên muốn tìm hiểu kỹ thuật lập trình nâng cao lập trình hướng đối tượng với C++ Cuốn sách có kèm theo đĩa chương trình chứa tồn chương trình lấy làm minh hoạ tập sách Mặc dù tác giả có nhiều cố gắng việc biên soạn tài liệu này, song tránh khỏi thiếu sót Rất mong nhận ý kiến đóng góp quý báu từ sinh viên bạn đồng nghiệp Chương 1: Giới thiệu phương pháp lập trình CHƯƠNG GIỚI THIỆU VỀ CÁC PHƯƠNG PHÁP LẬP TRÌNH Nội dung chương tập trung trình bày phương pháp lập trình: • Phương pháp lập trình tuyến tính • Phương pháp lập trình hướng cấu trúc • Phương pháp lập trình hướng đối tượng 1.1 LẬP TRÌNH TUYẾN TÍNH Đặc trưng lập trình tuyến tính tư theo lối Chương trình thực theo thứ tự từ đầu đến cuối, lệnh lệnh kết thúc chương trình Đặc trưng Lập trình tuyến tính có hai đặc trưng: • Đơn giản: chương trình tiến hành đơn giản theo lối tuần tự, khơng phức tạp • Đơn luồng: có luồng công việc nhất, công việc thực luồng Tính chất • Ưu điểm: Do tính đơn giản, lập trình tuyến tính ứng dụng cho chương trình đơn giản có ưu điểm dễ hiểu • Nhược điểm: Với ứng dụng phức tạp, người ta dùng lập trình tuyến tính để giải Ngày nay, lập trình tuyến tính tồn phạm vi modul nhỏ phương pháp lập trình khác Ví dụ chương trình lập trình cấu trúc, lệnh thực theo từ đầu đến cuối chương trình 1.2 LẬP TRÌNH HƯỚNG CẤU TRÚC 1.2.1 Đặc trưng lập trình hướng cấu trúc Trong lập trình hướng cấu trúc, chương trình chia nhỏ thành chương trình chương trình thực cơng việc xác định Chương trình gọi đến chương trình theo giải thuật, cấu trúc xác định chương trình Các ngơn ngữ lập trình cấu trúc phổ biến Pascal, C C++ Riêng C++ ngồi việc có đặc trưng lập trình cấu trúc kế thừa từ C, cịn có đặc trưng lập trình hướng đối tượng Cho nên C++ cịn gọi ngơn ngữ lập trình nửa cấu trúc, nửa hướng đối tượng Đặc trưng Đặc trưng lập trình cấu trúc thể mối quan hệ: Chương 1: Giới thiệu phương pháp lập trình Chương trình = Cấu trúc liệu + Giải thuật Trong đó: • Cấu trúc liệu cách tổ chức liệu cho việc xử lý hay nhiều chương trình • Giải thuật quy trình để thực cơng việc xác định Trong chương trình, giải thuật có quan hệ phụ thuộc vào cấu trúc liệu: • Một cấu trúc liệu phù hợp với số hạn chế giải thuật • Nếu thay đổi cấu trúc liệu phải thay đổi giải thuật cho phù hợp • Một giải thuật thường phải kèm với cấu trúc liệu định Tính chất • Mỗi chương trình gọi thực nhiều lần chương trình • Các chương trình gọi đến để thực theo thứ tự bất kì, tuỳ thuộc vào giải thuật chương trình mà khơng phụ thuộc vào thứ tự khai báo chương trình • Các ngơn ngữ lập trình cấu trúc cung cấp số cấu trúc lệnh điều khiển chương trình Ưu điểm • Chương trình sáng sủa, dễ hiểu, dễ theo dõi • Tư giải thuật rõ ràng Nhược điểm • Lập trình cấu trúc khơng hỗ trợ mạnh việc sử dụng lại mã nguồn: Giải thuật phụ thuộc chặt chẽ vào cấu trúc liệu, đó, thay đổi cấu trúc liệu, phải thay đổi giải thuật, nghĩa phải viết lại chương trình • Khơng phù hợp với phần mềm lớn: tư cấu trúc với giải thuật phù hợp với toán nhỏ, nằm phạm vi modul chương trình Với dự án phần mềm lớn, lập trình cấu trúc tỏ không hiệu việc giải mối quan hệ vĩ mô modul phần mềm Vấn đề Vấn đề lập trình cấu trúc cách để phân chia chương trình thành chương trình cho phù hợp với yêu cầu, chức mục đích tốn Thơng thường, để phân rã tốn lập trình cấu trúc, người ta sử dụng phương pháp thiết kế xuống (top-down) 1.2.2 Phương pháp thiết kế xuống (top-down) Phương pháp thiết kế top-down tiếp cận toán theo hướng từ xuống dưới, từ tổng qúat đến chi tiết Theo đó, tốn chia thành toán nhỏ Mỗi tốn lại chia nhỏ tiếp, có thể, thành toán nhỏ Quá trình cịn gọi q trình làm mịn dần Quá trình dừng lại tốn khơng cần chia nhỏ thêm Chương 1: Giới thiệu phương pháp lập trình Nghĩa tốn giải chương trình với giải thuật đơn giản Ví dụ, sử dụng phương pháp top-down để giải toán xây nhà Chúng ta phân rã tốn theo bước sau: • Ở mức thứ nhất, chia tốn xây nhà thành toán nhỏ làm móng, đổ cột, đổ trần, xây tường, lợp mái • Ở mức thứ hai, phân rã công việc mức thứ việc làm móng nhà phân rã tiếp thành cơng việc đào móng, gia cố nền, làm khung sắt, đổ bê tong; công việc đổ cột phần rã thành … • Ở mức thứ ba, phân rã công việc mức thứ hai việc đào móng phân chia tiếp thành công việc đo đạc, cắm mốc, dây, đào kiểm tra móng Việc gia cố phân rã thành … Q trình phân rã dừng mức này, cơng việc thu đo đạc, cắm mốc, dây, đào… thực ngay, khơng cần chia nhỏ thêm Lưu ý: • Cùng sử dụng phương pháp top-down với tốn, cho nhiều kết khác Nguyên nhân khác tiêu chí để phân rã tốn thành tốn Ví dụ, áp dụng phương pháp top-down để giải toán xây nhà, sử dụng cách khác để phân chia tốn, ta thu kết khác biệt so với phương pháp ban đầu: • Ở mức thứ nhất, chia toán xây nhà thành toán nhỏ làm phần gỗ, làm phần sắt, làm phần bê tông làm phần gạch • Ở mức thứ hai, phân rã cơng việc mức thứ làm phần gỗ chia thành công việc xẻ gỗ, gia công gỗ, tạo khung, lắp vào nhà Việc làm sắt chia nhỏ thành… Rõ ràng, với cách làm mịn này, ta thu kết khác hẳn với cách thức thực phần 1.3 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1.3.1 Lập trình hướng đối tượng Trong lập trình hướng đối tượng: • Người ta coi thực thể chương trình đối tượng sau trừu tượng hố đối tượng thành lớp đối tượng • Dữ liệu tổ chức thành thuộc tính lớp Nguời ta ngăn chặn việc thay đổi tuỳ tiện liệu chương trình cách giới hạn truy nhập cho phép truy nhập liệu thông qua đối tượng, thông qua phương thức mà đối tượng cung cấp… • Quan hệ đối tượng quan hệ ngang hàng quan hệ kế thừa: Nếu lớp B kế thừa từ lớp A A gọi lớp sở B gọi lớp dẫn xuất Chương 1: Giới thiệu phương pháp lập trình Ngơn ngữ lập trình hướng đối tượng phổ biến Java, C++, C# Mặc dù C++ có đặc trưng lập trình hướng đối tượng khơng phải ngơn ngữ lập trình hướng đối tượng Đặc trưng Lập trình hướng đối tượng có hai đặc trưng bản: • Đóng gói liệu: liệu ln tổ chức thành thuộc tính lớp đối tượng Việc truy nhập đến liệu phải thông qua phương thức đối tượng lớp • Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn thể thông qua chế kế thừa Cơ chế cho phép lớp đối tượng kế thừa từ lớp đối tượng khác Khi đó, lớp dẫn xuất, sử dụng phương thức (mã nguồn) lớp sở mà không cần phải định nghĩa lại Ưu điểm Lập trình hướng đối tượng có số ưu điểm bật: • Khơng cịn nguy liệu bị thay đổi tự chương trình Vì liệu đóng gói vào đối tượng Nếu muốn truy nhập vào liệu phải thông qua phương thức cho phép đối tượng • Khi thay đổi cấu trúc liệu đối tượng, không cần thay đổi mã nguồn đối tượng khác, mà cần thay đổi số thành phần đối tượng dẫn xuất Điều hạn chế ảnh hưởng xấu việc thay đổi liệu đến đối tượng khác chương trình • Có thể sử dụng lại mã nguồn, tiết kiệm tài ngun, chi phí thời gian Vì ngun tắc kế thừa cho phép lớp dẫn xuất sử dụng phương thức từ lớp sở phương thức nó, mà khơng cần thiết phải định nghĩa lại • Phù hợp với dự án phần mềm lớn, phức tạp 1.3.2 Một số khái niệm Trong mục này, làm quen với số khái niệm lập trình hướng đối tượng Bao gồm: • Khái niệm đối tượng (object) • Khái niệm đóng gói liệu (encapsulation) • Khái niệm kế thừa (inheritance) • Khái niệm đa hình (polymorphism) Đối tượng (Object) Trong lập trình hướng đối tượng, đối tượng coi đơn vị nhỏ Các diệu cách xử lí thành phần đối tượng mà không coi thực thể Một đối tượng chứa liệu riêng nó, đồng thời có phương thức (hành động) thao tác liệu đó: Đối tượng = liệu + phương thức Chương 1: Giới thiệu phương pháp lập trình Lớp (Class) Khi có nhiều đối tượng giống mặt liệu phương thức, chúng nhóm lại với gọi chung lớp: • Lớp trừu tượng hố đối tượng • Đối tượng thể lớp Đóng gói liệu (Encapsulation) • Các liệu đóng gói vào đối tượng Mỗi liệu có phạm vi truy nhập riêng • Khơng thể truy nhập đến liệu cách tự lập trình cấu trúc • Muốn truy nhập đến liệu bảo vệ, phải thông qua đối tượng, nghĩa phải sử dụng phương thức mà đối tượng cung cấp truy nhập đến liệu đối tượng Tuy nhiên, C++ ngơn ngữ lập trình nửa đối tượng, C++ cho phép định nghĩa biến liệu hàm tự do, kết kế thừa từ ngôn ngữ C, ngôn ngữ lập trình cấu trúc Kế thừa (Inheritance) Tính kế thừa lập trình hướng đối tượng cho phép lớp kế thừa từ số lớp tồn Khi đó, lớp sử dụng liệu phương thức lớp sở Ngồi ra, lớp dẫn xuất cịn bổ sung thêm số liệu phương thức Ưu điểm kế thừa thay đổi liệu lớp, cần thay đổi phương thức phạm vi lớp sở mà không cần thay đổi lớp dẫn xuất Đa hình (Polymorphsim) Đa hình khái niệm ln kèm với kế thừa Do tính kế thừa, lớp sử dụng lại phương thức lớp khác Tuy nhiên, cần thiết, lớp dẫn xuất định nghĩa lại số phương thức lớp sở Đó nạp chồng phương thức kế thừa Nhờ nạp chồng phương thức này, ta cần gọi tên phương thức bị nạp chồng từ đối tượng mà khơng cần quan tâm đối tượng lớp Chương trình tự động kiểm tra xem đối tượng thuộc kiểu lớp sở hay thuộc lớp dẫn xuất, sau gọi phương thức tương ứng với lớp Đó tính đa hình 1.3.3 Lập trình hướng đối tượng C++ Vì C++ ngơn ngữ lập trình mở rộng từ ngơn ngữ lập trình cấu trúc C nên C++ xem ngơn ngữ lập trình nửa hướng đối tượng, nửa hướng cấu trúc Những đặc trưng hướng đối tượng C++ • Cho phép định nghĩa lớp đối tượng • Cho phép đóng gói liệu vào lớp đối tượng Cho phép định nghĩa phạm vi truy nhập liệu lớp từ khoá phạm vi: public, protected, private ...NGƠN NGỮ LẬP TRÌNH C++ PGS.TS Trần Đình Quế KS Nguyễn Mạnh Hùng Lập trình nâng cao với C++ Lập trình hướng đối tượng với C++ GIỚI THIỆU C++ ngơn ngữ lập trình hướng đối tượng mở rộng từ ngơn ngữ. .. phương pháp lập trình Ngơn ngữ lập trình hướng đối tượng phổ biến Java, C++, C# Mặc dù C++ có đặc trưng lập trình hướng đối tượng khơng phải ngơn ngữ lập trình hướng đối tượng Đặc trưng Lập trình hướng... chương trình lập trình cấu trúc, lệnh thực theo từ đầu đến cuối chương trình 1.2 LẬP TRÌNH HƯỚNG CẤU TRÚC 1.2.1 Đặc trưng lập trình hướng cấu trúc Trong lập trình hướng cấu trúc, chương trình

Ngày đăng: 22/10/2022, 10:40

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan