Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọc
lượt xem 2
download
Nối tiếp phần 1 bộ bài giảng Tin học đại cương mời các bạn cùng tìm hiểu phần 2 (Chương 1) với các nội dung chính như: Giải quyết bài toán bằng máy tính: Khái niệm về bài toán; quá trình giải quyết bài toán bằng máy tính; các phương pháp giải quyết bài toán bằng máy tính; phân loại bài toán;...
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 (Chương 1) - TS.Nguyễn Bá Ngọc
- IT1110 Tin học đại cương Phần II Giải quyết bài toán Nguyễn Bá Ngọc 1
- Ôn tập nội dung phần I Phần I: TIN HỌC CĂN BẢN Thông tin Biểu diễn dữ liệu trong máy tính Máy tính và mạng máy tính Hệ điều hành và các hệ thống ứng dụng
- Nội dung phần II Chương 1: Giải quyết bài toán bằng máy tính Khái niệm về bài toán Quá trình giải quyết bài toán bằng máy tính Các phương pháp giải quyết bài toán bằng máy tính Phân loại bài toán Chương 2: Thuật toán Định nghĩa thuật toán Biểu diễn thuật toán Một số thuật toán thông dụng Thuật toán đệ quy Thuật giải heuristic 3
- Nội dung phần II Chương 1: Giải quyết bài toán bằng máy tính Khái niệm về bài toán Quá trình giải quyết bài toán bằng máy tính Các phương pháp giải quyết bài toán bằng máy tính Phân loại bài toán Chương 2: Thuật toán Định nghĩa thuật toán Biểu diễn thuật toán Một số thuật toán thông dụng Thuật toán đệ quy Thuật giải heuristic 4
- 1.1. Khái niệm về vấn đề và bài toán Vấn đề rộng hơn bài toán? Pitago chia vấn đề ra: Theorema là vấn đề cần được khẳng định đúngsai Problema là vấn đề cần tìm giải pháp để đạt được một mục tiêu xác định từ những điều kiện ban đầu. Diễn đạt bằng sơ đồ: A B A là giả thiết, điều kiện ban đầu B là kết luận, mục tiêu cần đạt là suy luận, giải pháp cần xác định 5
- 1.2. Các bước giải quyết bài toán bằng máy tính Bước 1: Xác định vấn đềbài toán Bước 2: Lựa chọn phương pháp giải Bước 3: Xây dựng thuật toán hoặc thuật giải Bước 4: Cài đặt chương trình Bước 5: Hiệu chỉnh chương trình Bước 6: Thực hiện chương trình 6
- 1.3. Các phương pháp giải quyết vấn đề bằng máy tính Giải quyết vấn đề theo hướng xác định trực tiếp lời giải xác định trực tiếp lời giải qua thủ tục tính toán hoặc thủ tục bao gồm một số hữu hạn các thao tác sơ cấp. Giải quyết vấn đề theo hướng tìm kiếm lời giải nguyên lý "thử và sai" các phương pháp liệt kê hay vét cạn thử ngẫu nhiên quay lui chia để trị 7
- 1.4. Phân loại bài toán Bài toán đa thức Bài toán không đa thức NP Problems 8
- Nội dung phần II Chương 1: Giải quyết bài toán bằng máy tính Khái niệm về bài toán Quá trình giải quyết bài toán bằng máy tính Các phương pháp giải quyết bài toán bằng máy tính Phân loại bài toán Chương 2: Thuật toán Định nghĩa thuật toán Biểu diễn thuật toán Một số thuật toán thông dụng Thuật toán đệ quy Thuật giải heuristic 9
- 2.1. Định nghĩa thuật toán Là một khái niệm cơ sở của toán học và tin học. Bao gồm một dãy hữu hạn các lệnh/chỉ thị rõ ràng và có thể thi hành được để hướng dẫn thực hiện một hành động nhằm đạt được mục tiêu đề ra. Thuật toán là sự thể hiện của một phương pháp để giải quyết một vấn đề. 10
- Ví dụ 1: Thuật toán tìm phần tử lớn nhất của một dãy hữu hạn các số nguyên Các bước: 1. Đặt giá trị lớn nhất tạm thời là số nguyên đầu tiên. 2. So sánh số nguyên kế tiếp trong dãy với giá trị lớn nhất tạm thời, nếu số nguyên này lớn hơn giá trị lớn nhất tạm thời thì đặt giá trị lớn nhất tạm thời bằng số nguyên này. 3. Lặp lại bước 2 nếu còn số nguyên trong dãy chưa được xét. 4. Dừng nếu không còn số nguyên nào trong dãy chưa được xét. Giá trị lớn nhất tạm thời lúc này chính là giá trị lớn nhất trong dãy số. 11
- Ví dụ 2: Thuật toán giải phương trình bậc hai: ax2 + bx + c = 0 (a 0) 1. Nhập 3 hệ số a, b, c 2. Tính giá trị Δ = b2 4*a*c 3. Xét dấu Δ. Nếu Δ>0 thì thực hiện các thao tác sau đây: 3.1. Tính các nghiệm theo các công thức: x1 = (bsqrt(Δ))/(2*a) x2 = (b+sqrt(Δ))/(2*a) 3.2. Xuất kết quả: phương trình có hai nghiệm x1 và x2. 4. Nếu Δ là 0 thì xuất kết quả: phương trình có nghiệm kép là b/(2*a) 5. Nếu Δ
- Các đặc trưng của thuật toán Nhập (input): có các giá trị nhập từ một tập hợp nhất định. Xuất (output): từ mỗi giá trị của tập hợp nhập, tạo ra giá trị xuất thuộc một tập hợp nhất định. Tính xác định (definiteness): các bước chính xác, rõ ràng. Tính hữu hạn (finiteness): cho ra kết quả sau một số hữu hạn bước. Tính hiệu quả (effectiveness): được đánh giá dựa trên một số tiêu chuẩn (khối lượng tính toán, không gian, thời gian sử dụng). Tính tổng quát (generaliness): áp dụng được cho tất cả các bài toán có dạng như mong muốn 13
- 2.2. Biểu diễn thuật toán Sử dụng các ngôn ngữ: Ngôn ngữ tự nhiên Ngôn ngữ lưu đồ (sơ đồ khối) Ngôn ngữ tựa ngôn ngữ lập trình (mã giả) Ngôn ngữ lập trình 14
- Ngôn ngữ lưu đồ Các thành phần: Nút giới hạn: được biểu diễn bởi hình ôvan có ghi chữ bên trong, gồm có nút đầu và nút cuối: BẮT ĐẦU KẾT THÚC Nút thao tác: là một hình chữ nhật có ghi các lệnh cần thực hiện: tăng k Nút nhập/xuất dữ liệu: Đọc a và b 15
- Ngôn ngữ lưu đồ (2) Nút điều kiện: là một hình thoi có ghi điều kiện cần kiểm tra, thường có 1 cung đi vào và 2 cung đi ra (tương ứng với 2 trường hợp đúng/sai) Đúng Sai a
- Ví dụ: lưu đồ biểu diễn thuật toán giải phương trình bậc 2 Bắt đầu Nhập a, b, c sai đúng a 0 Δ = b2 4ac Xuất: : Không phải đúng sai phương trình bậc Δ>0 2 đúng sai x1 = (bsqrt(Δ))/(2*a) Δ=0 x2 = (b+sqrt(Δ))/(2*a) x=b/(2a) Xuấtphương Xuất: phương trình Xuất: phương trình trình vô có 2 nghiệm x1, x2 có nghiệm kép x nghiệm Kết thúc 17
- Mã giả Sử dụng mệnh đề có cấu trúc chuẩn hóa và vẫn dùng ngôn ngữ tự nhiên. Sử dụng các ký hiệu toán học, các biến, cấu trúc kiểu thủ tục. Hành động gán: i i+1 Tiện lợi, đơn giản, vẫn dễ hiểu. 18
- Mã giả (2) Các cấu trúc thường gặp: Cấu trúc chọn: if (điều kiện) then (hành động) end if if (điều kiện) then (hành động 1) else (hành động 2) end if Cấu trúc lặp while (điều kiện) do (hành động) end while repeat (hành động) until (điều kiện) for (biến)=(giá trị đầu) to (giá trị cuối) do (hành động) end for for (biến)=(giá trị cuối) downto (giá trị đầu) do (hành động) end for Cấu trúc nhảy goto nhãn x; 19
- Ví dụ: thuật toán giải phương trình bậc 2 Nhập: các hệ số a, b, c Xuất: kết luận về nghiệm của phương trình bậc hai Thuật toán: if a = 0 then Xuất: Không phải phương trình bậc hai, Dừng end if delta b*b4*a*c if delta > 0 then x1 (bsqrt(Δ))/(2*a) x2 (b+sqrt(Δ))/(2*a) Xuất: x1 và x2, Dừng else if delta = 0 then x12 b/(2*a), Xuất: nghiệm kép x12 else Xuất: phương trình vô nghiệm end if 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 | 6 | 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