Microsoft PowerPoint IP 02 Algorithm ThuậtThuật toántoán GV GV NguyễnNguyễn Minh Minh HuyHuy ThuậtThuật toántoán 1Nhập môn lập trình Nguyễn Minh Huy NộiNội dungdung �� KháiKhái niệmniệm thuậtthuật toá[.]
Thuật tốn GV Nguyễn Minh Huy Nhập mơn lập trình - Nguyễn Minh Huy Nội dung Khái niệm thuật toán toán Biểu diễn thuật toán toán Đánh giá thuật tốn tốn Nhập mơn lập trình - Nguyễn Minh Huy Nội dung Khái niệm thuật toán toán Biểu diễn thuật toán toán Đánh giá thuật tốn tốn Nhập mơn lập trình - Nguyễn Minh Huy Khái niệm thuật toán Thuật toán gì? ? Bài tốn 1: Nhận xét xét:: Tính tổng số lớn số nhỏ 7, 1, 9? Có nhiều cách giải toán khác nhau Các cách giải khác có hiệu khác nhau Thuật toán toán:: Cách giải cụ thể toán toán Các bước để đến kết Nhập mơn lập trình - Nguyễn Minh Huy Khái niệm thuật toán Đặc trưng thuật tốn tốn:: Có nhiều thuật tốn cho tốn toán Thuật toán định hiệu lời giải giải Thuật toán ~ thuật giải giải Các tính chất thuật tốn tốn:: Tính xác (correctness) Tính tổng quát (abstraction) Tính dừng (halting) Nhập mơn lập trình - Nguyễn Minh Huy Khái niệm thuật toán Những lệnh bản:: Máy tính hiểu lệnh bản:: Lệnh nhập nhập,, xuất xuất Lệnh tính tốn số học học:: +, -, *, /, %, = Lệnh kiểm tra điều kiện kiện:: >, =, Xuất “lớn hơn” Ngược lại Xuất “nhỏ hơn” Nhảy bước Chuyển đến -B1: a = a + b -B2: Nếu a < 100 Chuyến đến B1 Nhập mơn lập trình - Nguyễn Minh Huy Biểu diễn thuật toán Biểu diễn thuật tốn mã giả: giả: * Thuật tốn tìm số lớn nhất:: -B1: Nhập a, b, c -B2: max = a -B3: Nếu b > max max = b -B4: Nếu c > max max = c -B5: Xuất max Nhập mơn lập trình - Nguyễn Minh Huy * Thuật tốn tính giai thừa N: -B1: Nhập N -B2: S = -B3: Nếu N > S = S * N N = N – Chuyển đến B3 Ngược lại chuyển đến B4 -B4: Xuất S Biểu diễn thuật toán Biểu diễn lưu đồ (flow chart): Dùng hình vẽ biểu diễn thuật tốn tốn Trực quan quan,, dễ nắm bắt bắt Các ký hiệu cho lệnh bản:: Thao tác Nhập/Xuất Tính tốn số học Kiểm tra điều kiện Ký hiệu Ví dụ Nhập a, b, c Xuất x, y a=a+b a>5 Nhảy bước Nhập mơn lập trình - Nguyễn Minh Huy 10 Biểu diễn thuật toán Biểu diễn thuật toán lưu đồ: đồ: Nhập a, b, c Nhập N max = a S=1 b > max max = b sai c > max sai max = c N>1 sai S=S*N N=N-1 Xuất max Xuất S Nhập mơn lập trình - Nguyễn Minh Huy 11 Biểu diễn thuật toán Chạy bước thuật tốn tốn:: Kiểm tra tính xác xác Lặp bảng theo dõi giá trị trị Dòng lệnh Nhập N N S S=1 N=3>1 S=S*N N=N-1 N=2>1 S=S*N N=N-1 N=1=1 Xuất S Nhập mơn lập trình - Nguyễn Minh Huy 12 Nội dung Khái niệm thuật toán toán Biểu diễn thuật toán toán Đánh giá thuật toán toán Nhập mơn lập trình - Nguyễn Minh Huy 13 Đánh giá thuật tốn Các tiêu chí đánh giá: giá: Thời gian thực hiện:: Tùy thuộc số bước thuật toán toán Số bước tùy thuộc độ lớn liệu liệu Đại lương “O lớn”: lớn”: Dung lượng nhớ nhớ:: Ký hiệu O() Tương quan độ lớn liệu số bước thực hiện Tùy thuộc số lượng ký hiệu sử dụng dụng Dung lượng ~ thời gian gian Mức độ dễ hiểu hiểu Nhập môn lập trình - Nguyễn Minh Huy 14 Đánh giá thuật tốn Độ phức tạp thuật toán toán:: Thuật tốn Độ phức tạp Dạng Tìm số lớn (3 số) O(K) Hằng số Tính giai thừa N O(n) Tuyến tính Sắp xếp dãy số (N phần tử) Bubblesort: O(n2) Quicksort: O(n*log(n)) Đa thức Người đưa thư (N thành phố) O(Kn) O(n!) Phi tuyến Nhập mơn lập trình - Nguyễn Minh Huy 15 Tóm tắt Thuật tốn tốn:: Các bước đưa đến kết toán toán Bài tốn có nhiều thuật tốn với hiệu khác nhau Tính chất: chất: xác xác,, phổ quát quát,, dừng dừng Biểu diễn thuật toán toán:: Mã giả: giả: dùng ngôn ngữ tự nhiên nhiên Lưu đồ: đồ: dùng hình vẽ vẽ Đánh giá thuật toán toán:: Thời gian thực Độ phức tạp thuật tốn tốn Nhập mơn lập trình - Nguyễn Minh Huy 16 Bài tập Bài tập 2.1: Xây dựng thuật tốn tính tuổi người sau sau:: - Nhập vào năm sinh sinh - Tính tuổi xuất kết quả Nhập mơn lập trình - Nguyễn Minh Huy 17 Bài tập Bài tập 2.2: Xây dựng thuật tốn tính nút bảng số xe sau sau:: - Nhập vào số bảng số xe (một số có chữ số) số) - Tính xuất số nút nút Nhập mơn lập trình - Nguyễn Minh Huy 18 Bài tập Bài tập 2.3: Xây dựng thuật tốn mơ máy tính tay sau sau:: - Nhập vào số nguyên nguyên - Nhập vào phép tính (+, -, *, /) - Thực phép tính vừa nhập số nguyên xuất kết quả Nhập môn lập trình - Nguyễn Minh Huy 19 Bài tập Bài tập 2.4: Xây dựng thuật toán xếp loại cho học sinh sau sau:: - Nhập vào điểm văn văn,, tốn, tốn, ngoại ngữ ngữ - Tính điểm trung bình (văn văn,, toán hệ số 2) - Xếp loại cho học sinh sau sau:: + Giỏi Giỏi:: ĐTB >= 8.0 + Khá: Khá: ĐTB >= 6.5 + Trung bình bình:: ĐTB >= 5.0 + Yếu: Yếu: ĐTB < 5.0 - Xuất điểm trung bình kết xếp loại loại Nhập mơn lập trình - Nguyễn Minh Huy 20