Chương 2 cung cấp cho người học những kiến thức cơ bản liên quan đến thuật toán trong lập trình. Những nội dung chính được trình bày trong chương này gồm có: Khái niệm thuật toán, các tính chất của thuật toán, phát triển thuật toán, mô tả thuật toán, các dạng thuật toán cơ bản. Mời các bạn cùng tham khảo.
Thuật toán v 1.0 - 10/2012 Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán học Lập trình ? 1.1 Lập trình ngơn ngữ lập trình 1.2 Lịch sử hướng lập trình 1.3 Chương trình thuật tốn 1.4 Các bước lập trình C# NET Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán Giải toán máy tính Xác định tốn Thiết kế thuật tốn Phân tích thuật tốn Cài đặt thuật toán Kiểm tra / Bắt lỗi [ Sửa lỗi ] Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán Nội dung Thuật toán 1.1 Khái niệm 1.2 Các tính chất 1.3 Phát triển thuật tốn Mơ tả thuật toán Các dạng thuật toán Ví dụ Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Thuật toán Lê Viết Mẫn - lvman@hce.edu.vn Thuật toán Thuật tốn • • • Một tập thị / lệnh đơn giản xác định rõ ràng để giải tốn • • Tính toán trả một tập giá trị đầu (output) Thuật toán = Logic + Điều khiển Logic - trả lời câu hỏi “Thuật toán làm ? Giải vấn đề ? Những yếu tố tốn có quan hệ với ? ” • • • Nhận tập giá trị đầu vào (input) Gồm kiến thức chun mơn mà bạn phải biết để giải tốn Để giải tốn tính diện tích hình cầu, bạn phải biết cơng thức tính diện tích hình cầu Điều khiển - trả lời câu hỏi “Giải thuật phải làm ?” Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Thuật tốn • • • Có thể mơ tả • • • • Ngơn ngữ tự nhiên Ngơn ngữ lập trình Mã giả Lưu đồ Cấu trúc liệu - Phương pháp tổ chức liệu Chương trình = Thuật tốn + Cấu trúc liệu Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Ví dụ - giải p.t bậc ax + b = Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Ví dụ - giải p.t bậc ax + b = Nếu a ≠ 0: x = -b/a Ngược lại, a = 0: Nếu b = 0: pt có vơ số nghiệm Nếu b ≠ 0: pt vơ nghiệm Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Ví dụ - tìm số lớn Cho ba số a, b, c Tìm số lớn ba số Lê Viết Mẫn - lvman@hce.edu.vn 10 Thuật tốn Ví dụ Tính tiền lương cơng nhân biết lương số ngày công Đầu vào : lương bản, số ngày công Đầu : tiền lương cơng nhân Xử lý : tính theo cơng thức Lương = Lương * Ngày công Lê Viết Mẫn - lvman@hce.edu.vn 33 Thuật tốn Ví dụ Tính tiền lương công nhân biết lương số ngày công Begin Nhập LCB, NC Lương = LCB * NC In Lương End Lê Viết Mẫn - lvman@hce.edu.vn 34 Thuật toán Thuật toán lựa chọn entry true statement statement_1 statement_2 false expression true expression false exit Dạng Lê Viết Mẫn - lvman@hce.edu.vn Dạng 35 Thuật tốn Ví dụ Cho ba số a, b, c Tìm số lớn ba số Bước : Cho Max = a Bước : So sánh b với Max Nếu b > Max cho Max = b Bước : So sánh c với Max Nếu c > Max cho Max = c Bước : Trả Max giá trị lớn Bước : Dừng Lê Viết Mẫn - lvman@hce.edu.vn 36 Thuật toán Begin Nhập a, b, c Max = a b > Max false true Max = b false c > Max true Max = c In Max End Lê Viết Mẫn - lvman@hce.edu.vn 37 Thuật tốn Ví dụ Nhập vào số nguyên n Kiểm tra n > tăng n lên đơn vị Xuất kết hình Đầu vào : số nguyên n Đầu : giá trị n Xử lý : kiểm tra n > 0, tăng n lên Lê Viết Mẫn - lvman@hce.edu.vn 38 Thuật tốn Ví dụ Nhập vào số nguyên n Kiểm tra n > tăng n lên đơn vị Xuất kết hình Begin Nhập n n>0 false true n=n+1 In n End Lê Viết Mẫn - lvman@hce.edu.vn 39 Thuật tốn Ví dụ Nhập vào số ngun n Kiểm tra n chẵn xuất hình câu “n chẵn”, ngược lại xuất “n lẻ” Đầu vào : số nguyên n Đầu : giá trị n Xử lý : kiểm tra n chẵn lẻ xuất dòng tương ứng Lê Viết Mẫn - lvman@hce.edu.vn 40 Thuật tốn Ví dụ Nhập vào số ngun n Kiểm tra n chẵn xuất hình câu “n chẵn”, ngược lại xuất “n lẻ” Begin Nhập n true n %2=0 In “n chẵn” false In “n lẻ” End Lê Viết Mẫn - lvman@hce.edu.vn 41 Thuật toán Thuật toán lặp statement_1 condition statement_2 false condition statement true true statement_3 false statement condition true false Dạng Lê Viết Mẫn - lvman@hce.edu.vn Dạng 42 Dạng Thuật tốn Ví dụ Nhập vào điểm thi ( ∈ [0 10]) Nếu nhập sai yêu cầu nhập lại Đầu vào : số nguyên n ∈ [0 10] Đầu : Xử lý : n ∉ [0 10] yêu cầu nhập lại Lê Viết Mẫn - lvman@hce.edu.vn 43 Thuật tốn Ví dụ Nhập vào điểm thi ( ∈ [0 10]) Nếu nhập sai yêu cầu nhập lại Begin Nhập n true n ∉ [0 10] false End Lê Viết Mẫn - lvman@hce.edu.vn 44 Thuật toán Ví dụ Tính tổng S = + + + n (với n > 0) Nhập n vào từ bàn phím Đầu vào : số nguyên n (n > 0) Đầu : S Xử lý : i = i + S = S + i Lê Viết Mẫn - lvman@hce.edu.vn 45 Thuật toán Begin Nhập n S=0 i=1 i>n true false S=S+i i=i+1 In S End Lê Viết Mẫn - lvman@hce.edu.vn 46 Thuật toán Cảm ơn ý Câu hỏi ? Lê Viết Mẫn - lvman@hce.edu.vn 47 Thuật toán ... Các chương trình cần đầu vào ? Các xử lý cần thiết cho chương trình ? Đầu chờ đợi chương trình ? Lê Viết Mẫn - lvman@hce.edu.vn 23 Thuật tốn Mơ tả thuật tốn Lê Viết Mẫn - lvman@hce.edu.vn 24 Thuật... cơng thức ? Lê Viết Mẫn - lvman@hce.edu.vn 21 Thuật toán Vẽ biểu đồ HIPO Hierarchy of Inputs Processes & Outputs Bài toán Đầu vào C.t C.t Xử lý C.t Lê Viết Mẫn - lvman@hce.edu.vn C.t 22 Đầu C.t... ngữ lập trình Mã giả Lưu đồ Cấu trúc liệu - Phương pháp tổ chức liệu Chương trình = Thuật tốn + Cấu trúc liệu Lê Viết Mẫn - lvman@hce.edu.vn Thuật tốn Ví dụ - giải p.t bậc ax + b = Lê Viết Mẫn -