Bài giảng Tin học cơ sở - Chương 6: Giải thuật cung cấp cho người học các kiến thức: Phương pháp giải quyết vấn đề bằng máy tính; khái niệm về giải thuật, các tính chất của giải thuật. Mời các bạn cùng tham khảo nội dung chi tiết.
Chương 6: Giải thuật (Algorithms) I-Phương pháp giải vấn đề máy tính Bài tốn => Giải thuật => Chương trình => Ngơn ngữ máy => Máy thực Chương 6: Giải thuật (Algorithms) I-Phương pháp giải vấn đề máy tính Bài tốn => Giải thuật => Chương trình => Ngơn ngữ máy => Máy thực II-Khái niệm giải thuật Khái niệm Các tính chất giải thuật Chương 6: Giải thuật (Algorithms) II-Khái niệm giải thuật Khái niệm Các tính chất giải thuật - Tính thực được: - Tính kết thúc: - Tính kết quả: - Tính hiệu quả: - Tính nhất: - Tính tổng quát: - Tính hình thức: Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Liệt kê bước lời Lưu đồ giải thuật Giả mã Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Liệt kê bước lời Ví dụ: Giải thuật tìm USCLN(a,b) B1: Nhập vào hai số nguyên a, b B2: Đem a chia nguyên cho b, lấy phần dư để r B3: Nếu r = chuyển sang B4 Nếu r ≠ a lấy giá trị b, b lấy giá trị r quay lại B2 B4: Đưa USCLN b B5: Kết thúc Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Lưu đồ giải thuật Bắt đầu Kết thúc Sai B A Đúng Thực công việc A Vào/ra liệu Bắt đầu Nhập a, b r := a mod b a := b b := r r=0 Sai Đúng Đưa b Kết thúc Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Dùng giả mã Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Dùng giả mã • Vào: a, b • Ra: USCLN(a,b) 1) Read(a,b); 2) r := a mod b; 3) While r ≠ begin a := b; b := r; r:=a mod b; end; 4) Write(b); 5) Kết thúc Chương 6: Giải thuật (Algorithms) IV-Một số giải thuật Hoán đổi nội dung nhớ (đổi chỗ) Ví dụ: Hốn đổi nội dung nhớ a b 1) tg := a; 2) a : = b; 3) b := tg; Sau này, viết gọn DoiCho(a,b) a :=: b a ↔ b Chương 6: Giải thuật (Algorithms) IV-Một số giải thuật Tìm giá trị lớn nhất/nhỏ dãy số Ví dụ: Cho dãy số a1, a2,…, an Tìm giá trị lớn Chương 6: Giải thuật (Algorithms) 1) 2) 3) 4) read(n); read(a[1], a[2],…, a[n]); max:=a[1]; For i:=2 to n If a[i] > max then max:=a[i]; 5) write(max); 6) Kết thúc Chương 6: Giải thuật (Algorithms) IV-Một số giải thuật Sắp xếp dãy số tăng/giảm dần Ví dụ: Cho dãy số a1, a2,…, an Sắp xếp dãy số tăng dần từ trái qua phải Chương 6: Giải thuật (Algorithms) Giải thuật 1: 1) Read(n); 2) Read(a[1], a[2],…, a[n]); 3) For i:=1 to n-1 For j:=i+1 to n If a[j] < a[i] then a[i] ↔ a[j] 4) Write(a[1], a[2],…, a[n]); 5) Kết thúc Chương 6: Giải thuật (Algorithms) Giải thuật 2: 1) Read(n); 2) Read(a[1], a[2],…, a[n]); 3) For i:=1 to n-1 begin +) k:=i; +) For j:=i+1 to n If a[j] < a[k] then k:=j; + If k ≠ i then a[i] ↔ a[k]; end; 4) Write(a[1], a[2],…, a[n]); 5) Kết thúc Chương 6: Giải thuật (Algorithms) IV-Một số giải thuật Tìm giá trị x dãy số Ví dụ: Cho dãy số a1, a2,…, an Tìm xem có phần tử x không? Chương 6: Giải thuật (Algorithms) 1) 2) 3) 4) 5) Read(n); Read(a[1], a[2],…, a[n]); Read(x); Co:=FALSE; {Ban dau la khong co} For i:=1 to n If a[i] = x Then begin Co:=TRUE; break; end; 6) If Co = TRUE Then write(‘Co phan tu bang x’) Else write(‘Khong co phan tu bang x’); 7) Kết thúc .. .Chương 6: Giải thuật (Algorithms) II-Khái niệm giải thuật Khái niệm Các tính chất giải thuật - Tính thực được: - Tính kết thúc: - Tính kết quả: - Tính hiệu quả: - Tính nhất: - Tính tổng qt: -. .. qt: - Tính hình thức: Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Liệt kê bước lời Lưu đồ giải thuật Giả mã Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải... b b := r r=0 Sai Đúng Đưa b Kết thúc Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Dùng giả mã Chương 6: Giải thuật (Algorithms) III-Các cách diễn đạt giải thuật Dùng giả