Bài giảng Tin học đại cương - Phần 2: Giải quyết bài toán - Trương Diệu Linh

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  
@it-hut.edu..vn  
GIẢI QUYẾT BÀI TOÁN  
1. Chương 1: Giải quyết bài toán  
• 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  
• Phương pháp giải quyết bài toán bằng MT  
2. Chương 2: Thuật toán  
• Khái niệm  
• Biểu diễn thuật toán  
• Thuật toán đệ quy  
• Thuật giải heuritic  
• Một số thuật toán thông dụng  
Chương 1: Giải quyết bài toán  
1. Khái niệm về bài toán  
2. Quá trình giải quyết bài toán bằng  
má y tí nh  
3. Phương pháp giải quyết bài toán  
bằng máy tính  
Problem - Bài toán hay vấn đề?  
Vấn đề thường được dùng với ý  
nghĩa rộng hơn bài toán  
(Socrate 470-399 TCN )  
• Bài toán là vấn đề mà để giải quyết  
phải liên quan ít nhiều đến tính toán  
Bài toán trong vật lý, hóa học, xây dựng,  
kinh tế,…  
Phân loại vấn đề - (Pytago)  
Theorema: Vấn đề cần khẳng định  
đúng sai  
Chứng minh các định lý trong toán học  
Problema: Vấn đề cần tìm giải pháp để  
đạt mục tiêu xác định từ những điều  
kiện ban đầu  
Bài toán dựng hình, tìm đường đi ngắn  
nhất, tổng hợp chất hóa học…  
Biểu diễn bài toán (tiếp)  
Trong tin học  
A B  
A: Input  
B: Output  
: Chương trình cho phép biến đổi A  
thành B .  
Chương trình  
• Chương trình  
– Cách mã hóa lại thuật toán/thuật giải để  
giải quyết vấn đề/bài toán đã cho  
– Tạo thành từ các lệnh cơ bản của máy  
tí nh  
• Khó khăn  
– Tính không xác định của vấn đề/bài toán  
• A và B không đầy đủ, rõ ràng  
Cu trúc dliu + Gii thut = Chương trình  
Gii quyết một vấn đề trên máy tính  
Thiết kế thuật giải  
Thực hiện bởi con người  
– Là cách thức chủ yếu, dựa trên  
• Những thông tin được phản ánh rõ ràng trong A,  
B hoặc  
• Các tri thức của con người  
Tự động hóa xây dựng thuật giải  
– Lĩnh vực mới, đang được nghiên cứu  
– Cần phải biểu diễn nội dung và các tri thức liên  
quan dưới dạng tương minh và đầy đủ  
Chương 1: Giải quyết bài toán  
1. Khái niệm về bài toán  
2. Quá trình giải quyết bài toán bằng  
má y tí nh  
3. Phương pháp giải quyết bài toán  
bằng máy tính  
Máy tính & Lập trình viên  
Má y tí nh  
– Chỉ làm được những gì được bảo.  
Khô ng thô ng minh: không thể tự phân tích vấn  
đề và đưa ra giải pháp.  
– Không thể dùng giải quyết các vấn đề liên quan  
đến hành động vật lý hoặc biểu thị cảm xúc  
• Lập trình viên  
– Phân tích vấn đề  
– Tạo ra các chỉ dẫn để giải quyết vấn đề (chương  
trình). Máy tính sẽ thực hiện các chỉ dẫn đó.  
Các bước giải quyết bài toán  
1. Xác định bài toán  
2. Lựa chọn phương pháp giải  
3. Xây dựng thuật toán hoặc thuật giải  
4. Cài đặt chương trình  
5. Hiệu chỉnh chương trình  
6. Thực hiện chương trình  
1. Xác định bài toán  
• Mô tả bài toán cần giải quyết  
Dữ liệu vào: Danh sách các dữ kiện vào  
Điều kiện vào: Ràng buộc, quan hệ giữa chúng  
Dữ liệu ra: Danh sách các dữ liệu ra  
Điều kiện ra: Ràng buộc, quan hệ giữa chúng  
• Đánh giá, nhận định tính khả thi của bài toán  
– Thời gian, kinh phí, nguồn lực,…  
Ví dụ: Bài toán tìm ƯSCLN của 2 số nguyên dương  
Nhập: 2 số X, Y  
Điều kiện nhập: X, Y nguyên dương  
Dữ liệu ra: Z  
Điều kiện ra: Z là ƯSCLN(X,Y)  
2. Lựa chọn phương pháp giải  
• Tồn tại nhiều phương pháp khác nhau  
– Khác nhau về thời gian thực hiện, chi phí lưu  
trữ dữ liệu, độ chính xác…  
• Tùy theo nhu cầu cụ thể và khả năng xử lý  
tự động được sử dụng để lựa chọn  
phương pháp thích hợp  
Ví dụ: Bài toán sắp xếp dãy số  
– Nổi bọt, Vun đống, Sắp xếp nhanh,…  
3. Xây dựng thuật giải  
• Xây dựng mô hình chặt chẽ, chính xác và chi tiết  
cho phương pháp đã lựa chọn  
• Lặp liên tiếp các bước sau để thuật toán ngày  
càng hoàn chỉnh hơn (quá trình tinh chỉnh từng  
bước)  
1. Xác định và chính xác hóa các thao tac  
– Để đạt được kết quả cần làm gì?  
2. Xác định các dữ liệu cần dùng và tính chất của chúng  
– Để thực hiện, thao tác cần gì và sẽ tạo ra gì?  
3. Xác định trình tự các thao tác  
– Thao tác nào cần làm trước  
– Thao tác thực hiện 1 hay nhiều lần, thực hiện trong  
điều kiện nào..?  
3. Xây dựng thuật giải (tiếp)  
Quá trình tinh chỉnh từng bước dừng lại khi  
– Yêu cầu cho biết 1 hay nhiều đại lượng  
– Tính một đại lượng theo công thức đã biết rõ  
– Thông báo một hay nhiều kết quả đã xử lý  
• Sau khi tinh chỉnh cần phải diễn tả giải  
thuật dưới dạng chuẩn  
– Ngôn ngữ liệt kê các hành động  
– Sơ đồ khối  
4. Cài đặt chương trình  
Mã hóa giải thuật bằng một ngôn ngữ  
lập trình  
• Thay thế các thao tác bằng các lệnh tương  
ứng của ngôn ngữ sử dụng  
Thao tá c: In ra mô t thô ng bá o  
Câu lệnh: printf(“….”); write(“…..”);  
• Lựa chọn ngôn ngữ lập trình, tùy theo bài  
toán giải quyết  
– NNLT bậc thấp: Hợp ngữ  
– NNLT bậc cao: C, Pascal, Java,..  
5. Hiệu chỉnh chương trình  
Chạy thử để phát hiện và điều chỉnh các  
sai sót có thể có ở bước 4.  
– Lỗi cú pháp:  
• Viết sai cú pháp của ngôn ngữ lập trình  
lựa chọn  
– Lỗi ngữ nghĩa  
• Mã hóa sai giải thuật  
• Giải thuật sai  
6. Thực hiện chương trình  
• Cho máy tính thực hiện chương trình.  
• Tiến hành phân tích kết quả thu được  
– kết quả đó có phù hợp hay không.  
– Không phù hợp kiểm tra lại toàn bộ  
các bước.  
Các giai đoạn giải quyết bài toán  
1. Giai đoạn quan niệm :  
– Gồm các bước xác định bài toán,, lựa  
chọn mô hình, xây dựng thuật giải, cài  
đặt chương trình  
2. Giai đoạn khai thác và bảo trì  
– Gồm các bước hiệu chỉnh và thực hiện  
chương trình  
– Nhằm đáp ứng nhu cầu về cải tiến, mở  
rộng chương trình do các yếu tố của bài  
toán ban đầu có thể thay đổi.  
Ví dụ  
Tính diện tích hình thang khi biết 4 cạnh  
b
a
c
d
Mô tả bài toán  
• Nhập: 4 cạnh a, b, c, d  
• Điều kiện nhập: a, b, c, d > 0 và d > b  
• Xuất: Một giá trị số  
• Điều kiện xuất: Diện tích hình thang  
Tải về để xem bản đầy đủ
ppt 100 trang baolam 9560
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Tin học đại cương - Phần 2: Giải quyết bài toán - Trương Diệu Linh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pptbai_giang_tin_hoc_dai_cuong_phan_2_giai_quyet_bai_toan_truon.ppt