Bài giảng Tin học đại cương - Chương 3: Thuật toán cung cấp cho người học các kiến thức: Khái niệm thuật toán, tính chất của thuật toán, các cách biểu diễn thuật toán, cấu trúc cơ bản của thuật toán, một số thuật toán cơ bản. Mời các bạn cùng tham khảo.
6/2020 TIN HỌC ĐẠI CƯƠNG Chương 3: THUẬT TOÁN GV: Nguyễn Lê Minh Bộ môn: Công nghệ thông tin Nội dung Khái niệm thuật tốn Tính chất thuật tốn Các cách biểu diễn thuật toán Cấu trúc thuật toán Một số thuật toán Bài tập 3/6/2020 Nội dung Khái niệm thuật tốn Tính chất thuật tốn Các cách biểu diễn thuật toán Cấu trúc thuật toán Một số thuật toán Bài tập 3/6/2020 Khái niệm thuật toán Thuật toán tập hữu hạn bước, phép toán xếp theo trình tự định để từ thơng tin đầu vào toán sau tập hữu hạn bước đạt kết đầu mong muốn Input 3/6/2020 Algorithm Output Khái niệm thuật tốn Thơng thường, thuật tốn dùng để giải lớp toán cụ Gồm thành phần chính: • Input : Thơng tin tốn cho • Output : Thơng tin cần tìm trả lời câu hỏi cần thiết Ví dụ: S = a *b 3/6/2020 Khái niệm thuật toán Ví dụ : Giải phương trình bậc P(x): ax + b = 0, (a, b số thực) • Input : a, b • Output : Kết P(x) o Mơ tả thuật tốn: Nếu a = Nếu b = P(x) có nghiệm Nếu b P(x) vơ nghiệm Nếu a P(x) có nghiệm x = -b/a 3/6/2020 Khái niệm thuật tốn Ví dụ : Kiểm tra số ngun X có chia hết cho khơng ? • Input : X • Output : Kết kiểm tra Result o Mơ tả thuật tốn: o Bước 1: Tìm số dư r phép chia x cho o Bước 2: Kiểm tra Nếu r = result = True Nếu r result = False 3/6/2020 Nội dung Khái niệm thuật tốn Tính chất thuật toán Các cách biểu diễn thuật toán Cấu trúc thuật toán Một số thuật toán Bài tập 3/6/2020 Tính chất thuật tốn Tính dừng Tính xác định Tính Ðầu vào đầu (input/output) Tính hiệu Tính tổng quát 3/6/2020 Tính chất thuật tốn ■ Tính dừng : Thuật tốn phải bao đảm kết thúc sau số hữu hạn bước ■ Tính dừng tính dễ bị vi phạm, thường sai sót trình bày thuật tốn dẫn đến “Lặp vơ tận” 3/6/2020 10 Một số thuật tốn o Tính tổng dãy số o Tính tích dãy số o Tìm kiếm số có dãy hay khơng o Đếm số lượng phần tử thỏa mãn điều kiện o Tìm giá trị max, o Sắp xếp tăng, giảm dãy số 3/6/2020 33 Một số thuật tốn o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Hãy tính tổng dãy số trê o Ý tưởng: - Sử dụng biến để tính tổng phần tử Ban đầu biến - Duyệt phần tử cộng phần tử vào biến tổng 3/6/2020 34 Một số thuật toán 3/6/2020 35 Một số thuật tốn o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Hãy tính tích dãy số o Ý tưởng: tương tự thuật tốn tính tổng - Sử dụng biến để tính tích phần tử Ban đầu biến (nếu biến ban đầu thí tích sai) - Duyệt phần tử nhân phần tử vào biến tích 3/6/2020 36 Một số thuật tốn o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Kiểm tra số X có nằm dãy hay không ? o Ý tưởng: ■ Sử dụng biến để đánh đánh dấu xem có tìm thấy phần tử X hay khơng Ban đầu biến đánh dấu có giá trị FALSE ■ Duyệt phần tử, phần tử thứ i có giá trị X gán biến đánh dấu TRUE 3/6/2020 37 Một số thuật toán 3/6/2020 38 Một số thuật tốn o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Đếm xem dãy có phần tử thỏa mãn điều kiện o Ý tưởng: ■ Sử dụng biến đếm số lượng phần tử ■ Duyệt phần tử ■ Kiểm tra phần tử có thỏa điều kiện hay khơng, thỏa điều kiện tăng biến đếm lên 3/6/2020 39 Một số thuật toán 3/6/2020 40 Một số thuật toán Đếm số chẵn 3/6/2020 41 Một số thuật toán o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Tìm phần tử Max – Min dãy số o Ý tưởng: ■ Sử dụng biến lưu giá trị max (min), ban đầu max = a1 ■ Duyệt phần tử ■ Kiểm tra phần tử có lớn biến giá trị max (nhỏ giá trị min) thỏa điều kiện biến max phần tử 3/6/2020 42 Một số thuật tốn Tìm max 3/6/2020 43 Một số thuật toán o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Sắp xếp dãy số tăng giảm o Ý tưởng: - Duyệt phần tử: - Phần tử duyệt gọi phần tử - Thực vòng lặp con, duyệt phần tử lại Nếu giá phần tử duyệt vòng lặp bé phần tử thực việc đổi chỗ phần tử 3/6/2020 44 Một số thuật toán Tăng dần 3/6/2020 45 Nội dung Khái niệm thuật tốn Tính chất thuật toán Các cách biểu diễn thuật toán Cấu trúc thuật toán Một số thuật toán Bài tập 3/6/2020 46 Bài tập Vẽ sơ đồ khối biểu diễn thuật tốn tính trung bình cộng dãy số a1,a2,a3,….,an Vẽ sơ đồ thuật tốn kiểm tra xem số N có phải số nguyên tố hay không? Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , xếp in hình dãy số tăng dần Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , in hình dãy số theo chiều ngược lại Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , xuất hình số âm lớn dãy Vẽ sơ đồ khối biểu diễn thuật toán nhập dãy số a1,a2,a3,….,an , tìm in hình số xuất nhiều lần dãy 3/6/2020 47 ... = 1x2x3x xn ■ Tìm n thỏa mãn S = + ½ + 1 /3 + + 1/n >= 3/ 6/2020 31 Một số thuật tốn Kiểm tra xem N có phải số nguyên tố không ? Ý tưởng : - Nếu N=1 -> N không số nguyên tố - Nếu 14 -> N số... 3/ 6/2020 42 Một số thuật tốn Tìm max 3/ 6/2020 43 Một số thuật tốn o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Sắp xếp dãy số tăng giảm o Ý tưởng: - Duyệt phần tử: - Phần tử duyệt gọi phần tử -. .. vào biến tổng 3/ 6/2020 34 Một số thuật toán 3/ 6/2020 35 Một số thuật toán o Tính tổng: Cho dãy n phần tử a1,a2,a3 an Hãy tính tích dãy số o Ý tưởng: tương tự thuật tốn tính tổng - Sử dụng biến