SlideShare a Scribd company logo
CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 1: Tổng quan
Giải bài toán bằng phần mềm 1. Xác định bài toán 2. Thiết kế phần mềm 3. Thiết kế dữ liệu 4. Thiết kế và phân tích giải thuật 5. Lập trình và gỡ rối 6. Kiểm tra phần mềm 7. Bảo trì
Lập trình hướng đối tượng (OOP) Chương trình = tập các đối tượng tương tác nhau. Đối tượng (object) = thuộc tính + tác vụ entry đối tượng (object) local data of object local data of operation
Kiểu trừu tượng Kiểu trừu tượng (abstract type): định nghĩa interface (tập các entry) Entry Tên method Danh sách tham số hình thức Đặc tả chức năng Chưa có dữ liệu bên trong, chưa dùng được Chỉ dùng để thiết kế ý niệm
Hiện thực và sử dụng Class: hiện thực của abstract type Định nghĩa các dữ liệu Định nghĩa các phương thức + hàm phụ trợ (nội bộ) Định nghĩa các phương phức ‘constructor’ và ‘destructor’ nếu cần Đối tượng = một instance của một class Thông điệp (message):  dùng tương tác lẫn nhau = lời gọi phương thức của các đối tượng Student  aStudent;  aStudent.print();
Đặc điểm của OOP Tính bao đóng: Che dấu cấu trúc dữ liệu bên trong. Che dấu cách thức hiện thực đối tượng. Kế thừa: Định nghĩa thêm các dữ liệu và phương thức cần thiết từ một class có sẵn. Cho phép overwrite/overload. Cho phép dùng thay thế và khả năng dynamic biding. Bao gộp: Một đối tượng chứa nhiều đối tượng khác.
Cấu trúc của đối tượng method method method Internal function Internal function Internal data
Khai báo một class trên C++ class Student { private: int StudentID; string StudentName; public: Student(); Student(const Student &) ~Student() void operator=(const Student &) void print(); }; void main() { Student aStudent; sStudent.print(); } constructor copy constructor destructor overload assignment operator gọi phương thức khai báo dữ liệu bên trong phương thức (hành vi) khai báo một đối tượng khai báo một lớp mới
Dùng ghi chú làm rõ nghĩa 1. Ghi chú vào đầu mỗi hàm (a) Người lập trình, ngày, bản sao (b) Mục đích của hàm (c) Input, output (d) Các chỉ dẫn đến các tài liệu khác (nếu có) Có thể dùng dạng: Precondition và Postcondition 2. Ghi chú vào mỗi biến, hằng, kiểu 3. Ghi chú vào mỗi phần của chương trình 4. Ghi chú mỗi khi dùng các kỹ thuật đặc biệt
Dùng ghi chú làm rõ nghĩa – Ví dụ void  Life::update() /* Pre : grid đang chứa một trạng thái của thực thể sống Post : grid sẽ chứa trạng thái tiến hóa mới của thực thể sống này  */ { int  row, col; int  new_grid[maxrow + 2][maxcol + 2]; //Chứa trạng thái mới vào đây for  (row = 1; row <= maxrow; row++) for  (col = 1; col <= maxcol; col++) switch  (neighbor_count(row, col)) { case  2: //Trạng thái của tế bào không đổi new_grid[row][col] = grid[row][col]; break; case  3: //Tế bào sẽ sống new_grid[row][col] = 1; break; default : //Tế bào sẽ chết new_grid[row][col] = 0; } for  (row = 1; row <= maxrow; row++) for  (col = 1; col <= maxcol; col++) grid[row][col] = new_grid[row][col]; //Cập nhật các tế bào cùng lúc }
Stub và driver Stub: Viết các prototype trước Viết dummy code để thử nghiệm Ví dụ: bool user says yes( ) { return(true);  } Driver: Viết một chương trình nhỏ để kiểm tra Thư viện cá nhân: Gom các hàm dùng chung thành thư viện
Trò chơi Life Luật: Một ma trận các tế bào là sống hay chết Các tế bào lân cận được tính là tám ô xung quanh Quá trình tiến hoá áp dụng cho một trạng thái hiện tại Một tế bào sống là sống ở thế hệ kế nếu có 2 hoặc 3 tế bào sống lân cận và chết trong trường hợp khác Một tế bào đang chết sẽ sống ở thế hệ kế nếu nó có chính xác 3 tế bào sống lân cận, nếu không nó vẫn chết tiếp. Tất cả các tế bào được kiểm chứng cùng một lúc để quyết định trạng thái sống, chết ở thế hệ kế
Trò chơi Life – Ví dụ
Trò chơi Life – Thiết kế phương thức
Trò chơi Life – Thiết kế class const int maxrow = 20 const maxcol = 60; class Life { public: void initialize( ); void print( ); void update( ); private: int grid[maxrow][maxcol]; int neighbor_count(int row, int col); };
Trò chơi Life – Đếm số tế bào sống lân cận Mã C++: count = 0 for (i = row − 1; i <= row + 1; i++) for (j = col − 1; j <= col + 1; j++) count += grid[i][j]; count −= grid[row][col]; Sai chỗ nào? Nếu như row hoặc col là ngay các  biên  của array Các giá trị của các tế bào không là 1 hoặc 0
Trò chơi Life – Thay đổi thiết kế Giải pháp: Thêm vào 2 cột và 2 hàng giả có giá trị luôn là 0 Khai báo dữ liệu: grid[maxrow + 2][maxcol + 2]
Trò chơi Life – Giải thuật cập nhật Algorithm  Update Input : một trạng thái sống Output : trạng thái của thế hệ kế tiếp 1.  Khai báo một grid mới 2.  Duyệt qua toàn bộ tế bào của trạng thái hiện tại 2.1.  Đếm số tế bào sống xung quanh ô hiện tại 2.2.  Nếu là 2 thì trạng thái mới chính là trạng thái cũ 2.3.  Nếu là 3 thì trạng thái mới là sống 2.4.  Ngược lại là chết 3.  Cập nhật grid mới vào trong grid cũ End  Update
Trò chơi Life – Mã C++ cập nhật void  Life::update() /* Pre : grid đang chứa một trạng thái của thực thể sống Post : grid sẽ chứa trạng thái tiến hóa mới của thực thể sống này  */ { int  row, col; int  new_grid[maxrow + 2][maxcol + 2]; //Chứa trạng thái mới vào đây for  (row = 1; row <= maxrow; row++) for  (col = 1; col <= maxcol; col++) switch  (neighbor_count(row, col)) { case  2: //Trạng thái của tế bào không đổi new_grid[row][col] = grid[row][col]; break; case  3: //Tế bào sẽ sống new_grid[row][col] = 1; break; default : //Tế bào sẽ chết new_grid[row][col] = 0; } for  (row = 1; row <= maxrow; row++) for  (col = 1; col <= maxcol; col++) grid[row][col] = new_grid[row][col]; //Cập nhật các tế bào cùng lúc }
Kết luận Sự liên quan giữa CTDL và giải thuật: Cấu trúc dữ liệu cụ thể: chọn giải thuật Giải thuật cụ thể: chọn cấu trúc dữ liệu Cấu trúc dữ liệu trừu tượng: Dữ liệu cụ thể bên trong Các phương thức: interface ra bên ngoài Thích hợp cho phương pháp hướng đối tượng

More Related Content

PPT
Ctdl C05
PPT
Ctdl C02
PPT
Ctdl C04
PDF
Tut6 solution
PDF
Tut5 solution
PPT
Nmlt c11 con_trocoban-
PDF
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
DOCX
Hướng dẫn làm bt về chuỗi.doc
Ctdl C05
Ctdl C02
Ctdl C04
Tut6 solution
Tut5 solution
Nmlt c11 con_trocoban-
Local sakainame 501127 ktl_trình hlmt1 a01 fall 2013 _ modules
Hướng dẫn làm bt về chuỗi.doc

What's hot (19)

PPT
Nmlt c06 ham
PDF
4 matlab ly-thuyet_dohoa_
PPT
Nmlt c07 mang1_chieu
PDF
Ktlt lab full
PPT
Nmlt c08 mang2_chieu
PPT
Nmlt c11 con_trocoban
DOCX
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
PDF
PPT
Nmlt c12 quan_lybonho
PDF
Lttt matlab chuong 3
PDF
Stl string
PDF
Huong dan su dung va debug voi dev c++
PPT
Nmlt c04 cau_lenhdieukienvarenhanh
PPT
Bai 11 kieu mang (tiet 1)
PPT
Nmlt c09 chuoi_kytu
PPT
Thuchanh Ktdk-matlab
PPT
Nmlt c16 ky_thuatlaptrinhdequy
Nmlt c06 ham
4 matlab ly-thuyet_dohoa_
Nmlt c07 mang1_chieu
Ktlt lab full
Nmlt c08 mang2_chieu
Nmlt c11 con_trocoban
B%c3%a1o%20c%c3%a1o%20gi%e1%ba%a3i%20t%c3%a dch%202
Nmlt c12 quan_lybonho
Lttt matlab chuong 3
Stl string
Huong dan su dung va debug voi dev c++
Nmlt c04 cau_lenhdieukienvarenhanh
Bai 11 kieu mang (tiet 1)
Nmlt c09 chuoi_kytu
Thuchanh Ktdk-matlab
Nmlt c16 ky_thuatlaptrinhdequy
Ad

Viewers also liked (20)

PDF
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
PPT
Wireless
PPT
Ctdl C08
PDF
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
PPT
Ctdl C11
PPT
Ctdl C10
PPT
Ctdl C09
PDF
System hacking_Athena
PDF
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
PPT
Ctdl C06
PPT
Ctdl C07
PPT
Gioi Thieu
PPT
Ctdl C03
PPTX
man in the middle
PDF
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
DOCX
tìm hiểu các lỗ hổng bảo mật
PDF
Chương 6 Bảo mật - Giáo trình FPT
PPTX
Man In The Middle - Hacking Illustrated
PDF
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Security Bootcamp 2013 - Giải pháp phát hiện xâm nhập mạng không dây - WIDS -...
Wireless
Ctdl C08
Slide báo cáo cuối kì system hacking-Trần Nguyễn Lộc
Ctdl C11
Ctdl C10
Ctdl C09
System hacking_Athena
Giáo trình cấu trúc dữ liệu và giải thuật của lê minh hoàng
Ctdl C06
Ctdl C07
Gioi Thieu
Ctdl C03
man in the middle
Bài 4: Bảo mật máy chủ, ứng dụng, dữ liệu và mạng - Giáo trình FPT
tìm hiểu các lỗ hổng bảo mật
Chương 6 Bảo mật - Giáo trình FPT
Man In The Middle - Hacking Illustrated
Bài 7: Xác thực và quản lý tài khoản - Giáo trình FPT
Ad

Similar to Ctdl C01 (20)

PDF
Cơ sở dữ liệu và giải thuật Vũ Song Tùng
PDF
BAOCAO.pdf
PDF
Bài giảng------------------ CTDLGT 1.pdf
PPT
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
PDF
Cautrucdulieu full
 
PPT
Chuong9 lop vadoituong
PDF
Day hoc lt (aml)
PPTX
SLIDE CAU TRUC DL_GT.pptx
DOC
Chuong 1
PPT
Bai 1 tong quan ve ctdl&amp;gt
PDF
Phong cach lap trinh c++
PDF
Phong cach lap trinh c++
DOC
Baitap ktlt
DOC
Bài tập CTDL và GT 3
PDF
Dhhh ctdlgt bai giang cau truc du lieu
PPT
5 Array
DOCX
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
PDF
Ch01 2148
PPTX
Stack &amp; queue
DOCX
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Cơ sở dữ liệu và giải thuật Vũ Song Tùng
BAOCAO.pdf
Bài giảng------------------ CTDLGT 1.pdf
Lap trinh huong_doi_tuong_cpp_dhct_lesson07
Cautrucdulieu full
 
Chuong9 lop vadoituong
Day hoc lt (aml)
SLIDE CAU TRUC DL_GT.pptx
Chuong 1
Bai 1 tong quan ve ctdl&amp;gt
Phong cach lap trinh c++
Phong cach lap trinh c++
Baitap ktlt
Bài tập CTDL và GT 3
Dhhh ctdlgt bai giang cau truc du lieu
5 Array
Luận Văn Đề Cương Dùng Cho Ngành Công Nghệ Thông Tin Cấu Trúc Dữ Liệu Và Giả...
Ch01 2148
Stack &amp; queue
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật

Recently uploaded (20)

PPTX
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
TeétOrganicChemistryFromVietNamVeryHardd
PPTX
Bài 6 Du an bua an ket noi yeu thuong.pptx
PPTX
Chương3,Buổi7,8,9,10(Buổi10 kiểmtraL2).pptx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
DOCX
Ôn tập văn học phương đông thi giữa kì ..
PPTX
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
PPTX
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
PDF
SÁNG KIẾN “MỘT SỐ KINH NGHIỆM HƯỚNG DẪN HỌC SINH THAM GIA CUỘC THI KHOA HỌC K...
PDF
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 6 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
DOCX
Ôn tập Văn học phương đông tài liệu tham khảo
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
PDF
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
PPTX
Bai 28 Cau tao chat Thuyet dong hoc phan tu chat khi.pptx
DOCX
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
PDF
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN
Chương 5 của Tâm lí học - Tâm Lí Học Giáo Dục Đạo Đức
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 8 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
TeétOrganicChemistryFromVietNamVeryHardd
Bài 6 Du an bua an ket noi yeu thuong.pptx
Chương3,Buổi7,8,9,10(Buổi10 kiểmtraL2).pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 11 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Ôn tập văn học phương đông thi giữa kì ..
24. 9cqbq2reu57m5igbsz-signature-40d40b8bd600bcde0d0584523c684ec4933c280de74a...
Giáo án Lý Luận Chung về Hành chính Nhà nước cập nhật mới....
SÁNG KIẾN “MỘT SỐ KINH NGHIỆM HƯỚNG DẪN HỌC SINH THAM GIA CUỘC THI KHOA HỌC K...
BÀI TẬP TEST FOR UNIT TIẾNG ANH LỚP 6 GLOBAL SUCCESS CẢ NĂM THEO TỪNG ĐƠN VỊ ...
Ôn tập Văn học phương đông tài liệu tham khảo
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 10 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
CASE LÂM SÀNG MỤN TRỨNG CÁd (final, BS Vân Thanh)-SV tai lop.pptx
CHUYÊN ĐỀ DẠY THÊM HÓA HỌC LỚP 12 CẢ NĂM THEO FORM THI MỚI BGD - CÓ ÔN TẬP + ...
Bai 28 Cau tao chat Thuyet dong hoc phan tu chat khi.pptx
Chủ nghĩa xã hội khoa học - Đề Cương Cuối Kỳ.docx
Dao tao va Phat trien NỘI DUNG ÔN THI CHO SINH VIÊN

Ctdl C01

  • 1. CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Chương 1: Tổng quan
  • 2. Giải bài toán bằng phần mềm 1. Xác định bài toán 2. Thiết kế phần mềm 3. Thiết kế dữ liệu 4. Thiết kế và phân tích giải thuật 5. Lập trình và gỡ rối 6. Kiểm tra phần mềm 7. Bảo trì
  • 3. Lập trình hướng đối tượng (OOP) Chương trình = tập các đối tượng tương tác nhau. Đối tượng (object) = thuộc tính + tác vụ entry đối tượng (object) local data of object local data of operation
  • 4. Kiểu trừu tượng Kiểu trừu tượng (abstract type): định nghĩa interface (tập các entry) Entry Tên method Danh sách tham số hình thức Đặc tả chức năng Chưa có dữ liệu bên trong, chưa dùng được Chỉ dùng để thiết kế ý niệm
  • 5. Hiện thực và sử dụng Class: hiện thực của abstract type Định nghĩa các dữ liệu Định nghĩa các phương thức + hàm phụ trợ (nội bộ) Định nghĩa các phương phức ‘constructor’ và ‘destructor’ nếu cần Đối tượng = một instance của một class Thông điệp (message): dùng tương tác lẫn nhau = lời gọi phương thức của các đối tượng Student aStudent; aStudent.print();
  • 6. Đặc điểm của OOP Tính bao đóng: Che dấu cấu trúc dữ liệu bên trong. Che dấu cách thức hiện thực đối tượng. Kế thừa: Định nghĩa thêm các dữ liệu và phương thức cần thiết từ một class có sẵn. Cho phép overwrite/overload. Cho phép dùng thay thế và khả năng dynamic biding. Bao gộp: Một đối tượng chứa nhiều đối tượng khác.
  • 7. Cấu trúc của đối tượng method method method Internal function Internal function Internal data
  • 8. Khai báo một class trên C++ class Student { private: int StudentID; string StudentName; public: Student(); Student(const Student &) ~Student() void operator=(const Student &) void print(); }; void main() { Student aStudent; sStudent.print(); } constructor copy constructor destructor overload assignment operator gọi phương thức khai báo dữ liệu bên trong phương thức (hành vi) khai báo một đối tượng khai báo một lớp mới
  • 9. Dùng ghi chú làm rõ nghĩa 1. Ghi chú vào đầu mỗi hàm (a) Người lập trình, ngày, bản sao (b) Mục đích của hàm (c) Input, output (d) Các chỉ dẫn đến các tài liệu khác (nếu có) Có thể dùng dạng: Precondition và Postcondition 2. Ghi chú vào mỗi biến, hằng, kiểu 3. Ghi chú vào mỗi phần của chương trình 4. Ghi chú mỗi khi dùng các kỹ thuật đặc biệt
  • 10. Dùng ghi chú làm rõ nghĩa – Ví dụ void Life::update() /* Pre : grid đang chứa một trạng thái của thực thể sống Post : grid sẽ chứa trạng thái tiến hóa mới của thực thể sống này */ { int row, col; int new_grid[maxrow + 2][maxcol + 2]; //Chứa trạng thái mới vào đây for (row = 1; row <= maxrow; row++) for (col = 1; col <= maxcol; col++) switch (neighbor_count(row, col)) { case 2: //Trạng thái của tế bào không đổi new_grid[row][col] = grid[row][col]; break; case 3: //Tế bào sẽ sống new_grid[row][col] = 1; break; default : //Tế bào sẽ chết new_grid[row][col] = 0; } for (row = 1; row <= maxrow; row++) for (col = 1; col <= maxcol; col++) grid[row][col] = new_grid[row][col]; //Cập nhật các tế bào cùng lúc }
  • 11. Stub và driver Stub: Viết các prototype trước Viết dummy code để thử nghiệm Ví dụ: bool user says yes( ) { return(true); } Driver: Viết một chương trình nhỏ để kiểm tra Thư viện cá nhân: Gom các hàm dùng chung thành thư viện
  • 12. Trò chơi Life Luật: Một ma trận các tế bào là sống hay chết Các tế bào lân cận được tính là tám ô xung quanh Quá trình tiến hoá áp dụng cho một trạng thái hiện tại Một tế bào sống là sống ở thế hệ kế nếu có 2 hoặc 3 tế bào sống lân cận và chết trong trường hợp khác Một tế bào đang chết sẽ sống ở thế hệ kế nếu nó có chính xác 3 tế bào sống lân cận, nếu không nó vẫn chết tiếp. Tất cả các tế bào được kiểm chứng cùng một lúc để quyết định trạng thái sống, chết ở thế hệ kế
  • 13. Trò chơi Life – Ví dụ
  • 14. Trò chơi Life – Thiết kế phương thức
  • 15. Trò chơi Life – Thiết kế class const int maxrow = 20 const maxcol = 60; class Life { public: void initialize( ); void print( ); void update( ); private: int grid[maxrow][maxcol]; int neighbor_count(int row, int col); };
  • 16. Trò chơi Life – Đếm số tế bào sống lân cận Mã C++: count = 0 for (i = row − 1; i <= row + 1; i++) for (j = col − 1; j <= col + 1; j++) count += grid[i][j]; count −= grid[row][col]; Sai chỗ nào? Nếu như row hoặc col là ngay các biên của array Các giá trị của các tế bào không là 1 hoặc 0
  • 17. Trò chơi Life – Thay đổi thiết kế Giải pháp: Thêm vào 2 cột và 2 hàng giả có giá trị luôn là 0 Khai báo dữ liệu: grid[maxrow + 2][maxcol + 2]
  • 18. Trò chơi Life – Giải thuật cập nhật Algorithm Update Input : một trạng thái sống Output : trạng thái của thế hệ kế tiếp 1. Khai báo một grid mới 2. Duyệt qua toàn bộ tế bào của trạng thái hiện tại 2.1. Đếm số tế bào sống xung quanh ô hiện tại 2.2. Nếu là 2 thì trạng thái mới chính là trạng thái cũ 2.3. Nếu là 3 thì trạng thái mới là sống 2.4. Ngược lại là chết 3. Cập nhật grid mới vào trong grid cũ End Update
  • 19. Trò chơi Life – Mã C++ cập nhật void Life::update() /* Pre : grid đang chứa một trạng thái của thực thể sống Post : grid sẽ chứa trạng thái tiến hóa mới của thực thể sống này */ { int row, col; int new_grid[maxrow + 2][maxcol + 2]; //Chứa trạng thái mới vào đây for (row = 1; row <= maxrow; row++) for (col = 1; col <= maxcol; col++) switch (neighbor_count(row, col)) { case 2: //Trạng thái của tế bào không đổi new_grid[row][col] = grid[row][col]; break; case 3: //Tế bào sẽ sống new_grid[row][col] = 1; break; default : //Tế bào sẽ chết new_grid[row][col] = 0; } for (row = 1; row <= maxrow; row++) for (col = 1; col <= maxcol; col++) grid[row][col] = new_grid[row][col]; //Cập nhật các tế bào cùng lúc }
  • 20. Kết luận Sự liên quan giữa CTDL và giải thuật: Cấu trúc dữ liệu cụ thể: chọn giải thuật Giải thuật cụ thể: chọn cấu trúc dữ liệu Cấu trúc dữ liệu trừu tượng: Dữ liệu cụ thể bên trong Các phương thức: interface ra bên ngoài Thích hợp cho phương pháp hướng đối tượng