• Bài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Thừa kế) - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Thừa kế) - Lê Thành Sách

    Tại sao cần đến thừa kế (3) Sử dụng tính năng thừa kế (inheritance) Chia tập lớn thành các lớp nhỏ (lớp nhỏ, như giải pháp số 2) Với các lớp có quan hệ “is-a”, hãy khai báo thừa kế cho chúng Tính năng thừa kế của ngôn ngữ lập trình (C++): Các lớp con có thể thừa kế các thành viên từ lớp cha. Tránh được sự lặp lại code nói trên. Các lớp c...

    pdf74 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 499 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Cơ bản) - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Cơ bản) - Lê Thành Sách

    Kiểu dữ liệu trong C Nhược điểm là gì? Khó biết được dữ liệu có thể được xử lý bởi hàm nào. Khó đảm bảo ràng buộc trên dữ liệu, ví dụ: Ngày: 1 à 31 (tuỳ tháng, tối đa) Tháng: 1 à 12 Chỉ cần tính chất về “đóng gói” (enscapsulation) của lập trình hướng đối tượng (OOP) đã giải quyết những vấn đề trên. Hơn nữa, ngoài tính “đóng gói”, OOP còn c...

    pdf117 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 570 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Chủ đề nâng cao) - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 10: Lập trình hướng đối tượng (Chủ đề nâng cao) - Lê Thành Sách

    Đa thừa kế: thừa kế ảo (virtual) Thừa kế ảo là gì? Như trường hợp ở slide trước: đối tượng của lớp cha (như ClassA ở trên) có thể được cấp phát lặp lại nhiều hơn 1 lần à không mong muốn Đây là bài toán: “diamon problem” Thừa kế ảo (virtual) giúp cho đối tượng của lớp cha (như ClassA ở trên) chỉ được cấp phát một lần. Khai báo ntn? Như slide sau:

    pdf36 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 496 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 9: Tập tin - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 9: Tập tin - Lê Thành Sách

    Các loại tập tin Tập tin văn bản (text) Các byte trong mô hình tập tin chứa các ký tự đọc được (có nghĩa) bởi con người Tập tin có thể mở ra để đọc và thay đổi bởi chương trình soạn thảo văn bản như NOTEPAD. Tập tin nhị phân (binary) Được tạo bởi chương trình nào đó, không dành cho con người đọc và hiểu trực tiếp bằng NOTEPAD Tập tin dà...

    pdf52 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 497 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 6: Hàm - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 6: Hàm - Lê Thành Sách

    Hàm là gì? Hàm là Một đơn vị xử lý Một chuỗi các lệnh có liên quan, được thực hiện cùng nhau để hoàn thành một công việc nào đó Ví dụ: trong thư viện Hàm sin(x) Là chuỗi các lệnh tính toán để tính giá trị sin của một góc x được truyền vào, góc x có đơn vị tính là radian; hàm sin(x) trả về một số thực Hàm sqrt(x) Là chuỗi...

    pdf107 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 560 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 7: Con trỏ - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 7: Con trỏ - Lê Thành Sách

    Ứng dụng của con trỏ Mảng trong C Phải biết trước số lượng phần tử tại thời điểm viết chương trình Do đó, cần phải khai báo một số lượng lớn các ô nhớ để sẵn. Tuy nhiên, tại một thời điểm nào đó, chương trình có thể sẽ sử dụng ít hơn rất nhiều à lãng phí Yêu cầu: Có thể nào dùng mảng với số lượng phần tử chỉ cần biết lúc chương trình đang...

    pdf51 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 681 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 6: Kiểu dữ liệu người lập trình định nghĩa - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 6: Kiểu dữ liệu người lập trình định nghĩa - Lê Thành Sách

    Từ khoá typedef Ví dụ ở trên Tên kiểu mới “byte” được định nghĩa và có thể dùng thay cho kiểu “unsigned byte” => Tăng ý nghĩa cho “unsigned char”: kiểu sau khi định nghĩa mô tả các byte dữ liệu, và đương nhiên không có dấu => Ngắn hơn trong viết mã => Có thể dùng tương thích với kiểu gốc =Biến a (kiểu mới) có thể gán cho biến c (kiểu gốc) ...

    pdf88 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 567 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 5: Cấu trúc lặp - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 5: Cấu trúc lặp - Lê Thành Sách

    Câu lệnh for Bài toán tiêu biểu dùng với câu lệnh for. Rất phù hợp với bài toán cần lặp với số lần lặp xác định (số lần này là số nguyên) Rất nhiều bài toán trong kỹ thuật dùng mảng để lưu trữ dữ liệu Sẽ học mảng trong chương sau Để xử lý dữ liệu trên mảng (duyệt qua các phần tử), cấu trúc for là phù hợp nhất. Câu lệnh for, khi kết hợp ...

    pdf38 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 525 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 4: Cấu trúc rẽ nhánh - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 4: Cấu trúc rẽ nhánh - Lê Thành Sách

    Ứng dụng của cấu trúc rẽ nhánh Các ứng dụng hữu ích trong thực tế điều có dùng đến cấu trúc rẽ nhánh Ví dụ Bài toán 1: Nhập một ngày (gồm ngày, tháng, năm) Một chương trình tốt KHÔNG giả sử ngày, tháng và năm được đọc vào đã thuộc miền giá trị cho phép Để khắc phục trường hợp lỗi với tháng, có thể cấu trúc sau đã sử dụng if ( (tháng < 0)...

    pdf56 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 514 | Lượt tải: 1

  • Bài giảng Kỹ thuật lập trình - Chương 3: Tổ chức dữ liệu trong chương trình - Lê Thành SáchBài giảng Kỹ thuật lập trình - Chương 3: Tổ chức dữ liệu trong chương trình - Lê Thành Sách

    Dữ liệu và Kiểu dữ liệu Tại sao phải cần đến kiểu dữ liệu? Mọi chương trình đều cần đến dữ liệu Người lập trình cần vùng nhớ (thuộc RAM của máy tính) để lưu trữ dữ liệu trong quá trình chương trình thực thi Khi người dùng nhập dữ liệu (thông qua bàn phím, chọn trên màn hình, đọc từ sensor, v.v): dữ liệu sẽ được lưu vào các vùng nhớ của RAM...

    pdf60 trang | Chia sẻ: thanhle95 | Ngày: 30/06/2021 | Lượt xem: 508 | Lượt tải: 1