Đề tài Trình bày một số nguyên lý sáng tạo cơ bản và Áp dụng các nguyên lý sáng tạo vào trong lập trình tin h ọc

Việc ứng dụng phương pháp sáng tạo khoa học vào trong tin học đã góp phần tạo nên sự phát triển vũ bão của ngành công nghệ thông tin ngày nay. Sự phát triển này bắt đầu từ việc cải thiện ngôn ngữ lập trình cũng như phương pháp lập trình, và đó chính là công cụ hữu hiệu giúp cho lập trình viêndễ dàng sử dụng và tạo ra công trình khoa học hay những phần mềm phục vụ trực tiếp nhu cầu thực tiễn của con người.

pdf18 trang | Chia sẻ: lylyngoc | Lượt xem: 2318 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Đề tài Trình bày một số nguyên lý sáng tạo cơ bản và Áp dụng các nguyên lý sáng tạo vào trong lập trình tin h ọc, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC PHƯƠNG PHÁP LUẬN SÁNG TẠO TRONG KHOA HỌC Đề tài: Trình bày một số nguyên lý sáng tạo cơ bản và Áp dụng các nguyên lý sáng tạo vào trong lập trình tin học Giảng viên hướng dẫn : GS.TSKH Hoàng Văn Kiếm Học viên thực hiện : Nguyễn Thị Ngọc Diễm MSHV: CH1101075 Lớp: Cao học K6-2011 TP Hồ Chí Minh, tháng 04 năm 2012 i LỜI NÓI ĐẦU Phương pháp luận sáng tạo và đổi mới là việc ứng dụng khoa học của sự sáng tạo gồm hệ thống các phương pháp và kỹ năng cụ thể giúp nâng cao năng suất và hiệu quả, về lâu dài tiến tới điều khiển tư duy sáng tạo của người sử dụng. Phương pháp luận sáng tạotrong khoa học là kết quả của quá trình khái quát lý thuyết và thực tiễn nghiên cứu khoa học và trở thành công cụ sắc bén để chỉ dẫn các nhà khoa học, các nhà quản lý trong công tác tổ chức, quản lý và thực hành nghiên cứu khoa học một cách sáng tạo. Nắm vững phương pháp luận nghiên cứu khoa học là nắm vững lý thuyết về con đường sáng tạo, giúp người nghiên cứu có cách tiếp cận đúng trong việc thiết kế và thi công công trình nghiên cứu khoa học, tìm chọn phương pháp nghiên cứu hợp lý để thực hiện nhiệm vụ nghiên cứu và đạt được mục đích nghiên cứu. Ngày nay, việc ứng dụng phương pháp sáng tạo để phát triển các hình thức lập trình trong tin học cũng như sự ra đời của nhiều ngôn ngữ lập trình cấp cao dẫn đến một bước tiến lớn về sự phát triển mạnh mẽ của công nghệ thông tin. Mặc dù công nghệ thông tin là ngành học mới được phát triển trong thời gian gần đây, nhưng ảnh hưởng của nó đến đời sống kinh tế xã hội đòi hỏi con người cần nhìn rõ được tầm quan trọng đó. Do vậy việc áp dụng phương pháp sáng tạo trong quá trình giải quyết các vần đề tin học có ý nghĩa vô cùng to lớn. ii MỤC LỤC LỜI NÓI ĐẦU .......................................................................................................... i Chương 1: KHÁI NIỆM KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC ........... 1 1.1. Khoa học........................................................................................................................... 1 1.2. Nghiên cứu khoa học ........................................................................................................ 1 1.2.1. Khái niệm ................................................................................................................. 1 1.2.2. Các bước nghiên cứu ................................................................................................ 1 Chương 2: VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG PHÁP GIẢI QUYẾT ... 2 2.1 Vấn đề khoa học ............................................................................................................... 2 2.2 Phân loại ........................................................................................................................... 2 2.3 Các tình huống vấn đề ..................................................................................................... 2 2.4 Các phương pháp phát hiện vấn đề khoa học ................................................................. 3 Chương 3: BỐN MƯƠI THỦ THUẬT TRONG PHÁT MINH SÁNG CHẾ ...... 3 3.1 Mở đầu ............................................................................................................................. 3 3.2 Bốn mươi thủ thuật .......................................................................................................... 3 3.3 Ví dụ áp dụng một số thủ thuật vào vấn đề tin học ......................................................... 5 3.3.1. Nguyên tắc kết hợp ................................................................................................... 5 3.3.2. Nguyên tắc dự phòng ................................................................................................ 5 3.3.3. Nguyên tắc tác động theo chu kỳ............................................................................... 5 3.3.4. Nguyên tắc sao chép ................................................................................................. 6 3.3.5. Nguyên tắc rẻ thay đắt .............................................................................................. 6 3.3.6. Nguyên tắc thay đổi màu sắc..................................................................................... 7 3.3.7. Nguyên tắc sử dụng trung gian .................................................................................. 7 3.3.8. Nguyên tắc phân nhỏ ................................................................................................ 8 3.3.9. Nguyên tắc sử dụng kết cấu khí và lỏng ................................................................... 8 3.3.10. Nguyên tắc quan hệ phản hồi ................................................................................ 8 3.3.11. Nguyên tắc “chứa trong” ....................................................................................... 9 3.3.12. Nguyên tắc vượt nhanh ......................................................................................... 9 Chương 4 : ÁP DỤNG CÁC NGUYÊN LÝ SÁNG TẠO TRONG LẬP TRÌNH TIN HỌC ............................................................................................................... 10 4.1 Lịch sử của các phương pháp lập trình máy tính ......................................................... 10 4.1.1 Lập trình tuyến tính ............................................................................................. 10 4.1.2 Lập trình cấu trúc................................................................................................. 10 4.1.3 Lập trình hướng đối tượng OOP.......................................................................... 12 4.2 Sự mở rộng ngôn ngữ C++............................................................................................. 14 4.2.1 Lịch sử phát triển của C++ ................................................................................... 14 4.2.2 Các mở rộng của C++ ........................................................................................... 14 Chương 5: KẾT LUẬN ......................................................................................... 15 TÀI LIỆU THAM KHẢO .................................................................................... 15 1 Chương 1: KHÁI NIỆM KHOA HỌC VÀ NGHIÊN CỨU KHOA HỌC 1.1. Khoa học Khoa học là quá trình nghiên cứu nhằm khám phá ra những kiến thức mới, học thuyết mới về tự nhiên và xã hội cái mà có thể thay thế dần những cái cũ, cái không còn phù hợp. Do dó, khoa học bao gồm một hệ thống tri thức về qui luật của vật chất và sự vận động của vật chất, những qui luật của tự nhiên, xã hội, và tư duy. Hệ thống tri thức này hình thành trong lịch sử và không ngừng phát triển trên cơ sở thực tiễn xã hội. Phân biệt ra hai hệ thống tri thức là tri thức kinh nghiệm và tri thức khoa học. 1.2. Nghiên cứu khoa học 1.2.1. Khái niệm Nghiên cứu khoa học là một họat động tìm kiếm, xem xét, điều tra, hoặc thử nghiệm. Dựa trên những số liệu, tài liệu, kiến thức đạt được từ các thí nghiệm NCKH để phát hiện ra những cái mới về bản chất sự vật, về thế giới tự nhiên và xã hội, và để sáng tạo phương pháp và phương tiện kỹ thuật mới cao hơn, giá trị hơn. Con người muốn làm NCKH phải có kiến thức nhất định về lĩnh vực nghiên cứu và cái chính là phải rèn luyện cách làm việc tự lực, có phương pháp từ lúc ngồi trên ghế nhà trường. 1.2.2. Các bước nghiên cứu Gồm 7 bước: 1. Xác lập vấn đề nghiên cứu 2. Giai đoạn chuẩn bị nghiên cứu 3. Lựa chọn nghiên cứu thông tin 4. Xây dựng giả thuyết, lựa chọn phương pháp và lập kế hoạch 5. Hoàn tất nghiên cứu 2 6. Viết báo cáo hoàn tất công trình 7. Giai đoạn kết thúc Chương 2: VẤN ĐỀ KHOA HỌC VÀ CÁC PHƯƠNG PHÁP GIẢI QUYẾT 2.1 Vấn đề khoa học Vấn đề khoa học cũng được gọi là vấn đề nghiên cứu hoặc câu hỏi nghiên cứu là câu hỏi được đặt ra khi người nghiên cứu đứng trước mâu thuẫn giữa tính hạn chế của tri thức khoa học hiện có với yêu cầu phát triển tri thức đó ở trình độ cao hơn. 2.2 Phân loại Nghiên cứu khoa học luôn tồn tại hai vấn đề :  Vấn đề về bản chất sự vật đang tìm kiếm.  Vấn đề về phương pháp nghiên cứu để làm sáng tỏ về lý thuyết và thực tiễn những vấn đề thuộc lớp thứ nhất. 2.3 Các tình huống vấn đề Có vấn đề Không có vấn đề Giả vấn đề Có nghiên cứu Không có nghiên cứu Không có vấn đề Nảy sinh vấn đề khác Không có Nghiên Nghiên cứu theo một hướng khác 3 2.4 Các phương pháp phát hiện vấn đề khoa học Có 6 phương pháp: 1. Tìm những kẻ hở, phát hiện những vấn đề mới 2. Tìm những bất đồng 3. Nghĩ ngược lại quan niệm thông thường 4. Quan sát những vướng mắc trong thực tiễn 5. Lắng nghe lời kêu ca phàn nàn 6. Cảm hứng : những câu hỏi bất chợt xuất hiện khi quan sát sự kiện nào đó. Chương 3: BỐN MƯƠI THỦ THUẬT TRONG PHÁT MINH SÁNG CHẾ 3.1 Mở đầu Trong hầu hết các lĩnh vực trong đời sống, việc giải quyết thành công các vấn đề sẽ đều được rút ra nhiều kinh nghiệm, hay còn gọi là bí quyết, mẹo. Nhờ những kinh nghiệm này mà những vấn đề phát sinh sau trong cùng một lĩnh vực và thậm chí là ngoài lĩnh vực đó có thể được con người giải quyết nhanh hơn và hiệu quả hơn. Những kinh nghiệm, bí quyết hay mẹo như vậy được gọi là thủ thuật sáng tạo. 3.2 Bốn mươi thủ thuật Dựa trên việc phân tích hơn 40,000 bản mô tả sáng chế thuộc những lĩnh vực kỹ thuật khác nhau, G.S. Altshuller đã đúc kết ra bốn mươi thủ thuật sáng tạo cơ bản được trình bày sau: 1. Nguyên lý phân nhỏ 2. Nguyên lý “tách riêng” 3. Nguyên lý phẩm chất cục bộ 4 4. Nguyên lý phản đối xứng 5. Nguyên lý kết hợp 6. Nguyên lý vạn năng 7. Nguyên lý chứa trong 8. Nguyên lý phản trọng lượng 9. Nguyên lý gây ứng suất sơ bộ 10. Nguyên lý thực hiện sơ bộ 11. Nguyên lý dự phòng 12. Nguyên lý đẳng thế 13. Nguyên lý đảo ngược 14. Nguyên lý cầu (tròn) hóa 15. Nguyên lý năng động 16. Nguyên lý tác động bộ phận và dư thừa 17. Nguyên lý bộ xung chiều khác 18. Sự dao động cơ học 19. Nguyên lý tác đông theo chu kỳ 20. Nguyên lý tác đông liên tục hữu hiệu 21. Nguyên lý vượt nhanh 22. Nguyên lý chuyển hại thành thắng 23. Nguyên lý quan hệ phản hồi 24. Nguyên lý sử dụng trung gian 25. Nguyên lý tự phục vụ 26. Nguyên lý sao chép 27. Nguyên lý rẻ thay cho đắt 28. Nguyên lý thay thế sơ đồ cơ học 29. Nguyên lý sử dụng các kết cấu thủy và khí 30. Sử dụng bao mềm dẻo và mềm mỏng 31. Sử dụng vật liệu nhiều lỗ 32. Nguyên lý đổi màu 33. Nguyên lý đồng nhất 34. Nguyên lý loại bỏ và tái sinh từng phần 5 35. Đổi các thông số hóa lý của đối tượng 36. Sử dụng chuyển pha 37. Sử dụng nở nhiệt 38. Sử dụng các chất oxy hóa 39. Sử dụng môi trường trơ 40. Sử dụng vật liệu tổng hợp (composit) 3.3 Ví dụ áp dụng một số thủ thuật vào vấn đề tin học 3.3.1. Nguyên tắc kết hợp Nội dung của nguyên tắc như sau:  Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận  Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận Ví dụ: - Một chương trình giải toán tam giác đựa vào mạng tính toán sẽ kết hợp C# và Maple, trong đó dùng C# để viết giao diện chương trình, Maple để tính toán. 3.3.2. Nguyên tắc dự phòng Nội dung của nguyên tắc như sau:  Bù đắp độ tin cậy không lớn của đối tượng bằng cách chuẩn bị trước các phương tiện báo động, ứng cứu, an toàn. Ví dụ: - Windows sử dụng Recyle Bin để lưu tạm những file đã bị xóa (chỉ Delete) trong một thời gian, để người dùng có thể khôi phục lại khi cần thiết. 3.3.3. Nguyên tắc tác động theo chu kỳ Nội dung của nguyên tắc như sau:  Chuyển tác động liên tục thành tác động theo chu kỳ(xung)  Nếu đã có tác động theo chu kỳ,hãy thay đổi chu kỳ. 6  Sử dụng khoảng thời gian giữa các xung để thực hiện tác động khác Ví dụ: - Các phần mềm trên máy tính đa số đều sử dụng nguyên tắc này. Có thể lấy một số phần mềm ứng dụng phổ biến như các chương trình virus đều có thể lập lình cho quá trình update dữ liệu. Hay ngay cả trong window cũng có quá trình update theo chu kỳ. 3.3.4. Nguyên tắc sao chép Nội dung của nguyên tắc như sau:  Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện lợi hoặc dễ vở, sử dụng bản sao  Thay thế đối tượng hoặc hệ các đối tượng bằng bản sao quang học (ảnh, hình vẽ) với các tỷ lệ phóng to, thu nhỏ cần thiết  Nếu không thể sử dụng bản sao quang học ở vùng khả kiến(vùng ánh sáng nhìn thấy được bằng mắt thường),chuyển sang sử dụng bản sao hồng ngoại hoặc tử ngoại Ví dụ: - Trong hệ điều hành Window,ta thấy các đối tượng đều có tác vụ copy.Tác vụ này có chức năng như tạo ra một bản sao cho đối tượng giống y hệt đối tượng tạo ra nó. Vì thế khi đối tượng gốc bị mất thì luôn sẵn có đối tượng copy thay thế.Trường hợp này vừa là thể hiện của nguyên tắc sao chép,vừa là thể hiện của nguyên tắc dự phòng. 3.3.5. Nguyên tắc rẻ thay đắt Nội dung của nguyên tắc này như sau:  Thay đổi đối tượng đắt tiền bằng các đối tượng rẻ có phẩm chất kém hơn Ví dụ: - Sử dụng Cloud Computing thay vì dùng các phần mềm có bản quyền rất tốn kém. 7 - Các chương trình được xây dựng bằng các thành phần, ngôn ngữ lập trình miễn phí như Apache Server, MySQL, Squid, Java... chạy trên hệ điều hành mã nguồn mở Redhat. Các thành phần này tuy khó sử dụng nhưng đều là các thành phần được cung cấp miển phí, giúp tiết kiệm cho doanh nghiệp một khoảng lớn chi phí đầu tư so với sử dụng các thành phần, phần mềm, ngôn ngữ lập trình có bản quyền. 3.3.6. Nguyên tắc thay đổi màu sắc Nội dung của nguyên tắc này như sau:  Thay đổi màu sắc của đối tượng hay môi trường bên ngoài  Thay đổi độ trong suốt của đối tượng hay môi trường bên ngoài  Để có thể quan sát được những đối tượng hoặc những quá trình, hãy sử dụng các chất phụ gia màu, huỳnh quang  Nếu các chất phụ gia đó đã được sử dụng, hãy dùng các nguyên tử đánh dấu  Sử dụng các hình vẽ, ký hiệu thích hợp Ví dụ: - Màu sắc có ý nghĩa rất lớn trong việc thu hút sự chú ý của con người. Biết được đều này các biên bản của hệ điều hành Window càng cải thiện hơn về giao diện người dùng. 3.3.7. Nguyên tắc sử dụng trung gian Nội dung của nguyên tắc này như sau:  Sử dụng đối tượng trung gian, chuyển tiếp để mang, truyền tác động  Tạm thời gắn đối tượng cho đối tượng cho trước với các đối tượng khác, dễ tách rời sau đó Ví dụ: - Các máy tình trong một mạng LAN được kết nối với nhau thông qua các sợi dây cáp mạng - Việc truyền hình ảnh từ máy tính lên màn hình ti vi được thực hiện bởi việc kết nới dây cáp đầu HDMI. Nhưng với những máy tính 8 không có cổng HDMI, từ ta sử dụng 2 dây cáp trung gian đầu VGA- DVI nối với đây cáp đầu DVI-HDMI, sau đó nối vào dây đầu HDMI. 3.3.8. Nguyên tắc phân nhỏ Nội dung của nguyên tắc này như sau:  Chia đối tượng thành các phần độc lập  Làm đối tượng trở nên tháo lắp được  Tăng mức độ phân nhỏ của đối tượng Ví dụ: - Phần mềm download Internet Download Manger là một trình download có tốc độ khá cao. Các file download sẽ được chia nhỏ ra từng phần và tiến hành download song song cùng một lúc. 3.3.9. Nguyên tắc sử dụng kết cấu khí và lỏng Nội dung của nguyên tắc này như sau:  Thay cho các phần đối tượng ở thể rắn,sử dụng các chất khí và lỏng: các kết cấu nạp khí, nạp chất lỏng, đệm không khí, thủy tĩnh, thủy phản lực. Ví dụ: - Trước kia người ta thường sử dụng màn hình gương.Ngày nay người ta đã sản xuất được loại màn hình tinh thể lỏng. Màn hình tinh thể lỏng (liquid crystal display, LCD) là loại thiết bị hiển thị cấu tạo bởi các tế bào (các điểm ảnh) chứa tinh thể lỏng có khả năng thay đổi tính phân cực của ánh sáng và do đó thay đổi cường độ ánh sáng truyền qua khi kết hợp với các kính lọc phân cực. Chúng có ưu điểm là phẳng, cho hình ảnh sáng, chân thật và tiết kiệm năng lượng. 3.3.10. Nguyên tắc quan hệ phản hồi Nội dung của nguyên tắc này như sau:  Thiết lập quan hệ phản hồi  Nếu đã có quan hệ phản hồi, hãy thay đổi (hoàn thiện) nó 9 Ví dụ: - Khi đăng ký làm thành viên của một trang web, người dùng bắt buộc phải xác nhận lại thông tin bằng cách nhấp vào đường dẫn được gởi trực tiếp đến mail của người dùng từ trang web đó. Sau khi đã xác nhận thì người dùng có truy cập như là thành viên chính thức vào trang web đó. - Hệ điều hành giao tiếp với ngừơi sử dụng nên Windows phải có khả năng phản hồi lại yêu cầu của người dùng thông qua giao diện đồ hoạ thân thiện với người dùng và dể sự dụng. Sau khi phản hồi Windows chở hành động tiếp theo của người dùng và dựa vào đó để thực thi các process tiếp theo. Như vậy quá trình xử lý tiệp tục cho đến khi mọi nhu cầu của người sử dụng được đáp ứng. 3.3.11. Nguyên tắc “chứa trong” Nội dung của nguyên tắc này như sau:  Một đối tượng chứa bên trong nó một đối tượng khác và đối tượng đó lại chứa đối tượng thứ ba…  Một đối tượng chuyển động xuyên suốt bên trong đối tượng khác Ví dụ: - Một bộ vi xử lý chứa trong nó hai lõi khác nhau có thể hoạt động độc lập xử lý các tiền trình khác nhau hay cùng xử lý một tiến trình. Đây cũng là đặt điểm nổi bật nhất của công nghệ bộ vi xử lý đa nhân, xử lý song song các tiến trình hoặc đơn xử lý như vậy giúp tăng hiệu quả của bộ vi xử lý 3.3.12. Nguyên tắc vượt nhanh Nội dung của nguyên tắc này như sau:  Vượt qua giai đoạn có hai hoặc nguy hiểm với vận tốc lớn  Vượt nhanh để có được hiệu ứng cần thiết Ví dụ: 10 - Khi mà chúng ta lựa chọn định dạng ổ đĩa, thì có một sự lựa chọn là Quick format giúp chúng ta định dạng nhanh hơn. - Phần mềm diệt virus nổi tiếng hiện nay thông thường có hai cơ chế Quick Scan hay Full Scan. Chương 4 : ÁP DỤNG CÁC NGUYÊN LÝ SÁNG TẠO TRONG LẬP TRÌNH TIN HỌC 4.1 Lịch sử của các phương pháp lập trình máy tính 4.1.1 Lập trình tuyến tính Máy tính đầu tiên được lập trình bằng mã nhị phân, sử dụng các công tắc cơ khí để nạp chương trình. Sau này, cùng với sự phát triển của máy tính các thiết bị lưu trữ có dung lượng lớn nên các ngôn ngữ lập trình cấp cao đầu tiên đã được ra đời và đưa vào sử dụng. Ngôn ngữ lập trình này sử dụng các câu lệnh được viết bằng tiếng Anh và sau đó được biên dịch ra ngôn ngữ máy. Các ngôn ngữ lập trình cấp cao đầu tiên dùng để thiết kế chương trình tính toán tương đối đơn giản nên khối lượng chương trình tương đối nhỏ. Tuy nhiên, khi khả năng của máy tính tăng lên, và yêu cầu khả năng triển khai chương trình phức tạp hơn thì ngôn ngữ này không còn thích hợp nữa. Đơn giản vì đây là lập trình tuyến tính, nên chương trình khi thực hiện sẽ chạy từ trên xuống, vì vậy nếu như ta muốn sử dụng lại một số dòng lệnh đã được viết ở trên, ta chỉ có một cách duy nhất là chép lặp lại chúng. Việc này làm cho khối lượng chương trình lớn lên, dài dòng và logic của chương trình khó hiểu hơn. Thêm vào đó dữ liệu của chương trình đều là dữ liệu toàn cục, nghĩa là chúng có thể bị thay đổi bắt cứ ở chỗ nào của chương trình. Dẫn đến việc kiểm soát chương trình trở nên phức tạp và mất thời gian. 4.1.2 Lập trình cấu trúc 11 Do nhiều hạn chế của ngôn ngữ lập tình tuyến tính như đã nêu trên, ngôn ngữ lập trình có cấu trúc đã ra đời vào những năm 1960- 1970. Các chương trình có cấu trúc được tổ chức theo các công việc mà chúng thực hiện. Một số ngôn ngữ lập trình cấu trúc như Pascal, C, Foxpro. Sự phát triển này đã vận dụng một số phương pháp trong sáng tạo như sau:  Nguyên tắc phân nhỏ Về bản chất, chương trình chia nhỏ thành các chương trình con riêng lẽ (còn được gọi là hàm hay thủ tục). Mỗi hàm này sẽ thực hiện các công việc rời rạc trong một quá trình phức tạp hơn. Việc phân nhỏ này sẽ làm cho chương trình dễ quản lý hơn.  Nguyên tắc tách khỏi Mục tiêu của lập trình có cấu trúc là làm sao cho việc triển khao các phần mềm dễ dàng hơn đối với các lập trình viên mà vẫn cải thiện được tính tin cậy và dễ bảo quản chương trình. Một chương trình có cấu trúc hình thành bằng cách tách các chức năng cơ bản của chương trình thành các mảnh nhỏ mà sau đó trở thành hàm.  Nguyên tắc cục bộ Dữ liệu trong từng hàm là cục bộ có phạm vi chỉ trong hàm đó, nên có hàm đó sử dụng và không phụ thuộc vào các hàm khác. Do vậy việc tìm kiếm và thay đổi trở nên dễ dàng và dễ kiểm soát hơn. Việc này cũng làm giảm khả năng ảnh hưởng của hàm này đến hàm khác.  Nguyên tắc tự phục vụ Mỗi hàm làm một nhiệm vụ riêng, nên việc khai báo biến trong hàm chỉ sẽ phục vụ cho riêng hàm đó, và bên ngoài hàm không thể truy xuất đến được.  Nguyên tắc kết hợp Thông tin được chuyển giao giữ các hàm thông qua các biến tham số. Như vậy hàm cũng giống như là một chương trình con được đặt chung với nhau để xây dựng nên một ứng dụng.  Nguyên tắc trung gian 12 Trong lập trình cấu trúc, chương trình được chia ra nhiều hàm, và mỗi hàm lại cố thể sử dụng lại kết quả của hàm khác để tích toán trong thân hàm đó.  Nguyên tắc linh động Trong một chương trình tin học, một hàm có thể được sử dụng nhiều lần. Với lập trình có cấu trúc, thay vì ta phải chép lại đoạn mã của hàm như lập trình tuyến tính, ở đây ta chỉ cần gọi lại tên hàm. Ngày nay, lập trình có cấu trúc được đều được áp dụng rộng rãi trong mọi ngôn ngữ lập trình. Cách tổ chức tốt hơn này có khả năng quản lý logic của cấu trúc chương trình, làm cho việc triển khai và bảo dưỡng chương trình nhanh hơn, hữu hiệu và hiệu quả hơn. Bên cạnh những cải thiện được nên trên, lập trình cấu trúc còn tồn tại nhiều nhược điểm như sau:  Khi độ phức tạp của chương trình tăng lên, sự phụ thuộc của nó vào các kiểu dữ liệu cơ bản mà nó xử lý cũng tăng theo. Vấn đề trở nên rõ ràng là cấu trúc dữ liệu trong chương trình qua trọng chằng kém các phép toán thực hiện trên chúng. Điều này càng trở nên phức tạp hơn khi cấu trúc chương trình tăng, các kiểu dữ liệu được xử lý trong nhiều hàm khác nhau bên trong một chương trình có cấu trúc. Do vậy các dữ liệu này cần phải được thay đổi ở mọi nơi có thao tác tác động trên chúng. Đây là một công việc hoàn toàn tốn thời gian và kém hiệu quả đối với một chương trình có hàng ngàn dòng lệnh.  Khi làm việc theo nhóm, việc sửa đổi một dữ liệu mà một lập trình viên tạo ra sẽ làm ảnh hưởng đến công việc của tất cả các thành viên còn lại. 4.1.3 Lập trình hướng đối tượng OOP Lập trình hướng đối tượng được xây dựng trên nền tảng của khái niệm lập trình có cấu trúc và sự trừu tượng hóa dữ liệu. Sự thay đổi căn bản của lập trình OOP là chương trình được thiết kế xoay quanh dữ liệu mà chúng ta có thể làm việc trên đó hơn là theo bản thân chức năng của chương trình. Điều này hoàn toàn tự nhiên khi chúng ta hiểu rằng mục tiêu của chương trình là xử lý dữ liệu. 13 Lập trình hướng đối tượng liên kết dữ liệu với thao tác. Một số ngôn ngữ lập trình hướng đối tượng như Eiffel, Clos, Loop, Flavors, Object Pascal, Object C, C++, Delphi, Java. Sự phát triển này đã vận dụng một số phương pháp trong sáng tạo như sau:  Nguyên tắc đồng nhất: Thể hiện ở tính đóng gói: đây là cơ chế ràng buộc dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất, tránh được các tác động bất ngờ từ bên ngoài. Thể thống nhất này gọi là đối tượng.  Nguyên tắc chứa trong: - Thể hiện ở tính đóng gói: Đối tượng là sự kết hợp dữ liệu và thao tác trên dữ liệu đó thành một thể thống nhất.Dữ liệu thể hiện tình trạng hay thuộc tính của đối tương, hành vi hay phương thức để thực hiện một số nhiệm vụ nhất định, nhằm thông báo hay làm thay đổi thuộc tính của chính nó. - Thể hiện qua tính kế thừa trong OOP: tính kế thừa là sự cho phép định nghĩa các lớp mới từ các lớp đã có (tính kế thừa này còn thuộc nguyên tắc sao chép)  Nguyên tắc vạn năng: - Thể hiện qua tính đa hình trong ngôn ngữ lập trình OOP: tính đa hìnhlà khả năng cư xử hoàn toàn khác nhau của những xử lý có dạng gần như tương tự nhau. Tính đa hình thể hiện ở hai dạng: + Hàm nạp chồng (overloading function): là những hàm có cùng tên, chỉ khác nhau ở danh sách tham số nhưng xử lý khác nhau. + Liên kết động (dynamic binding): là việc gọi thực hiện phương thức của đối tượng lớp kế thừa thông qua interface của lớp cơ sở. Phương thức thật sự được gọi thực hiện phụ thuộc vào đối tượng của lớp kế thừa nào đang được bao bọc bởi interface của lớp cơ sở. - Hàm Template: khi có nhiều hàm khác nhau có cách thực hiện giống nhau trên các kiểu dữ liệu khác nhau thì ta chỉ cần viết thành một hàm (gọi là hàm template) trên kiểu dữ liệu tổng quát. 14  Nguyên tắc thay thế sơ đồ cơ học: Lập trình OOP gọi các phương thức thay vì gọi hàm hoặc thủ tục như phương pháp lập trình cấu trúc. 4.2 Sự mở rộng ngôn ngữ C++ 4.2.1 Lịch sử phát triển của C++ Vào những năm 1980, người dùng biết đến C++ với tên gọi “C with Classes” được mô tả trong bài báo của Bjarne Stroustrup với nhan đề “Classes: An Abstract Data Type Facility for the C Language” và “Adding Classes to C: An Exercise in Language Evolution”. Trong công trình này tác giả đã đề xuất khái niệm lớp, bổ sung việc kiểm tra kiểu tham số của hàm, các chuyển đổi kiểu và một số mở rộng khác vào ngôn ngữ C. Bjarne Stroustrup nghiên cứu mở rộng ngôn ngữ C nhằm đạt đến một ngôn ngữ mô phỏng (simulation laguage) với những tính năng hướng đối tượng. Trong năm 1983, 1984, ngôn ngữ “C with classes” được thiết kế lại, mở rộng hơn rồi một trình biên dịch ra đời. Và chính từ đó, xuất hiện C++. Bjarne Stroustrup mô tả ngôn ngữ C++ lần đầu tiên trong bài báo có nhan đề “Data Astraction in C”. Sau một vài hiệu chỉnh, C++ được công bố rộng rãi trong quyển “The C++ Programming Languge” của Bjarne Stroustrup xuất hiện đánh dấu sự hiện diện thực sự của C++, người lập trình chuyên nghiệp từ đây đã có một ngôn ngữ đủ mạnh cho các dự án thực tiễn của mình. 4.2.2 Các mở rộng của C++ Về bản chất, C++ giống như C nhưng bổ sung thêm một số mở rộng quan trọng, đặc biệt là ý tưởng về đối tượng. Sự phát triển này đã vận dụng một số phương pháp trong sáng tạo như sau:  Nguyên tắc đồng nhất Một số kiểu dữ liệu trong ngôn ngữ C++ như struct, uinon định định nghĩa cách khai báo mới, nhưng để tương thích với C, C++ vẫn chấp nhận cú pháp cũ.  Nguyên tắc phân hủy hoặc tái sinh từng phần 15 - Ngôn ngữ C dùng hàm malloc để khai báo vùng nhớ và dùng free để giải phóng vùng nhớ đó, nhưng C++ dùng toán tử new để khai báo và delete để giải phóng vùng nhớ. Cách khai báo mới trong C++ đơn giản và rõ ràng và để sử dụng hơn so với trong C. - C++ dùng biến nhập xuất cout, cin kết hợp với toán tử trích <<, hay toán tử chèn >>thay vì dùng hàm prinf, scanf như trong C  Nguyên tắc linh động: Trong C++, ta có thể khai báo các biến một cách linh hoạt ở bất kỳ vị trí nào trong chương trình trước khi dùng đến nó, nhưng trong C đòi hỏi các biến sử dụng trong một phạm vi nào đó thì phải được khai báo ngay đầu phạm vi đó. Chương 5: KẾT LUẬN Việc ứng dụng phương pháp sáng tạo khoa học vào trong tin học đã góp phần tạo nên sự phát triển vũ bão của ngành công nghệ thông tin ngày nay. Sự phát triển này bắt đầu từ việc cải thiện ngôn ngữ lập trình cũng như phương pháp lập trình, và đó chính là công cụ hữu hiệu giúp cho lập trình viêndễ dàng sử dụng và tạo ra công trình khoa học hay những phần mềm phục vụ trực tiếp nhu cầu thực tiễn của con người. TÀI LIỆU THAM KHẢO [1] Hoàng Văn Kiếm, Hoàng kiếm, Slide Phương pháp nghiên cứu khoa học trong tin học [2] Phan Dũng, Các thủ thuật (nguyên lý) sáng tạo cơ bản phần một, Trung tâm sáng tạo khoa học – kỹ thuật (TSK) TpHCM,2007 [3] Vũ Thanh Hiền, Giáo trình lập trình hướng đối tượng , Nhà xuất bản Đại học Quốc Gia Tp.HCM 2006

Các file đính kèm theo tài liệu này:

  • pdf04_2012_pplstk075_ngocdiem_7747.pdf