You are on page 1of 8

Lời cảm ơn

Phần 1. Giới thiệu chung


Phần 2. Cơ sở lý thuyết
Phần 3. Phân tích nhiệm vụ
Phần 4. Thiết kế và phương án thực hiện
Phần 5. Kết luận và định hướng phát triển tiếp
Phần 6. Phụ lục
Lời cảm ơn
Ngày này, với sự phát triển nhảy vọt của khoa học công nghệ nói chung của
ngành tin học nói riêng, với những tính năng ưu việt, sự tiện dụng và được ứng dụng
rộng rãi, tin học ngày nay là một phần không thể thiếu được của nhiều ngành trong
công cuộc xây dựng và phát triển xã hội. Hơn thế nữa nó còn đi sâu đời sống của con
người.
Tin học đã thâm nhập khá mạnh mẽ vào Việt Nam. Nhiều lĩnh vực hoạt động từ
lĩnh vực quản lý hành chính, quản lý kinh tế, tự động hóa công nghiệp ... đến các lĩnh vực
giáo dục và đào tạo đều có thay đổi đáng kể nhờ ứng dụng tin học. Máy tính là công cụ
cần thiết đối với con người trong thời đại ngày nay. Hoạt động của một máy tính là xử lý
các thông tin đưa vào theo một chương trình đã được lập sẵn nhằm đưa ra kết quả phục
vụ yêu cầu nào đó của người sử dụng. Việc xây dựng các chương trình cho máy tính là
hết sức cần thiết bởi vì các chương trình là linh hồn của máy tính. Trong xây dựng
chương trình để có một chương trình có hiệu quả cần phải có chuyên gia phân tích bài
toán đưa ra sơ đồ thuật toán và từ đó các lập trình viên tiến hành sinh mã nguồn cho
chương trình. Vấn đề đặt ra liệu có thể xây dựng một phần mềm hỗ trợ người lập trình
xây dựng sơ đồ thuật toán hay không? Với mong muốn đó... em lựa chọn đề tài: “Xây
dựng công cụ tạo sơ đồ khối”
Phần 1. Giới thiệu chung
Ngày này, với sự phát triển nhảy vọt của khoa học công nghệ nói chung của
ngành tin học nói riêng, với những tính năng ưu việt, sự tiện dụng và được ứng dụng
rộng rãi, tin học ngày nay là một phần không thể thiếu được của nhiều ngành trong
công cuộc xây dựng và phát triển xã hội. Hơn thế nữa nó còn đi sâu đời sống của con
người.
Tin học đã thâm nhập khá mạnh mẽ vào Việt Nam. Nhiều lĩnh vực hoạt động từ
lĩnh vực quản lý hành chính, quản lý kinh tế, tự động hóa công nghiệp ... đến các lĩnh vực
giáo dục và đào tạo đều có thay đổi đáng kể nhờ ứng dụng tin học. Máy tính là công cụ
cần thiết đối với con người trong thời đại ngày nay. Hoạt động của một máy tính là xử lý
các thông tin đưa vào theo một chương trình đã được lập sẵn nhằm đưa ra kết quả phục
vụ yêu cầu nào đó của người sử dụng. Việc xây dựng các chương trình cho máy tính là
hết sức cần thiết bởi vì các chương trình là linh hồn của máy tính. Trong xây dựng
chương trình để có một chương trình có hiệu quả cần phải có chuyên gia phân tích bài
toán đưa ra sơ đồ thuật toán và từ đó các lập trình viên tiến hành sinh mã nguồn cho
chương trình. Vấn đề đặt ra liệu có thể xây dựng một phần mềm hỗ trợ người lập trình
xây dựng sơ đồ thuật toán hay không? Với mong muốn đó... em lựa chọn đề tài: “Xây
dựng công cụ tạo sơ đồ khối”
Phần 2. Cơ sở lý thuyết
2.1 Giải thuật

1. Khái niệm giải thuật


Giải thuật là một hệ thống chặt chẽ và rõ ràng các quy tắc nhằm xác định
một dãy các thao tác trên những dữ liệu vào sao cho sau một số hữu hạn bước thực
hiện các thao tác đó ta thu được kết quả của bài toán.
Ví dụ 1: Giả sử có hai bình A và B đựng hai loại chất lỏng khác nhau, chẳng
hạn bình A đựng rượu, bình B đựng nước mắm. Giải thuật để hoán đổi (swap) chất
lỏng đựng trong hai bình đó là:
1 Yêu cầu phải có thêm một bình thứ ba gọi là bình C.
2 Bước 1: Đổ rượu từ bình A sang bình C.
3 Bước 2: Đổ nước mắm từ bình B sang bình A.
4 Bước 3: Đổ rượu từ bình C sang bình B.

Ví dụ 2: Một trong những giải thuật tìm ước chung lớn nhất của hai số a và
b là:
1 Bước 1: Nhập vào hai số a và b.
2 Bước 2: So sánh 2 số a,b chọn số nhỏ nhất gán cho UCLN.
3 Bước 3: Nếu một trong hai số a hoặc b không chia hết cho UCLN
thì thực hiện bước 4, ngược lại (cả a và b đều chia hết cho UCLN) thì
thực hiện bước 5.
4 Bước 4: Giảm UCLN một đơn vị và quay lại bước 3
5 Bước 5: In UCLN - Kết thúc

2 Các đặc trưng của giải thuật


1o Tính kết thúc: Giải thuật phải dừng sau một số hữu hạn bước.
2o Tính xác định: Các thao tác máy tính phải thực hiện được và các máy tính
khác nhau thực hiện cùng một bước của cùng một giải thuật phải cho cùng một
kết quả.
3o Tính phổ dụng: Giải thuật phải "vét' hết các trường hợp và áp dụng cho
một loạt bài toán cùng loại.
4o Tính hiệu quả: Một giải thuật được đánh giá là tốt nếu nó đạt hai tiêu
chuẩn sau:
- Thực hiện nhanh, tốn ít thời gian.
- Tiêu phí ít tài nguyên của máy, chẳng hạn tốn ít bộ nhớ.
Giải thuật tìm UCLN nêu trên đạt tính kết thúc bởi vì qua mỗi lần thực hiện
bước 4 thì UCLN sẽ giảm đi một đơn vị cho nên trong trường hợp xấu nhất thì
UCLN=1, giải thuật phải dừng. Các thao tác trình bày trong các bước, máy tính
đều có thể thực hiện được nên nó có tính xác định. Giải thuật này cũng đạt tính
phổ dụng vì nó được dùng để tìm UCLN cho hai số nguyeên dương a và b bất kỳ.
Tuy nhiên tính hiệu quả của giải thuật có thể chưa cao; cụ thể là thời gian chạy
máy có thể còn tốn nhiều hơn một số giải thuật khác mà chúng ta sẽ có dịp trở lại
trong phần lập trình C.

3 Các phương pháp biểu diễn giải thuật


Để biểu diễn giải thuật, cần phải có một tập hợp các ký hiệu dùng để biểu
diễn, mỗi ký hiệu biểu diễn cho một hành động nào đó. Tập hợp các ký hiệu đó lại
tạo thành ngôn ngữ biểu diễn giải thuật.

3.1 Ngôn ngữ tự nhiên


Ngôn ngữ tự nhiên là ngôn ngữ của chúng ta đang sử dụng, chúng ta có thể
sử dụng ngôn ngữ tự nhiên để mô tả giải thuật giống như các ví dụ ở trên.
Ví dụ: Ta có giải thuật giải phương trình bậc nhất dạng 0=+bax như sau:
1 Bước 1: Nhận giá trị của các tham số a, b
2 Bước 2: Xét giá trị của a xem có bằng 0 hay không? Nếu a=0 thì làm
bước 3, nếu a khác không thì làm bước 4.
1 Bước 3: (a bằng 0) Nếu b bằng 0 thì ta kết luận phương trình vô số
nghiệm, nếu b khác 0 thì ta kết luận phương trình vô nghiệm.
2 Bước 4: ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a

Ưu nhược điểm.
1. Dễ hiểu, dễ làm
2. Phụ thuộc vào “cách hành văn” của người diễn đạt
3. Với những giải thuật phức tạp, cách diễn đạt này trở nên rườm rà
4. …

3.2 Diễn đạt thuật giải bằng giả ngôn ngữ

3.2.1. Giả ngôn ngữ:


1. Dựa trên ngôn ngữ lập trình bậc cao
2. Gần với ngôn ngữ tự nhiên của con người
Ví dụ:
Ngôn ngữ giả Pascal (tựa Pascal) có các ký pháp khá giống với ngôn ngữ lập
trình Pascal, được rút gọn sao cho dễ diễn đạt
3.2.2. Diễn đạt thuật giải bằng giả ngôn ngữ
Giả ngôn ngữ được đưa ra với mục đích diễn đạt các giải thuật sao cho gần
với ngôn ngữ lập trình và ngôn ngữ tự nhiên.

Sử dụng giả ngôn ngữ khiến việc chuyển từ giải thuật sang chương trình dễ
dàng hơn.
Ví dụ: Giải thuật tính tổng n số tự nhiên đầu tiên
Nhập N
i:=0
S:=0
REPEAT
S:=S+i
i:=i+1
UNTIL (i>N)
In S

3.3. Ngôn ngữ Lưu đồ (sơ đồ)


3.3.1. Ngôn ngữ Lưu đồ
Ngôn ngữ sơ đồ (lưu đồ) là một ngôn ngữ đặc biệt dùng để mô tả giải thuật
bằng các sơ đồ hình khối. Mỗi khối qui định một hành động.

Chẳng hạn ta dùng lưu đồ để biểu diễn giải thuật tìm UCLN nêu trên như sau:
3.3.2.Ưu nhược điểm.
Ưu điểm của lưu đồ

a. Lưu đồ là phương pháp tốt để truyền đạt lập luận của giải thuật.

b. Lưu đồ giúp phân tích vấn đề một cách hiệu quả.

c. Lưu đồ đóng vai trò như người hướng dẫn trong giai đoạn phát triển
chương trình.

d. Dễ tìm và sửa lỗi bằng lưu đồ.

e. Lưu đồ trợ giúp đắc lực trong việc bảo trì chương trình

Điểm yếu của lưu đồ


a. Lưu đồ dài có thể trãi ra trên nhiều trang, làm giảm tính dễ đọc.
b. Việc vẽ lưu đồ bằng các công cụ đồ hoạ là việc làm tốn nhiều thời
gian.
c. Thay đổi chỉ một bước nào đó có thể dẫn đến việc vẽ lại toàn bộ lưu
đồ.
d. Lưu đồ biểu diễn giải thuật phức tạp có thể chứa rất nhiều đường kết
nối. Điều này làm giảm tính dễ đọc, tốn thời gian để vẽ và hiểu lập
luận của giải thuật.

3.3.3 Các qui tắc vẽ lưu đồ


American National Standards Institute (ANSI) đề nghị một số qui luật
cần phải tuân theo khi vẽ lưu đồ như sau:

• Toàn bộ lưu đồ nên được biểu diễn bằng ký hiệu chuẩn.


• Lưu đồ nên rõ ràng, chính xác và dễ theo dõi.
• Lưu đồ chỉ nên có một điểm bắt đầu và một điểm kết thúc.
• Các bước trong lưu đồ nên đi từ trên xuống và đi từ trái sang
phải.
• Tất cả dữ liệu nhập phải được liệt kê hết theo một thứ tự hợp
lý.
• Ký hiệu bắt đầu và kết thúc chỉ nên có một đường kết nối duy
nhất.
• Ký hiệu nhập dữ liệu, xử lý, xuất dữ liệu, hiển thị nên có hai
đường kết nối để nối ký hiệu đứng trước và đứng sau chúng.
• Ký hiệu quyết định nên có một đường kết nối với ký hiệu
trước nó và có hai đường kết nối đến hai ký hiệu đứng sau nó.
• Nếu có quá nhiều đường kết nối làm cho lưu đồ trở nên phức
tạp thì nên dùng ký hiệu kết nối trang để giảm số đường kết
nối.

Phần 3. Phân tích mục đích, nhiệm vụ


1. Mục đích:
Trong xây dựng để có một ngôi nhà chắc chắn cần phải có bản thiết kế chính
xác, rõ ràng. Điều này có thể thực hiện thông qua bộ công cụ hỗ trợ vẽ thiết kế AutoCad.
Trong lập trình để có một chương trình đúng với yêu cầu cần phải có một sơ đồ thuật toán
chính xác, rõ ràng. Và mục đích của đề tài này là xây dựng phần mềm hỗ trợ người lập
trình xây dựng sơ đồ thuật toán.
Kết quả của đề tài này là một sản phẩm phần mềm trong đó có đầy đủ các đối
tượng hỗ trợ vẽ sơ đồ khối và có các tính năng cho phép người sử dụng tạo lập sơ đồ khối
một cách thuận tiện, đơn giản, chính xác và rõ ràng.

2.
3. Yêu cầu:
- Để xây dựng được sơ đồ thuật toán chính xác, rõ ràng trước hết phải tìm hiểu
lý thuyết:
+ Thế nào là thuật toán?
+ Có những cách biểu diễn thuật toán nào?
+ Ưu nhược điểm của các cách biểu diễn
- Sau khi tìm hiểu lý thuyết cần phải xác định rõ phương pháp biểu diễn bài
toán bằng sơ đồ khối có ưu điểm gì hơn so với các phương pháp khác. Từ đó chi tiết hóa
các khối gồm những thành phần gì? Cách liên kết các khối như thế nào? Tình tự thực
hiện của sơ đồ ra sao….
- Từ những lý thuyết tìm hiểu ở trên xác định phương pháp xây dựng công cụ
hỗ trợ người lập trình tạo sơ đồ khối.
- Có thể có nhiều ngôn ngữ lập trình có thể giải quyết được bài toán này chẳng
hạn như: Turbo Pascal, Turbo C, Visual Basic, … Mỗi ngôn ngữ đều có ưu nhược điểm vì
vậy cần tìm hiểu kỹ để tìm ra ngôn ngữ thích hợp thể hiện bài toán.
- Sau khi tìm hiểu ngôn ngữ và xác định phương pháp xây dựng tiến hành xây
dựng sản phẩm. Tiến hành kiểm thử chương trình, bắt lỗi và sửa lỗi để có một chương
trình hoàn thiện

Rate