Bài giảng Ngôn ngữ lập trình C/C++ (Tuần 9)
Lập trình cấu trúc: tổ chức chương trình thành các chương trình con (hàm hoặc thủ tục)
Hàm là một đơn vị chương trình độc lập dùng để thực hiện một công việc nào đó
Trao đổi dữ liệu giữa các hàm thực hiện thông qua các đối và các biến toàn cục
NGÔN NGỮ LẬP TRÌNH C/C++ (Bài giảng tuần 9) Nội dung Các phương pháp luận lập trình Lập trình cấu trúc Lập trình hướng đối tượng Cơ sở lập trình hướng đối tượng trong C++ Đối tượng Lớp Lập trình cấu trúc Lập trình cấu trúc: tổ chức chương trình thành các chương trình con (hàm hoặc thủ tục) Hàm là một đơn vị chương trình độc lập dùng để thực hiện một công việc nào đó Trao đổi dữ liệu giữa các hàm thực hiện thông qua các đối và các biến toàn cục Lập trình cấu trúc (tiếp) Một chương trình “cấu trúc” gồm các cấu trúc dữ liệu (như biến, mảng, bản ghi) và các hàm, thủ tục. Nhiệm vụ chính của việc thiết kế chương trình cấu trúc là tổ chức chương trình thành các hàm, thủ tục. Lập trình hướng đối tượng Lập trình hướng đối tượng có thể được xem là lập trình có cấu trúc kết hợp trừu tượng hóa dữ liệu Việc thiết kế chương trình chú trọng vào dữ liệu Dữ liệu và các thao tác trên dữ liệu được gắn kết chặt chẽ với nhau (khác với lập trình cấu trúc) Lập trình hướng đối tượng (tiếp) Lập trình hướng đối tượng được xây dựng dựa trên đặc trưng chính là khái niệm đóng gói Đóng gói là khái niệm trung tâm của lập trình hướng đối tượng: dữ liệu và các thao tác xử lý được qui định trước và "đóng" thành một "gói" thống nhất, riêng biệt với các dữ liệu khác tạo thành kiểu dữ liệu với tên gọi là các lớp (class) Lớp và đối tượng Lớp (class) là khái niệm quan trọng nhất của lập trình hướng đối tượng Một lớp đơn bao gồm các hàm và dữ liệu có liên quan Các hàm: hàm thành phần/phương thức (member function/method) Các hàm qui định các thao tác được phép thực hiện trên dữ liệu của lớp Khai báo lớp class tên_lớp { // Khai báo các thành phần dữ liệu (thuộc tính) // Khai báo các phương thức (hàm) }; Khai báo lớp (tiếp) Thuộc tính của lớp có thể là các biến, mảng, con trỏ có kiểu chuẩn (int, float, char, char*, long,...) hoặc kiểu ngoài chuẩn đã định nghĩa trước (cấu trúc, hợp, lớp,...). Thuộc tính của lớp không thể có kiểu của chính lớp đó, nhưng có thể là con trỏ của lớp này Ví dụ về khai báo lớp class daydiem { int n; float *x,*y; public: float do_dai(int i, int j) { return sqrt(pow(x[i]-x[j],2)+pow(y[i]-y[j],2)); } void nhapsl(void); }; Ví dụ về khai báo lớp (tiếp) void daydiem::nhapsl(void) { int i; printf(''\n So diem N= ''); scanf("%d'',&n); x = (float*)malloc((n+1)*sizeof(float)); y = (float*)malloc((n+1)*sizeof(float)); for (i=1; i> x >> y ; cout > m ; } Định nghĩa phương thức nhapsl() Định nghĩa phương thức hien() void DIEM::hien() { int mau_ht ; mau_ht = getcolor(); putpixel(x, y, m); setcolor(mau_ht); } Biến, mảng, con trỏ đối tượng Một lớp sau khi định nghĩa có thể xem như một kiểu đối tượng và có thể dùng để khai báo các biến, mảng đối tượng Cách khai báo giống khai báo biến thông thường: Tên_lớp danh sách biến, mảng, con trỏ; Ví dụ: DIEM d1, d2, d3 ; DIEM d[20] ; Truy cập thuộc tính, phương thức Truy cập thuộc tính: tên_lớp.tên_thuộc_tính tên_con_trỏ_lớp->tên_thuộc_tính Truy cập thuộc tính: tên_lớp.tên_phương_thức[danh_sách_đối] tên_con_trỏ_lớp.tên_phương_thức[danh_sách_đối] Bài tập Thiết kế lớp vector: Thể hiện cấu trúc dữ liệu của vector 3 chiều Viết các phương thức thực hiện các phép toán trên vector: Cộng, trừ hai vector, nhân vector với một số, chuẩn hóa vector, tích vô hướng của hai vector 3 chiều
File đính kèm:
- Bài giảng Ngôn ngữ lập trình CC++ (Tuần 9).ppt