Xem mẫu

  1. 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”
  2. 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”
  3. 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à:  À Yêu cầu phải có thêm một bình thứ ba gọi là bình C.  À Bước 1: Đổ rượu từ bình A sang bình C.  À Bước 2: Đổ nước mắm từ bình B sang bình A.  À 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à:  À Bước 1: Nhập vào hai số a và b.  À Bước 2: So sánh 2 số a,b chọn số nhỏ nhất gán cho UCLN.  À 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.  À Bước 4: Giảm UCLN một đơn vị và quay lại bước 3  À Bước 5: In UCLN ­ Kết thúc  2 Các đặc trưng của giải thuật  o  Tính kết thúc: Giải thuật phải dừng sau một số hữu hạn bước.  o  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ả.  o  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.  o  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ớ.
  4. 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:  À Bước 1: Nhận giá trị của các tham số a, b  À 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.  À 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.  À 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ữ
  5. 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:
  6. 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 đồ
  7. 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?
  8. + 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
nguon tai.lieu . vn