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
lượt xem 4
download
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" được biên soạn với các nội dung chính sau đây: Các cấu trúc cơ bản trong lập trình; Giả mã (pseudocode); Thuật toán số học; Thuật toán về dãy; Thuật toán đệ quy. Mời các bạn cùng tham khảo bài giảng tại đây!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: 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
- 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ội dung 5.1. Các cấu trúc cơ bản trong lập trình 5.2. Giả mã (pseudocode) 5.3. Thuật toán số học 5.4. Thuật toán về dãy 5.5. Thuật toán đệ quy 2
- 5.1. Các cấu trúc cơ bản trong lập trình • Cấu trúc tuần tự • Cấu trúc rẽ nhánh • Cấu trúc lặp 3
- 5.1.1. Cấu trúc tuần tự • Các bước được thực hiện theo 1 trình tự tuyến tính, hết bước này đến bước khác Bước 1 Bước 2 … Bước n 4
- 5.1.2. Cấu trúc rẽ nhánh • Việc thực hiện bước nào phụ thuộc vào điều kiện xác định. • Ví dụ: Tìm max của 2 số a, b. – Nếu a > b thì max là a, ngược lại max sẽ là b. – Diễn giải: • B1: Nhập 2 số a, b. • B2: Nếu a > b thì Max = a và đi đến bước kết thúc (B4). • B3: (a b Max a Max b 5
- 5.1.3. Cấu trúc lặp • Một tác động/ nhiệm vụ có thể được thực hiện lặp nhiều lần. Điều kiện • Số lần lặp có thể biết trước hoặc không biết trước.Tuy nhiên số lần lặp phải hữu hạn. Thực hiện công việc trong vòng lặp Thực hiện công việc khi thoát khỏi vòng lặp 6
- 5.1.3. Cấu trúc lặp (2) Nhập N và Ví dụ: Tìm số lớn nhất của dãy số a1, a2,…,aN một dãy có n số Lần lượt phải so sánh số Max Max a1; i=2 tạm thời (lúc đầu Max được gán bằng phần tử thứ nhất, a1) với ai, với i từ 2, 3,…, n. Đ Hiển thị i>N “Max là số lớn nhất” Việc so sánh này được thực hiện lặp nhiều lần giữa Max S và ai. Đ Khi kết thúc quá trình lặp, ta ai > Max Max ai sẽ thu được Max là số lớn nhất của dãy n số. S ii+1 7
- Nội dung 5.1. Các cấu trúc cơ bản trong lập trình 5.2. Giả mã (pseudocode) 5.3. Thuật toán số học 5.4. Thuật toán về dãy 5.5. Thuật toán đệ quy 8
- 5.2. Mã giả (pseudocode) • Gán: hoặc := Ví dụ: i i + 1 a := b + c • Cấu trúc rẽ nhánh if(điều kiện) then (hành động) hoặc if(điều kiện) then (hành động) else (hành động) • Cấu trúc nhảy goto: – goto nhãn x; 9
- 5.2. Giả mã (2) • Cấu trúc lặp: while điều_kiện do hành_động hoặc repeat hành_động until điều_kiện hoặc for biến:= gtrị_đầu to gtrị_cuối do hành_động hoặc for biến:= gtrị_đầu downto gtrị_cuối do hành_động 10
- Nội dung 5.1. Các cấu trúc cơ bản trong lập trình 5.2. Giả mã (pseudocode) 5.3. Thuật toán số học 5.4. Thuật toán về dãy 5.5. Thuật toán đệ quy 11
- 5.3. Thuật toán số học • Các bài toán về số học – Xác định một số nguyên có phải là số nguyên tố/hợp số hay không – Tìm USCLN, BSCNN của 2 số nguyên – .. 12
- Bài toán số nguyên tố • Cho một số nguyên dương p. Làm thế nào để biết được p có phải số nguyên tố hay không? – Input: p nguyên dương – Output: kết luận về tính nguyên tố của p • Ý tưởng? – p = 1? Không phải số nguyên tố – p > 1? • Kiểm tra từ 2 đến p-1 có phải là ước số của p không • Nếu có thì kết luận p không là số nguyên tố, ngược lại không có số nào thì kết luận p là số nguyên tố 13
- 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 ước nào của p không for k:=2 to p-1 do //Tối ưu duyệt đến [căn bậc 2 của p] if (k là ước số của p) then begin flag:=FALSE break //ngắt vòng lặp FOR end if flag=TRUE then Xuất: p là số nguyên tố else 14 Xuất: p không là số nguyên tố
- Nội dung 5.1. Các cấu trúc cơ bản trong lập trình 5.2. Giả mã (pseudocode) 5.3. Thuật toán số học 5.4. Thuật toán về dãy 5.5. Thuật toán đệ quy 15
- 5.4. Thuật toán về dãy • Làm việc với một dãy số • Các bài toán điển hình – Tìm số lớn nhất, nhỏ nhất trong dãy – Kiểm tra dãy có phải là dãy tăng hoặc dãy giảm – Sắp xếp dãy tăng dần hoặc giảm dần – Tìm trong dãy có phần tử nào bằng một giá trị cho trước – Tính trung bình cộng của dãy –… 16
- Ví dụ 1 - Tìm số lớn nhất trong dãy • Input: dãy số a1, a2, a3,… an • Output: max là giá trị lớn nhất trong dãy số đã cho • Thuật toán: max:=a1 for i:=2 to n do if max < ai then max:= ai Xuất: max là giá trị lớn nhất trong dãy số 17
- Ví dụ 2. Sắp xếp dãy số • Bài toán: Sắp xếp bằng phương pháp nổi bọt (Bubble Sort) – Đầu vào: Dãy a gồm N số nguyên a1, a2,…, aN – Đầu ra: Dãy a được sắp lại theo thứ tự không giảm. • Ý tưởng: – Với mỗi cặp số liên tiếp trong dãy, nếu số trước lớn hơn số sau ta đổi chỗ chúng cho nhau. – Việc đó được lặp cho đến khi không có sự đổi chỗ nào cho nhau 18
- Ví dụ 2 - Mô tả tuần tự các bước • B1: Nhập số N và dãy số a1,a2,…,aN • B2: M N. • B3: Nếu M < 2 thì thuật toán kết thúc và hiển thị dãy đó. • B4: M M – 1, i 0. • B5: Tăng i lên 1 đơn vị. • B6: Nếu i > M thì quay lại B3. • B7: Nếu ai > ai+1 thì tráo đổi hai số đó cho nhau • B8: Quay lên B5. 19
- Ví dụ 2 - Mô tả bằng lưu đồ thuật toán Nhập N và dãy số a1, a2,…,aN MN Đ Hiển thị MM ai > ai+1 Đ 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng tin học đại cương - trường ĐH Tôn Đức Thắng
175 p | 1024 | 287
-
Bài giảng Tin học đại cương - Chương 1: Các vấn đề cơ bản về CNTT
167 p | 418 | 31
-
Bài giảng Tin học đại cương: Bài 1 - ĐH Bách khoa Hà Nội
33 p | 263 | 21
-
Bài giảng Tin học đại cương: Bài 4 - ĐH Bách khoa Hà Nội
8 p | 155 | 13
-
Bài giảng Tin học đại cương: Chương 2 - Tin học và công nghệ thông tin
12 p | 183 | 10
-
Bài giảng Tin học đại cương: Bài 3 - ĐH Bách khoa Hà Nội
14 p | 143 | 8
-
Bài giảng Tin học đại cương - Nguyễn Vũ Duy
95 p | 43 | 8
-
Bài giảng Tin học đại cương: Phần 1 - ThS. Phạm Thanh Bình
18 p | 93 | 6
-
Bài giảng Tin học đại cương: Chương 1 - Đại cương về tin học
16 p | 124 | 5
-
Bài giảng Tin học đại cương: Chương 1 - Thông tin
29 p | 150 | 5
-
Bài giảng Tin học đại cương: MS Excel - ThS. Ngô Cao Định
31 p | 11 | 4
-
Bài giảng Tin học đại cương: Tổng quan về máy tính - ThS. Ngô Cao Định
38 p | 13 | 4
-
Bài giảng Tin học đại cương: Biểu diễn và xử lý thông tin - ThS. Ngô Cao Định
56 p | 7 | 3
-
Bài giảng Tin học đại cương: Mạng và Internet - ThS. Ngô Cao Định
55 p | 9 | 3
-
Bài giảng Tin học đại cương: Hệ điều hành - ThS. Ngô Cao Định
86 p | 8 | 2
-
Bài giảng Tin học đại cương: Chương 1 - Trần Quang Hải Bằng (ĐH giao thông Vận tải)
31 p | 80 | 2
-
Bài giảng Tin học đại cương: Bài 13 - Bùi Thị Thu Cúc
10 p | 78 | 2
-
Bài giảng Tin học đại cương: Tổng quan về cơ sở dữ liệu - ThS. Ngô Cao Định
11 p | 7 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn