Báo cáo tốt nghiệp Phong cách lập trình - Pdf 47

ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

‫ ﻫ‬Ж ‫ﻫ‬
KHOA TOÁN – CƠ – TIN
_____________

Bài thu hoạch
Tổng kết các bài báo cáo nhóm

Giảng viên: Nguyễn Thị Bích Thủy
Sinh viên : Nguyễn Thị Linh
Lớp
: K52A3 TT Ứng Dụng

Hà Nôi, Năm 2009

1


Danh sách các nhóm:
1. Nguyễn Văn Đức
2. Bách-Phượng-Mai

Phong cách lập trình
Phân tích bài toán theo modul

3. Nghĩa-Hưng-Học

Đặc tả hình thức trong phân tich hệ thống



12. Tình-Thay-Thể

Bảng băm

13. N.T.Linh-N.Đ.Giang-T.K.Anh

Tổng quan kỹ thuật đệ quy

14. Quyền-Phú-Thành

Kỹ thuật sắp xếp trong lập trình

15. Cường-L.T.Trang-B.K.Linh

Bài toán liệt kê

16. K.Dương-N.TrungLâm-Thắng

Thủ thuật sử dụng thư viện đồ họa

17. Hạnh-Đỗ.T.T.Hiền-Lâm

Các phương pháp lập trình

18. Nhân-Hoa-Sơn

Lập trình hướng đối tượng

19. Tuấn-Thiện-Xuất

1 Giai đoạn phân tích bài toán...................................................7
1.1 Phân tích bài toán theo Modul ...........................................................7

2 Giai đoạn thiết kế bài toán.......................................................8
2.1 Các công cụ thiết kế............................................................................8
2.2 Các ngôn ngữ đặc tả.............................................................................8
2.2.1Đặc tả hình thức trong phân tích hệ thống.........................................8

3 Giai đoạn viết mã lệnh...........................................................10
3.1 Tính chất dữ liệu................................................................................10
3.1.1 Cấu trúc dữ liệu và cách sắp xếp (Dịch )...........................................10
3.1.2 Cây nhị phân........................................................................................11

3.2 Thuật toán ..........................................................................................12
3.2.1 Thuật toán đồ thị(dich).......................................................................12
3.2.2 Thuật giải Heuristic và phương pháp tìm kiếm................................13
3.2.3 Thuật toán tìm kiếm trên đồ thị.........................................................14

3.3 Kỹ thuật lập trình...............................................................................16
3.3.1 Quy hoach động...................................................................................16
3.3.2 Kỹ thuật chia để trị (dịch sách)..........................................................17
3.3.3 Kỹ thuật chia để trị.............................................................................17
1

Trên đây là mục lục bản báo cáo, em đã cố phân loại đẻ có cái nhì khái quát về các bài báo cáo của các nhóm

4


3.3.4 Bảng băm.............................................................................................18


Phần 1:Phong cách lập trình
I. Bài báo cáo: Phong cách lập trình

NTH: Nguyễn Văn Đức
a. Tóm tắt báo cáo:
Bài báo cáo có những nội dung chính sau:
 Tên hàm hay tên biến
• Tên hàm: nêu cách đặt tên và yêu cầu của tên( nhất quán...)
• Tên biến: cách đặt tên
 Biểu thức và phát biểu
Để tạo sự tường minh cho biểu thức nên: Canh chỉnh lề, dùng dấu ngoặc để
tránh tối nghĩa, đơn giản cụ thể hóa biểu thức và mang tính tự nhiên
 Tính nhất quán và các đặc ngữ
Tính nhất quán giúp ta xây dựng được các chương trình tốt, sáng sủa. Để tạo
được sự nhất quán : canh chỉnh lề, dùng dấu ngoặc móc, đặc ngữ
 Các số tối nghĩa:
Trong phần này nêu được khái niệm số tối nghĩa, cách đặt tên và các quy tăc
hạn chế dùng số tối nghĩa
 Chú thích.

Khái niêm chú thích:

Quy tắc
 Không chú thích những điều hiển nhiên.
 Chú thích cho hàm và dữ liệu toàn cục.
 Đừng chú thích những đoạn mã nguồn dở mà hãy viết lại nó.
 Đừng phủ nhận mã nguồn.
 Rõ ràng, không gây nhầm lẫn.
 Vì sao phải lo lắng về phong cách lập trình?

Thêm vào đó, đề tài là phong cách lập trình nhưng ngay khi bắt đầu bài báo
cáo đã đề cập luôn đến: hàm, biến, biểu thức…Khiến người đọc, đặc biệt là
người mới học, có thể thắc mắc không hiểu sự liên quan gì của những vấn đề
này tới phong cách lập trình
• Trong nhiều phần, nội dung trong từng tựa đề không thấy được sự liên quan
rõ ràng hay làm sáng tỏ tựa đề, những tiểu ý để lẫn lộn với ý lớn khiến người
đọc không hiểu phần này định làm sáng tỏ ý lớn nào, hoặc hai phần của một ý
phải viết liền thì chia ra như hai ý riêng biệt.
VD: Trong phần, các số tối nghĩa có chia làm ba ý lớn.

Đặt tên cho các số tối nghĩa.

Dùng các hằng số dạng ký tự, không dùng dạng số
nguyên.

Dùng chính ngôn ngữ đó để tính toán kích thước của
đối tượng.
Trong khi đó, hai nội dung cuối cùng làm sáng tỏ cách hạn chế dùng số tối
nghĩa. Vì thế nên cho hai ý này thành ý nhỏ trong ý lớn: các quy tắc hạn chế
dùng số tối nghĩa.
 Bổ sung.
 Bài báo cáo nên được trình bày và đề cập đến nội dung sau:
a) Vì sao phải lo lắng về phong cách lập trình:
 Mục đích của phong cách lập trình
 Lợi ích của việc áp dụng các quy tắc lập trình
b) Các yếu tố của phong cách lập trình tốt:
oTrình bày mã nguồn:
7



NTH:Nguyễn Quang Bách-Dương Thị Phương Mai-Nguyễn Thị Ánh
Phượng
I.1.1.Tóm tắt:nội dung chính:
Trong thực tế, để giải quyết những bài toán lớn, chương trình phức tạp, do đó kỹ
thuật phân tích bài toán theo module ra đời.
 Khái niệm: kĩ thuật thiết kế phần mềm chia chương trình thành những thành phần
riêng biệt (những module) được nối vào chương trình chính thông qua các giao
diện
 Triển khai bài toán theo module:
 Phân tích bài toán xác định các module
 Xác định input và ouput cho từng module
 Tạo mối liên hệ giữa các module
 Liên kết tất cả các module với chương trình chính :
 Đánh giá kỹ thuật
o Ưu điểm
• Hạn chế và dễ phát hiện lỗi
• Giữ được điều khiển trên từng hàm
• Chương trình có cấu trúc dễ viết, dễ bảo dưỡng
8


o Nhược điểm
• Dễ làm mất tính thống nhất trong nhóm
• Mất nhiều thời gian để sửa chữa chuong trình.
o Kỹ thuật liên quan: Chia để trị và lập trình hướng đối tượng(OOP)
I.1.2. Nhận xét:

Về đề tài: Đây là một đề tài khá quen thuộc,
tương đối gần gũi. Nội dung khá cơ bản, không có gì nổi bật, khác lạ.


II.1. Bài báo cáo: Ngôn ngữ đặc tả UML (Unifield Modeling Language )
NTH: Lê Văn Hưng-Nguyễn Tiến Nghĩa-Vữ Thái Học
II.1.1.Tóm tắt: Trong bài báo cáo này ta nắm được
a. Sự ra đời của ngôn ngữ UML:
b. Khái niệm UML
UML là một ngôn ngữ mô hình hoá thống nhất có phần chính bao gồm những
ký hiệu hình học, được các phương pháp hướng đối tượng sử dụng để thể hiện và
miêu tả các thiết kế của một hệ thống. Nó là một ngôn ngữ để đặc tả, trực quan hoá,
9


xây dựng và làm sưu liệu cho nhiều khía cạnh khác nhau của một hệ thống có nồng độ
phần mềm cao. UML có thể được sử dụng làm công cụ giao tiếp giữa người dùng, nhà
phân tích, nhà thiết kế và nhà phát triển phần mềm.
Ngôn ngữ mô hình hoá bao gồm các ký hiệu và một tập các quy tắc:Syntactic (Cú
pháp) Semantic (Ngữ nghĩa) và Pragmatic,
c. Các thành phần chủ yếu của ngôn ngữ UML
 Hướng nhìn (view): Khái niệm và các loại hướng nhìn (Use case, logic...)
 Biểu đồ (diagram): Khái niệm và các loại biểu đồ (Use case, lớp…)
 Phần tử mô hình hóa (model element):
 Cơ chế chung:
d.Khả năng mở Rộng UML và sự phát triển công cụ trợ giúp trong UML
e. Ứng dụng vào quá trình xây dựng phần mềm(4 giai đoạn và thử nghiệm)
II.1.2. Nhận xét:
 Đề tài:
Mặc dù UML đã xuất hiện từ lâu với những ứng dụng hiệu quả của nó đến nghành
công nghệ phần mềm, nhưng không phải ai cũng biết đến, đặc biệt là các bạn sinh
viên, Vì thế, đây là một đề tài khá mới mẻ, lý thú, có sự hấp dẫn cao
 Ưu điêm của bài báo cáo:
• Bài báo cáo được viết khá toàn diện, cơ bản và chi tiết về UML, giúp người đọc

 Cố gắng đem đến tất cả mọi thứ cho tất cả các nhà lập trình
(Tries to be all things to all programmers)
• Bổ sung thêm phần ưu điểm UML:
 Cung cấp cho người sử dụng một ngôn ngữ mô hình hoá trực quan có sẵn
và gợi tả
 Cung cấp các kỹ thuật chuyên môn mở rộng để mở rộng các khái niệm cốt
lõi (core concepts)
 Độc lập với các ngôn ngữ lập trình riêng biệt (particular) và các tiến trình
phát triển
• Những điểm ngoài phạm vi UML
 UML không là một phương thức
 UML không xác định/hướng vào (address) toàn bộ quá trình
 UML không quy định cách tiếp cận vào việc xác định các lớp,các phương
thức và phân tích các mô hình...
 UML không bao gồm bất kỳ quy tắc thiết kế hay cách thức giải quyết vấn
đề nào
<Nguồn Wikimedia>

III. Giai đoạn viết mã lệnh
III.1. Bài báo cáo: Cấu trúc dữ liệu và cách sắp xếp (Dịch )
NTH: Nguyễn Thị Nguyệt, Bùi Thị Sính, Trần Thị Thu Trang
II.1.1. Tóm tắt: Bài dịch này nói về nội dung chính sau
a. Cấu trúc dữ liệu và cách phân loại
Những điểm mấu chốt trong chương :
• Xây dựng các thuật toán qua các cấu trúc dữ liệu(CTDL) để có một cấu trúc
cân đối và một sự thực thi tốt.
• Lựa chọn cần phải kỹ càng, tránh nhầm CTDL cho công việc
• Sự sắp xếp, phân loại nằm ở trung tâm của nhiều thuật toán khác nhau.
• Sự sắp xếp có thể được minh họa chủ yếu bằng các mô hình thiết kế thuật toán.
Kĩ thuật cấu trúc dữ liệu, chia để trị, thuật toán ngẫu nhiên.v,v,v.

II.1.2. Nhận xét
 Ưu điểm:
• Bản dịch tương đối sát nghĩa, nêu được nội dung của phần dịch, biết chọn
nghĩa từ sao để đảm bảo đúng thuật ngữ khoa học. Có thể nhận thấy người
dịch có am hiểu hoặc cố gắng tìm tòi các vấn đề liên quan đến nội dung để
dịch chuẩn.
• Trình bày bản dich và bài báo cáo tương đối tốt, dễ đọc, dễ hiểu nội dung
phần dịch
 Nhược điểm:
• Vân còn một số chỗ dịch lủng củng, không thoát ý, dịch theo kiểu word by
word, nên có thể gây đến nội dung dich không đúng
Vì đây là bản dich nên tôi chỉ khuyên rằng nên dịch nhiều hơn và tìm hiểu về nội
dung dich sẽ có bản dich tốt hơn
Có thể nói đây là bản dịch tốt nhất trong tât cả các nhóm tham gia dich bài

III.2. Bài báo cáo: Cây nhị phân
NTH: Trần Thị Thơm- Trịnh Thị Hiền- Đỗ Thùy Dung
II.2.1. Tóm tắt:
a. Cây
Định nghĩa: Cây là cấu trúc dữ liệu có thứ bậc, lưu trữ 1 tập các phần tử, mỗi
phần tử có 1 giá trị và trừ gốc, nó được trỏ và có thể trỏ đến 1 hay nhiều phần tử
khác.
Một số khái niệm cơ bản về cây: bậc của một node,của một cây,node gốc,node
lá, node nhánh, mức, chiều dài, chiều cao của cây
b. Cây nhị phân( Binary Tree-BT)
Định nghĩa: một dạng của cấu trúc cây mà mọi node trên cây chỉ có tối đa 2
node con.
Một số định nghĩa khác về cây nhị phân: theo DS liên kết, DS tuyến tính
Đặc tính quan trọng của cây nhị phân: hai cây nhị phân tuơng tự và cây nhị
phân tương đương

 Phần ưu, nhược điểm, không rõ ràng, chính xác, nói đúng hơn là nội dung
phần này chưa đi đến ý cần nói, mới chỉ phần rìa của nó
• Trong phần ứng dụng của cây nhị phân, nêu lên cây mã tiền tố ,cây biểu thức
là chưa chính xác, vì hai loại cây này là một loại của cây nhị phân, mà không
đề cập gi đến ứng dụng của cây nhị phân cả.
 Bổ sung

Bổ sung thêm phần mục lục, sặp xếp lại các đề mục:
o
Phân định nghĩ và một số định nghĩa khác về cây nhị phân
nên để gần nhau chứ không để cách quãng bởi các đề mục khác
o
Trong các thao tác trên cây nhị phân: nên viết như sau chứ
không nên để chúng nằm ngang hang nhau(lấy ví dụ phần xoá)
1) Xóa node:
a. Xóa node gốc
b. Xóa node con bên trái
c. Xóa node con bên phải
 Có thể bổ sung thêm các loại cây nhị phân
o Cây mã Huffman
o Cây biêu thức
13


o Cây mã tiền tố.v.v.
 Nên viết lai và bổ sung về ưu và nhược điểm. của cây nhị phân
 Nên viết lại và bổ sung thêm ứng dụng của cây nhị phân.
o
Tìm kiếm.
o

II.3.2.Nhận xét
 Ưu điểm
Về cơ bản, bản dich nói chung là được, thể hiên được nội dung phần dịch
 Nhược điểm
Người dịch mới chỉ đơn thuần dịch theo kiểu word by word, nhiều chỗ cho thấy
chưa hiểu hết nội dung, kiến thức ngoại ngữ chưa đủ: chưa nắm vững từ loại, các
kiểu từ ghép trong câu…, văn phong (lựa chọn nghĩa không hợp) nên nhiều chỗ
dich chưa chính xác, không thoát ý, tối nghĩa.
Trình bày báo cáo chưa đạt phong cách văn bản
14


 Bổ sung
Một lời khuyên dành cho nhóm là nên tìm thêm tài liệu thông tin để hiêu nội
dung phân dich, trau dồi kiến thức để lựa chọn nghĩa từ và biêt loại từ để dịch cho
chuẩn xác.

III.4. Bài báo cáo: Thuật giải Heuristic và phương pháp tìm kiếm
NTH: Đậu Quang Hưng-Đỗ Tiến Đạt-Nguyễn Hữu Hiếu
III.4.1. Tóm tắt
 Các nguyên lý cơ bản của giải thuật Heuristic:
oKhái niệm thuật giải Heuritic: một sự mở rộng khái niệm thuật toán
oXây dựng thuật giải Heuristic cần dựa vào các nguyên lý cơ bản: nguyên lý vét cạn
thông minh, nguyên lý tham lam Greedy, hàm Heuristic, nguyên lý thứ tự
 Các phương pháp tìm kiếm Heuristic.
o Cấu trúc chung của bài toán tìm kiếm: tập hợp trạng thái-nút đồ thị
o Tìm kiếm chiều rộng (BFS)
o Tìm kiếm chiều sâu (DFS)
o Tìm kiếm leo đồi:
• Hàm Heuristic:là một hàm xác định ước lượng chi phí để biến đổi từ trạng thái


Bổ sung thêm nhược điểm của thuật giải Heuristic
Bổ sung thêm so sánh giữa các phương pháp tìm kiếm
Nêu lên mối tương quan giữa các phương pháp tìm kiếm Heuristic: 4
kiểu tìm kiếm chiều rộng (BFS),chiều sâu (DFS), leo đồi và tối ưu (BFS): có
thể xem như là 4 thái cực của không gian liên tục bao gồm các chiến lược
khác nhau.

thuật giải Heuristic và các phương pháp tìm kiếm Heuristic ứng dụng
trong Trí tuệ nhân tạo

III.5. Bài báo cáo: Thuật toán tìm kiếm trên đồ thị
NTH: Phạm Thanh Hiền-Bùi Thị Thư-Hà Thị Thanh Vân
III.5.1. Tóm tắt
 Các khái niêm cơ bản
oĐịnh nghĩa đồ thị: một cấu trúc rời rạc gồm các đỉnh và các cạnh nối các đỉnh
oPhân loại đồ thị:
• Dựa vào số lượng, có hai loại: Đơn đồ thị và Đa đồ thị
• Dựa vào đặc tính, có hai loại: Đồ thị vô hướng và Đồ thị có hướng
oĐường đi ,tính liên thông trong đồ thị
oBiểu diễn đồ thị: có 3 kiểu là ma trận kê,danh sách kề và danh sách cạnh
 Thuật toán tìm kiếm trên đồ thị:
oThuật toán tìm kiếm theo chiều sâu (DFS):cài đặt chương trình dưa vào đệ quy và
không đệ quy-ngăn xếp(tư tưởng và xây dựng thuật giải hai cách này)
oThuật toán tìm kiếm theo chiều rộng (BFS): cài đặt chương trình dưa vào hang
đợi và thuật toán loang(tư tưởng và xây dựng thuật giải hai cách này)
oĐộ phức tạp của DFS và BFS
• Biểu diễn đồ thị bằng danh sách kề, cả hai thuật toán BFS và DFS đều có độ phức
tạp tính toán là O(n+m)= O(max(n,m))
• Biểu diễn đồ thị bằng ma trận kề thì độ phức tạp tính toán là O(n+n 2)= O(n2).

o
Khái niệm: là KTLT chia bài toán lớn-> bài toán nhỏ,lời giải bài toán nhỏ
lưu vào bảng phương án để tổ hợp tìm kết quả ban đâu.
o
Bản chất: Chia cắt bài toán lớn thành nhỏ, ghi nhớ và tổ hợp kết quả
o
Đặc điểm căn bản (2): cấu trúc con tối ưu và bài toán con gối nhau
o
Phương pháp tiếp cận: từ dưới lên (Bottom-up), từ trên xuống (Top-down)
o
Quy trình triển khai(4 bước):
 Bước 1 : Xác định cấu trúc con tối ưu
 Bước 2 : Xác định hàm hồi quy của nghiệm tối ưu.
 Bước 3 : Tính giá trị của nghiệm tối ưu theo Bottom-up hoặc top-down.
 Bước 4 : Xây dựng lại nghiệm tối ưu từ thông tin đã tính toán ở bước 3.
oƯu điểm :
 Giảm thiểu tối đa dung lượng bộ nhớ cần sử dụng.
 Giảm thiểu tối đa độ phức tạp thuật toán và thời gian tính toán
 Khả năng áp dụng cao, cho nhiều bài toán phức tạp.
 Là phương pháp tuyệt vời cho nhiều bài toán tối ưu.

III.6.2 Nhận xét
 Về đề tài: Đây là đề tài khá quen thuộc nhưng khó tiếp cận vói một số
người học
 Ưu điểm
• Là một bài báo cáo khá hoàn chỉnh, đầy đủ và chi tiêt, nổi bật được vấn
đề. Giúp người đọc dễ dàng nắm bắt nội dung
• Trình bày rõ ràng, mạch lạc, tính khoa học cao
• Biết lựa chọn và phân tích ví dụ khá rõ ràng, chi tiết góp phần cung cố nội
dung

thành những vấn đề nhỏ hơn, dễ giải quyết hơn

Chương trình Quy hoạch động
oHàm fibonaci:
oNhững Vấn Đề Về Phân Vùng: một bài toán đặt ra là phân vùng S vào
phạm vi K sao cho cân bằng công việc và giảm thiểu thời gian xử lý
oKhoảng Ăn Khớp Các Ký Tự: Chương trình, dựa vào thuật toán quy hoạch
động, chia để trị, tim ra lỗi chính tả
oDãy Tăng Lớn Nhất
oPhép Đạc Tam Giác:của một đa giac là một tập các tam giác không giao
nhau mà tổng không gian các tam giác này bằng đa giác ban đầu
oHạn chế của chương trình Quy hoạch động

Chia để trị
oSự Mũ Hoá Nhanh
oTìm Kiếm Nhị Phân

III.7.2 Nhận xét
 Ưu điểm
• Về cơ bản, bản dịch tương đối sát nghĩa
• Nội dung phần dịch nói chung là phản ánh được
18


 Nhược điểm
• Còn rất nhiều chỗ dịch chưa được chuẩn, dịch theo kiểu word by word,
tối nghĩa, câu cú lủng củng, ngang tai (mang văn phong nói, sử dụng từ
thừa thãi )
Lấy một ví dụ đơn giản:
Phần nhóm dịch: Để có được công việc thực hiện công bằng và hiệu quả, các


Ưu điểm:
• Trình bày khá thoáng, dễ đọc

Nhược điểm

Nội dung báo cáo còn sơ
sài

Nêu quá nhiều bài toán chỉ
để thể hiện việc áp dụng thuật toán chia để trị

Bổ sung
• Nên bổ sung thêm


19


 nguồn gốc: Ý tương thuật toan có tư Babylonia I, trước công nguyê,
nhưngJohn Mauchly đưa ra sự miêu tả thuật toán năm 1946
 bản chất
 đặc điểm căn bản,
 quy trình triển khai thuật toán
• Thay vì chỉ nêu các bài toán mà không phản ánh được gì, ta có thể sửa bổ
sung như sau:Các nguyên tắc có thể dung chia nhỏ bài toán:
 Nguyên tắc chia đôi: bài toán Min Max, tìm kiếm nhị phân…
 Nguyên tắc phân hoạch: Thuật giải quicksoft …
• Bổ sung thêm phần ưu điểm:
 Là thuật toán tích hợp một cách tự nhiên cho các thi hành trong máy đa xử

Về đề tài: đây là một đề tài khá


mới mẻ, hay, lôi cuốn

20


Ưu điểm:
o Bài trình bày khoa học, dễ đọc, dễ hiểu, nêu bật được vấn đề
o Nội dung khá đầy đủ, cơ bản, chính xác

Nhược điểm
o Chưa phân tích được việc sử dụng kỹ thuật trong bài toán cụ thể để làm rõ
vấn đê
o Chưa đưa ra lý do tại sao có xung đột trong bảng băm.

Bổ sung
oNêu nguyên nhân xảy ra xung đột trên bảng băm: trong thực tế bảng băm có thể
ánh xạ nhiều giá trị từ khóa tới cùng một chỉ số nào đó, tức lưu các dữ liệu đó
trong cùng một thành phần mảng, mà mỗi thành phần mảng chỉ cho phép lưu
một dữ liệu=> xung đột
oBổ sung một bảng băm tốt để ta cố gắng tạo được:
• Tính được dễ dàng và nhanh các địa chỉ ứng với từ khóa
• Đảm bảo ít xảy ra xung đột
oĐưa ra một số bảng băm và cách cài đặt
• Cài đặt bảng băm địa chỉ mở
• Cài đặt bảng băm dây chuyền




Ưu điểm
o Bài trình bày tương đối khoa học, nêu bật được vấn đề
o Nội dung khá đầy đủ, cơ bản, chính xác

Nhược điểm:
o Hơi quá ôm đồm khi trình bày cả đệ quy và khử đệ quy
oCơ chế thực hiện giải thuật đệ quy chưa được phân tích sâu

Bổ sung
o Nên trinh bày một trong hai vân đề đệ quy và khử đệ quy
o Trong phần cơ chế thực hiện giải thuật đệ quy có thể bổ sung:
• Cớ cấu ngăn xếp cho lần gọi hàm :
Khi một hàm gọi một hàm khác, tất cả các trạng thái hàm gọi đang có cần
được khôi phục sau khi hàm được gọi kết thúc. Trạng thái đó gồm có:điểm
quay về, các giá trị trong thanh ghi, các trị trong biến cục bộ và các tham trị
của nó. Như vậy môi hàm cần có một vùng nhớ dành riêng cho nó. Vùng nhớ
này tồn tại suốt thời gian hàm thực hiện cho đến khi kết thúc công việc.
Nhiệm vụ của máy tính là đưa vung nhớ tạm này vào một danh sách có cung
• Cách lưu giá trị hàm trong bộ nhớ, trên các thanh ghi
o Các cách thực hiên của đệ quy
• Thực hiện đa xử lý: thực hiện đồng thời
• Thực hiện đơn xử lý:
o Nên đưa ra trường hợp để phân tích nên hay không nên sử dụng đệ quy
o So sánh giữa đệ quy và không đệ quy


III.11. Bài báo cáo: Kỹ thuật sắp xếp trong lập trình
NTH: Ngô Thế Quyền-Nguyên Việt Phú-Nguyên Trung Thành
III.11.1. Tóm tắt

o Từ trước, các thuật toán sắp xếp được người lập trình biết khá rời rạc, vi
thế có thể thấy bài báo cáo viết khá chi tiết, có tính tổng quát và khái quát
cao.
o Trình bày báo cáo rõ ràng mạch lạc, có tính khoa học cao

Nhược điểm

Bổ sung
Nói chung, bài báo cáo không cần bô sung gi nhiều
o Có thể bổ sung về bài toán sắp xếp: bài toán săp xếp chia làm hai loại
• Sắp xếp trong: săp xếp các phần tử có trong bộ nhớ
• Sắp xếp ngoài: săp xếp các phần tử được lưu ở các thiết bị lưu trữ
ngoài
o Thao tác cơ bản của thuật toán sắp xếp là so sánh và đổi chỗ


III.12. Bài báo cáo: Bài toán liệt kê
NTH: Nguyên Mạnh Cường –Lê Thu trang-Bùi Khánh Linh
III.12.1. Tóm tắt
Trong thực tế, có một số bài toán muốn biết có bao nhiêu đối tượng và tìm ra đối
tượng thỏa mãn điều kiện nào đó -> đếm cấu hình tổ hợp,bài toán liệt kê tổ hợp
Phương pháp liệt kê là phương kế cuối cùng để giải bài toán tổ hợp hiện nay
 Nhắc lại một số kiến thức tổ hợp
 Phương pháp sinh: có thể áp dụng để giải bài toán liệt kê tổ hợp nếu:
• Có thể xác định được một thứ tự trên tập các cấu hình tổ hợp cần liệt kê
• Xây dựng được thuật toán từ cấu hình chưa phải cấu hình cuối,
Liệt kê theo thứ tự từ điển:áp dụng liệt kê tập con k phần tử và một số bt #
 Thuật toán quay lui: dùng để giải bài toán liệt kê các cấu hình;là Phương
pháp giải quyết vấn đề là thử và sửa. Áp dụng cho bài toán hoán vị.v.v
 Kỹ thuật nhánh cận:là kỹ thuật giúp tận dụng những thông tin đã tìm được

III.13. Bài báo cáo: Sử dụng thư viện đồ họa
NTH: NguyênTrung Lâm–Kiều Văn Dương-Nguyễn Xuân Thắng
III.13.1. Tóm tắt
 Đồ thị cơ bản:Một tệp ảnh là một tập hợp của nhiều pixel hay điểm bởi một
màu sắc nhất định nào đó. Mọi hình ảnh đều có dạng hình chữ nhật và có
cạnh dài và ngắn nhất định, được tạo bởi một matrix của pixels.
 Image – formate:có 3 dịnh dạng hình ảnh thường dung là gif , jpeg , png
Dùng hàm imagecreate (int x_size,int y_size) tạo ảnh có kích thươc x và y
 Sử dụng ảnh đã có:tạo một ảnh trống. có thể lấy ảnh từ đĩa qua các hàm sau:
 Ressource imagecreatefromjpeg (string filename)// ảnh dạng jpeg.
 Ressource imagecreatefrompng (string filename)// ảnh dạng png.
 Truy tim kích thước của tệp ảnh: bằng việc sử dụng các hàm sau cho ta
thông tin kích thước ảnh: getimagesize ( ) hoặc imagesx( ) và imagey( )
 Copy và bóp ảnh
 Để phối màu cho ảnh ta có thể: Pha màu, Hoà màu, Thay đổi màu, Tô màu
và Làm màu vô sắc.
 Tạo hình căn bản
 Đường thẳng: imageline(resounrce image,int x1,int y1,int x2,int y2,int col)
 Hình chữ nhật: dùng hàm này làm ảnh có hình chữ nhật
imagerectangle(resource image,int x1,int y1,int x2,int y2,int col)
 Hình góc:hàm imagepoligon(resource image, array points,int num_points
 Tạo hình võng:hàm image(int cx,int cy,iny w,int h,int s,int e,int col)

III.13.2 Nhận xét
Về đề tài: là một đề tài không rõ
ràng cụ thể, không hiểu sử dụng thư viện đồ họa cho cái gì, thuộc lĩnh vực
nào

Ưu điểm
Đề cập được các tác vụ với ảnh và các hàm cần dùng


Hình chữ nhật.

Hình góc.

Tạo hình võng..
8. Vẽ chữ.
o Nêu lên ứng dụng của việc sử dụng thư viên đô họa: trong thiết kế web, lĩnh
vực liên quan đến ảnh:

III.14. Bài báo cáo: Các phương pháp lập trình
NTH: Phạm Hồng Hạnh-Đỗ Thị Thu Hiền-Nguyễn Thị Lâm
III.14.1. Tóm tắt
 Trừu tượng hóa trong lập trình: một phương pháp giúp người lập trình biết
cách tập trung vào những vấn đề.Có hai kiểu trừu tượng hoá quá trình , trừu
tượng hóa dữ liệu
 Lập trình logic:
 Ngôn ngữ Prolog: ngôn ngữ cấp cao, ngôn ngữ miêu tả và không có tính thủ tục
 Cú pháp Prolog( 7 phần): Vị từ ; mệnh đề ; vị từ nhát cắt và fail;khai báo kiểu
dữ liệu do người dùng định nghĩa(bằng từ khóa domains); danh sách(gồm hai
phần:đầu và đuôi);cấu trúc tổng quát của chương trình prolog ; những đặc điểm
cơ bản( so trùng và đệ quy)
 Lập trình hàm:NNLT hàm thiết kế dựa trên các hàm toán học
Hàm toán học: là khái niệm cơ bản trong các ngôn ngữ hàm
Bản chất của ngôn ngữ lập trình hàm:mô phỏng các hàm toán học nhiều nhất cóthể
 Lập trình thủ tục(LTTT):là kiểu lâp trình mà một thủ tục chính được viết để
khởi động tiến trình và các luồng con gọi thực hiện các thủ tục con
Lập trình cấu truc: tập con của LTTT, có 3 cấu trúc: trình tự, quyết định, vòng lặp
25


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status