1. Trang chủ
  2. » Tất cả

Bài giảng tin học đại cương (phần 2) bài 5 một số thuật toán thông dụng

28 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

1 10 Giải quyết vấn đề và thiết kế thuật toán TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Phần 2 Giải quyết bài toán Bài 5 Một số thuật toán thông dụng N[.]

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG TIN HỌC ĐẠI CƯƠNG Phần Giải toán Bài 5: Một số thuật tốn thơng dụng Nội dung 5.1 Các cấu trúc lập trình 5.2 Giả mã (pseudocode) 5.3 Thuật toán số học 5.4 Thuật toán dãy 5.5 Thuật toán đệ quy 5.1 Các cấu trúc lập trình • Cấu trúc • Cấu trúc rẽ nhánh • Cấu trúc lặp 5.1.1 Cấu trúc • Các bước thực theo trình tự tuyến tính, hết bước đến bước khác Bước Bước … Bước n 5.1.2 Cấu trúc rẽ nhánh • • Việc thực bước phụ thuộc vào điều kiện xác định Ví dụ: Tìm max số a, b – Nếu a > b max a, ngược lại max b – Diễn giải: • • • • B1: B2: B3: B4: Nhập số a, b Nếu a > b Max = a đến bước kết thúc (B4) (a b Max  a Max  b 5.1.3 Cấu trúc lặp • • Một tác động/ nhiệm vụ thực lặp nhiều lần Số lần lặp biết trước khơng biết trước.Tuy nhiên số lần lặp phải hữu hạn Điều kiện Thực cơng việc vịng lặp Thực cơng việc khỏi vịng lặp 5.1.3 Cấu trúc lặp (2) Ví dụ: Tìm số lớn dãy có n số    Lần lượt phải so sánh số Max tạm thời (lúc đầu Max gán phần tử thứ nhất, a1) với ai, với i từ 2, 3,…, n Việc so sánh thực lặp nhiều lần Max Khi kết thúc trình lặp, ta thu Max số lớn dãy n số Nhập N dãy số a1, a2,…,aN Max  a1; i=2 i>N Đ Hiển thị “Max số lớn nhất” Đ Max  S > Max S ii+1 Nội dung 5.1 Các cấu trúc lập trình 5.2 Giả mã (pseudocode) 5.3 Thuật toán số học 5.4 Thuật toán dãy 5.5 Thuật toán đệ quy 5.2 Mã giả (pseudocode) • Gán:  := Ví dụ: i  i + a := b + c • Cấu trúc rẽ nhánh if(điều kiện) then (hành động) if(điều kiện) then (hành động) else (hành động) • Cấu trúc nhảy goto: – goto nhãn x; 5.2 Giả mã (2) • Cấu trúc lặp: while điều_kiện hành_động repeat hành_động until điều_kiện for biến:= gtrị_đầu to gtrị_cuối hành_động for biến:= gtrị_đầu downto gtrị_cuối hành_động 10 Bài toán số nguyên tố (2) Nhập p if p=1 then begin Xuất: p không nguyên tố; Dừng thuật toán; end flag := TRUE //Cờ trạng thái cho biết có tìm ước p không for k:=2 to p-1 //Tối ưu duyệt đến [căn bậc p] if (k ước số p) then begin flag:=FALSE break //ngắt vòng lặp FOR end if flag=TRUE then Xuất: p số nguyên tố else Xuất: p không số nguyên tố 14 Nội dung 5.1 Các cấu trúc lập trình 5.2 Giả mã (pseudocode) 5.3 Thuật toán số học 5.4 Thuật toán dãy 5.5 Thuật toán đệ quy 15 5.4 Thuật tốn dãy • Làm việc với dãy số • Các tốn điển hình – Tìm số lớn nhất, nhỏ dãy – Kiểm tra dãy có phải dãy tăng dãy giảm – Sắp xếp dãy tăng dần giảm dần – Tìm dãy có phần tử giá trị cho trước – Tính trung bình cộng dãy –… 16 Ví dụ - Tìm số lớn dãy • Input: dãy số a1, a2, a3,… an • Output: max giá trị lớn dãy số cho • Thuật tốn: max:=a1 for i:=2 to n if max < then max:= Xuất: max giá trị lớn dãy số 17 Ví dụ Sắp xếp dãy số • Bài tốn: Sắp xếp phương pháp bọt (Bubble Sort) – Đầu vào: Dãy a gồm N số nguyên a1, a2,…, aN – Đầu ra: Dãy a lại theo thứ tự khơng giảm • Ý tưởng: – Với cặp số liên tiếp dãy, số trước lớn số sau ta đổi chỗ chúng cho – Việc lặp khơng có đổi chỗ cho 18 Ví dụ - Mơ tả bước • B1: Nhập số N dãy số a1,a2,…,aN • B2: M  N • B3: Nếu M < thuật tốn kết thúc hiển thị dãy • B4: M  M – 1, i  • B5: Tăng i lên đơn vị • B6: Nếu i > M quay lại B3 • B7: Nếu > ai+1 tráo đổi hai số cho • B8: Quay lên B5 19 Ví dụ - Mơ tả lưu đồ thuật toán Nhập N dãy số a1, a2,…,aN MN MM S > ai+1  ai+1 Đ 20 ... dung 5. 1 Các cấu trúc lập trình 5. 2 Giả mã (pseudocode) 5. 3 Thuật tốn số học 5. 4 Thuật toán dãy 5. 5 Thuật toán đệ quy 11 5. 3 Thuật tốn số học • Các toán số học – Xác định số nguyên có phải số ngun... Xuất: p số nguyên tố else Xuất: p không số nguyên tố 14 Nội dung 5. 1 Các cấu trúc lập trình 5. 2 Giả mã (pseudocode) 5. 3 Thuật toán số học 5. 4 Thuật toán dãy 5. 5 Thuật toán đệ quy 15 5.4 Thuật toán. .. dung 5. 1 Các cấu trúc lập trình 5. 2 Giả mã (pseudocode) 5. 3 Thuật tốn số học 5. 4 Thuật toán dãy 5. 5 Thuật toán đệ quy 5. 1 Các cấu trúc lập trình • Cấu trúc • Cấu trúc rẽ nhánh • Cấu trúc lặp 5. 1.1

Ngày đăng: 28/02/2023, 16:46

Xem thêm: