• Giáo trình Ngôn ngữ lập trình - Bài 10: Các kiểu dữ liệu trừu tượng: Danh sách liên kết, Ngăn xếp, Hàng đợi - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 10: Các kiểu dữ liệu trừu tượng: Danh sách liên kết, Ngăn xếp, Hàng đợi - Lê Nguyễn Tuấn Thành

    Lưu trữ cây  Ví dụ của chúng ta lưu giá trị theo một cách đặc biệt  Quy luật lưu trữ dữ liệu trong cây nhị phân  Dữ liệu ở cây con bên trái nhỏ hơn dữ liệu gốc  Dữ liệu ở cây con bên phải lớn hơn dữ liệu gốc  2 quy tắc trên được áp dụng đệ quy với từng cây con  Cây sử dụng cơ chế lưu trữ:  Được gọi là cây nhị phân tìm kiếm (Called bin...

    pdf47 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 616 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 9: Đệ quy - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 9: Đệ quy - Lê Nguyễn Tuấn Thành

    Những giải pháp đệ quy  Chú ý rằng thuật toán tìm kiếm nhị phân thực sự giải quyết vấn đề “tổng quan hơn”  Mục tiêu ban đầu: thiết kế hàm để tìm kiếm trong toàn bộ mảng  Hàm của chúng ta: cho phép tìm kiếm bất kỳ đoạn con nào của mảng  Bằng cách chỉ định hai ranh giới first và last  Rất phổ biến khi thiết kế hàm đệ quyTóm tắt  Giảm m...

    pdf35 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 507 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 8: Đa Hình và Hàm Ảo - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 8: Đa Hình và Hàm Ảo - Lê Nguyễn Tuấn Thành

    Ép kiểu xuống (Downcasting)  Ép kiểu xuống rất nguy hiểm!  Ép từ kiểu tổ tiên thành kiểu con cháu  Giả sử thông tin được thêm vào  Có thể được thực hiện với dynamic_cast Pet *ppet; ppet = new Dog; Dog *pdog = dynamic_cast(ppet);  Hợp lệ, nhưng nguy hiểm  Ép kiểu xuống hiếm khi dùng do một số nhược điểm  Phải kiểm tra xem tất...

    pdf34 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 558 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 6: Nạp chồng toán tử và Kế thừa - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 6: Nạp chồng toán tử và Kế thừa - Lê Nguyễn Tuấn Thành

    Bài tập  Định nghĩa lớp Nhân viên (Employee)  Private:Tên, Tuổi, Giới Tính, Quốc Tịch  Public: void printCheck()  Protected:CMTND  Định nghĩa hai lớp con kế thừa từ lớp Nhân_Viên  Nhân viên được trả lương (SalariedEmployee)  Nhân viên bán thời gian, theo giờ (HourlyEmployee)  Định nghĩa lại hàm printCheck() riêng của hai lớp conTóm ...

    pdf48 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 817 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 4: Cấu trúc và lớp - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 4: Cấu trúc và lớp - Lê Nguyễn Tuấn Thành

    Hàm tĩnh  Hàm thành viên cũng có thể là tĩnh (static)  Nếu không cần thiết truy cập đến dữ liệu của đối tượng  Và vẫn phải là thành viên của lớp  Hàm tĩnh chỉ có thể dùng dữ liệu tĩnh, gọi hàm tĩnh khác  Có thể được gọi bên ngoài lớp chứa hàm đó  Từ những đối tượng không thuộc lớp (non-class), vd. Server::getTurn();  Hoặc thông qua đ...

    pdf73 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 556 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 3: Hàm và Nạp chồng Hàm - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 3: Hàm và Nạp chồng Hàm - Lê Nguyễn Tuấn Thành

    Quy tắc test căn bản  Viết chương trình đúng  Tối giảm hóa lỗi (errors), bugs  Đảm bảo tính hợp lệ của dữ liệu  Test và debug từng hàm trong chương trình một cách lần lượt  Tránh lỗi phân tầng (error-cascading) và kết quả xung đột (conflicting results)Tóm tắt cho phần nạp chồng hàm  Tham trị (call-by-value) là những bản sao cục bộ (lo...

    pdf59 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 597 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Bài 1: Giới thiệu về C++ - Lê Nguyễn Tuấn Thành

    Namespace  Namespace xác định một tập các tên được định nghĩa  Ví dụ: #include using namespace std;  Thay vì phải viết std::cin, chúng ta chỉ cần viết cinTóm tắt  C++ là ngôn ngữ lập trình phân biệt chữ hoa, chữ thường  Nên đặt các tên (biến và hằng số) có ý nghĩa  Các biến phải được khai báo trước khi sử dụng, và nên đư...

    pdf34 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 623 | Lượt tải: 0

  • Giáo trình Ngôn ngữ lập trình - Tổng quan môn học - Lê Nguyễn Tuấn ThànhGiáo trình Ngôn ngữ lập trình - Tổng quan môn học - Lê Nguyễn Tuấn Thành

    Nội dung môn học  Bài 1: Giới thiệu về C++  Bài 2: Các cấu trúc điều khiển, mảng và con trỏ  Bài 3: Hàm và nạp chồng hàm  Bài 4: Cấu trúc và lớp  Bài 5: Ôn tập  Bài 6: Nạp chồng toán tử và kế thừa  Bài 7: Khuôn mẫu (Template) và thư viện chuẩn (STL)  Bài 8: Hàm ảo và đa hình  Bài 9: Đệ quy  Bài 10: Các kiểu dữ liệu trừu tượng : ...

    pdf6 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 553 | Lượt tải: 0

  • Giáo trình Phát triển phần mềm mã nguồn mở - Chương 4: Lập trình C/Linux - Bùi Minh QuânGiáo trình Phát triển phần mềm mã nguồn mở - Chương 4: Lập trình C/Linux - Bùi Minh Quân

    Macro trong makefile  Macro cho phép viết makefile một cách tổng quát và mềm dẽo hơn, tương tự như việc sử dụng biến và hằng trong lập trình – Có nhiều tùy chọn cho việc biên dịch chương trình: phiên bản debug, phiên bản phát hành – Thay đổi trình biên dịch tùy thuộc vào hệ thống  Đinh nghĩa macro: MACRONAME=Value  Truy cập giá trị: $(MA...

    pdf29 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 615 | Lượt tải: 0

  • Quản lý gói phần mềm - Ngô Bá HùngQuản lý gói phần mềm - Ngô Bá Hùng

    Advanced Package Tool (tt) • Cập nhật danh sách các gói trên repositories mô tả trong /etc/apt/sources.list – sudo apt-get update • Nâng cấp các gói đã cài đặt lên version mới nhất – sudo apt-get upgrade • Nâng cấp phiên bản một cách thông minh – sudo apt-get dist-upgrade • Xem hướng dẫn – sudo apt-get help

    pdf12 trang | Chia sẻ: thucuc2301 | Ngày: 24/11/2020 | Lượt xem: 593 | Lượt tải: 0