Bài giảng Cơ sở lập trình - Chương 1: Tổng quan về giải thuật

ppt 26 trang phuongnguyen 3001
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Cơ sở lập trình - Chương 1: Tổng quan về giải thuật", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_co_so_lap_trinh_chuong_1_tong_quan_ve_giai_thuat.ppt

Nội dung text: Bài giảng Cơ sở lập trình - Chương 1: Tổng quan về giải thuật

  1. * (6 tiết) 1
  2. *LẬP TRÌNH ? Ngôn ngữ Lập trình Giải thuật 2
  3. *CÁC ĐẶC ĐIỂM CẦN CÓ CỦA CHƯƠNG TRÌNH *Đúng đắn, chính xác (correctness). *Chắc chắn (robustness). *Thân thiện (user friendliness). *Khả năng thích nghi (adapability): Chương trình có khả năng để phát triển tiến hóa theo yêu cầu. *Tính tái sử dụng (reuseability): Chương trình có thể dùng để làm một phần trong một chương trình lớn khác. 3
  4. *CÁC ĐẶC ĐIỂM CẦN CÓ CỦA CHƯƠNG TRÌNH (tt) *Tính hiệu quả (efficiency). *Tính khả chuyển (porability): Khả năng chuyển đổi giữa các môi trường. *Tính an toàn (security). *Tính dừng (halt). 4
  5. *CÁC NGÔN NGỮ LẬP TRÌNH * Fortran * C++ * Pascal * C# * Java * F# * C * VB.Net * . 5
  6. *CÁC MÔI TRƯỜNG HỖ TRỢ LẬP TRÌNH * Borland C++ * Microsoft Visual Basic * Microsoft Visual C++ * Jbuider * Eclipse SDK * Visual .Net * 6
  7. *XÁC ĐỊNH BÀI TOÁN Input -> Process -> Output *Giải quyết vấn đề gì? *Giả thiết, thông tin được cung cấp *Đạt được những yêu cầu nào? 7
  8. *XÁC ĐỊNH CẤU TRÚC DỮ LIỆU *Phải biểu diễn đầy đủ được thông tin nhập và xuất của bài toán *Phù hợp với giải thuật được chọn *Cài đặt được trên ngôn ngữ lập trình cụ thể 8
  9. *TÌM GIẢI THUẬT *Giải thuật là một tập hợp hữu hạn của các chỉ thị hay phương cách được định nghĩa rõ ràng cho việc hoàn tất một số sự việc từ một trạng thái ban đầu cho trước; khi các chỉ thị này được áp dụng triệt để thì sẽ dẫn đến kết quả sau cùng như đã dự đoán. 9
  10. *TÍNH CHẤT CỦA GIẢI THUẬT *Tính chính xác: để đảm bảo kết quả tính toán hay các thao tác mà máy tính thực hiện được là chính xác. *Tính rõ ràng: giải thuật phải được thể hiện bằng các câu lệnh minh bạch; các câu lệnh được sắp xếp theo thứ tự nhất định. *Tính khách quan: Một giải thuật dù được viết bởi nhiều người trên nhiều máy tính vẫn phải cho kết quả như nhau. *Tính phổ dụng: giải thuật không chỉ áp dụng cho một bài toán nhất định mà có thể áp dụng cho một lớp các bài toán có đầu vào tương tự nhau. *Tính kết thúc: giải thuật phải gồm một số hữu hạn các bước tính toán. 10
  11. *CÁC LOẠI GIẢI THUẬT *Tìm kiếm *Xữ lý file. *Sắp xếp. *Đồ họa. *Đệ quy. *Đồ thị. *Xữ lý chuỗi ký tự. *V. v 11
  12. *CÁC PHƯƠNG PHÁP CHÍNH BIỂU DIỄN GIẢI THUẬT •Mã tự nhiên •Pseudocode (mã giả) •Flowchart (lưu đồ) Khi thiết kế giải thuật phải mô tả rõ: •Input - Đầu vào •Output - Đầu ra (kết quả) •Process - Mô tả giải thuật 12
  13. Ví dụ: Tìm ước số chung lớn nhất của 2 số nguyên dương a và b *Đầu vào: 2 số nguyên dương a và b *Đầu ra: ước số chung lớn nhất của a và b *Giải thuật: Cách 1: Dùng mã tự nhiên Bước 1: Nếu a = b thì kết luận a là ước số chung lớn nhất, kết thúc Bước 2: Nếu a > b thì a = a – b; Ngược lại thì b = b – a; Bước 3: Quay trở lại Bước 1 13
  14. Cách 2: Dùng mã giả (Pseudocode) WHILE a ≠ b DO IF a>b THEN a=a-b ELSE b=b-a ENDIF ENDWHILE 14
  15. Cách 3: Dùng lưu đồ (flowchart) 15
  16. *MÔ TẢ GIẢI THUẬT BẰNG PSEUDOCODE *Dễ hiểu, không chi tiết đến các kỹ thuật lập trình *Ở cấp độ hết sức tổng quát: gần ngôn ngữ tự nhiên *Hoặc rất chi tiết: như dùng ngôn ngữ tựa Pascal, C++, *Các từ khóa *IF THEN ENDIF *IF THEN ELSE ENDIF *WHILE DO ENDWHILE *DO UNTIL *WRITE 16 *RETURN
  17. *MÔ TẢ GIẢI THUẬT BẰNG LƯU ĐỒ (FLOWCHART) *Lưu đô ̀ thuâṭ toań la ̀ công cu ̣ dung̀ đê ̉ biêủ diêñ thuâṭ toań , viêc̣ mô ta ̉ nhâp̣ (input), dữ liêụ xuât́ (output) va ̀ luông̀ xữ ly ́ thông qua cać ky ́ hiêụ hinh̀ hoc̣ *Phương pháp duyệt lưu đồ *Duyêṭ từ trên xuônǵ *Duyêṭ từ traí sang phaỉ 17
  18. *CÁC KÝ HIỆU FLOWCHART Bắt đầu/ kết thúc Điều Rẽ nhánh kiện Giá trị trả về Luồng xử lý Điểm nối Khối xử lý Nhập/ Xuất 18
  19. *CÁC VÍ DỤ 1.Cho sô ́ nguyên n. Tinh́ tri ̣ tuyêṭ đôí cuả n 2.Giải và biện luận phương trình bậc I: ax+b=0 3.Nhập và số nguyên k (k>0), Xuất ra màn hình k dòng chữ “Xin chào” 4.Tinh́ tông:̉ ,với n>0 5.Tinh́ tông:̉ ,với n>0 6.Nhâp̣ vaò ba canḥ a, b, c cuả tam giac.́ Xuât́ ra maǹ hinh̀ tam giać đo ́ thuôc̣ loaị tam giać gi?̀ (Thường, cân, vuông, đêù hay vuông cân). 19
  20. *HƯỚNG DẪN VÍ DỤ 1 Cho sô ́ nguyên n. Tinh́ tri ̣ tuyêṭ đôí cuả n * Đầu vào: Số nguyên n * Đầu ra: |n| * Giải thuật (Pseudocode): IF n<0 THEN n=n*(-1) ENDIF WRITE n 20
  21. *Giải thuật (Flowchart): 21
  22. *HƯỚNG DẪN VÍ DỤ 2 Giải và biện luận phương trình bậc I: ax+b=0 * Đầu vào: Hai số nguyên a và b * Đầu ra: Nghiệm của pt * Giải thuật (Pseudocode): IF a=0 THEN IF b=0 THEN WRITE “PT VSN” ELSE WRITE “PT VN” ENDIF ELSE x = -b:a WRITE “Nghiệm :”+x 22 ENDIF
  23. *HƯỚNG DẪN SỬ DỤNG CÔNG CỤ VẼ LƯU ĐỒ GIẢI THUẬT *Microsoft Visio *Crocodile Clips 6.05 *Cách sử dụng các ký hiệu *Chạy từng bước và kiểm tra kết quả 24