Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 34 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
34
Dung lượng
854,5 KB
Nội dung
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 Chương Giải toán (3 tiết LT + tiết BT) Nguyễn Thị Thu Trang trangntt-fit@mail.hut.edu.vn Nội dung 4.1 Bài toán (problem) 4.2 Giải toán máy tính 4.3 Biểu diễn thuật tốn Nội dung 4.1 Bài toán (problem) 4.2 Giải toán máy tính 4.3 Biểu diễn thuật tốn 4.1 Bài tốn (problem) • “Bài tốn” hay “Vấn đề” – Vấn đề có nghĩa rộng tốn – Bài tốn loại vấn đề mà để giải phải liên quan nhiều đến tính tốn: tốn vật lý, hóa học, xây dựng, kinh tế… • Hai loại vấn đề – Theorema: vấn đề cần khẳng định tính sai – Problema: vấn đề cần tìm giải pháp để đạt mục tiêu xác định từ điều kiện ban đầu 4.1 Bài tốn (2) • Biểu diễn vấn đề-bài tốn –A→B • A: Giả thiết, điều kiện ban đầu • B: Kết luận, mục tiêu cần đạt • Giải vấn đề-bài toán – Từ A dùng số hữu hạn bước suy luận có lý hành động thích hợp để đạt B – Trong Tin học, A đầu vào, B đầu Nội dung 4.1 Bài toán (problem) 4.2 Giải tốn máy tính 4.3 Biểu diễn thuật tốn 4.2 Giải tốn máy tính • Máy tính khơng thể dùng để giải vấn đề liên quan đến hành động vật lý biểu thị cảm xúc • Máy tính làm mà bảo phải làm Máy tính khơng thơng minh, khơng thể tự phân tích vấn đề đưa giải pháp • Lập trình viên người phân tích vấn đề, tạo dẫn để giải vấn đề (chương trình), máy tính thực dẫn 4.2 Giải tốn máy tính (2) • Phương án giải toán gọi thuật toán/giải thuật tính tốn • Một thuật tốn là: – dãy hữu hạn thao tác trình tự thực thao tác cho sau thực dãy thao tác theo trình tự ra, với đầu vào (input) ta thu kết đầu (output) mong muốn 4.2 Giải toán máy tính (3) • Khơng đơn giản lập trình • Phức tạp, gồm nhiều giai đoạn phát triển • Các giai đoạn quan trọng – Bước Xác định yêu cầu toán – Bước Phân tích thiết kế tốn • Lựa chọn phương án giải (thuật tốn) • Xây dựng thuật tốn – Bước Lập trình – Bước Kiểm thử hiệu chỉnh chương trình – Bước Triển khai bảo trì Hai giai đoạn để thực hóa tốn Giai đoạn giải vấn đề Giai đoạn thực 10 Ví dụ • Bài tốn: Đưa tổng, tích, hiệu, thương hai số a b – Đầu vào: Hai số a b – Đầu ra: Tổng, tích, hiệu thương a b • Ý tưởng: – Tính tổng, tích, hiệu a b – Nếu b khác 0, đưa thương – Nếu b 0, đưa thông báo không thực phép chia 11/01/17 20 VD2 - Ngôn ngữ tự nhiên (tuần tự bước) • B1: Nhập số a số b • B2: s a + b; d a – b; p a * b • Hiển thị – Tổng s – Hiệu d – Tích p • B3: Nếu b = 0, hiển thị “Không thực phép chia” kết thúc • B4: (b0) Hiển thị “Thương a/b” kết thúc 11/01/17 21 Ví dụ - Mơ tả lưu đồ thuật tốn Nhập a, b Biểu diễn thao tác tính tốn đơn giản phức tạp s a + b; d a – b; p a * b; Hiển thị “Tổng s, Hiệu d, Tích p” b=0 Hiển thị “Không thực phép chia” Hiển thị “Thương a/b” 11/01/17 22 Ví dụ • Bài tốn: Giải phương trình bậc I – Đầu vào: Hai hệ số a, b – Đầu ra: Nghiệm phương trình ax + b = • Ý tưởng: – Lần lượt xét a = xét b = để xét trường hợp phương trình 11/01/17 23 Ví dụ - Mơ tả bước • B1: Nhập a b • B2: Nếu a0 hiển thị “Phương trình có nghiệm x = -b/a” • B3: (a=0) Nếu b hiển thị “Phương trình vơ nghiệm” kết thúc • B4: (a=0)(b=0) Hiển thị “Phương trình vơ số nghiệm” kết thúc 11/01/17 24 Ví dụ - Mơ tả lưu đồ thuật tốn Nhập a b a0 Đ Hiển thị “Nghiệm là: x = -b/a” S b0 Đ Hiển thị “Phương trình vơ nghiệm” S Hiển thị “Phương trình vơ số nghiệm” 11/01/17 25 Ví dụ • Bài tốn: Tìm giá trị lớn dãy số nguyên có N số – Đầu vào: Số số nguyên dương N N số nguyên a1, a2,…, aN – Đầu ra: số nguyên lớn dãy ak, k khoảng [1…N] • Ý tưởng: – Khởi tạo giá trị Max = a1 – Lần lượt so sánh Max với với i=2,3,…, N; > Max ta gán giá trị cho Max 11/01/17 26 Ví dụ – Ý tưởng max max = 3 max N, Hiển thị Max giá trị lớn dãy kết thúc • B4: Nếu > Max, Max ← • B5: Tăng i lên đơn vị • B6: Quay lên B3 • B7: Kết thúc 11/01/17 28 Ví dụ - Mơ tả lưu đồ thuật tốn Nhập N dãy số a1, a2,…,aN Max ← a1; i=2 i>N Đ Hiển thị “Max số lớn nhất” S > Max Đ Max ← S i←i+1 11/01/17 29 Bài tập • Bài tốn: Giải phương trình bậc II – Đầu vào: Ba hệ số a, b, c – Đầu ra: Nghiệm phương trình ax2 + bx + c = • Ý tưởng: – Lần lượt xét a = 0, b = xét c=0 để xét trường hợp phương trình 11/01/17 30 Ví dụ • Bài tốn: Sắp xếp phương pháp tráo đổi (Exchange Sort) – Đầu vào: Dãy A gồm N số nguyên a1, a2,…, aN – Đầu ra: Dãy A dược 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 không lớn số sau ta đổi chỗ chúng cho – Việc lặp khơng có đổi chỗ cho 11/01/17 Copyright by SOICT 31 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 11/01/17 Copyright by SOICT 32 Ví dụ - Mơ tả lưu đồ thuật tốn Nhập N dãy số a1, a2,…,aN M←N MM S > ai+1 Copyright by SOICT ↔ ai+1 Đ 33 Các tiêu chí giải thuật cần thỏa mãn • Tính hữu hạn: giải thuật phải dừng sau thời gian hữu hạn • Khi kết thúc, giải thuật phải cung cấp kết đắn • Tính hiệu quả: – Thời gian tính tốn nhanh – Sử dụng tài nguyên không gian nhớ, thiết bị,… – Mang tính phổ dụng, dễ hiểu, dễ cài đặt mở rộng cho lớp toán khác 11/01/17 34 ...Nội dung 4.1 Bài toán (problem) 4.2 Giải tốn máy tính 4.3 Biểu diễn thuật tốn Nội dung 4.1 Bài toán (problem) 4.2 Giải tốn máy tính 4.3 Biểu diễn thuật tốn 4.1 Bài tốn (problem) • ? ?Bài tốn” hay... để đạt B – Trong Tin học, A đầu vào, B đầu Nội dung 4.1 Bài toán (problem) 4.2 Giải tốn máy tính 4.3 Biểu diễn thuật toán 4.2 Giải toán máy tính • Máy tính khơng thể dùng để giải vấn đề liên... thực hóa tốn Giai đoạn giải vấn đề Giai đoạn thực 10 Nội dung 4.1 Bài toán (problem) 4.2 Giải toán máy tính 4.3 Biểu diễn thuật tốn 11 4.2 Biểu diễn thuật tốn • Cách 1: Ngơn ngữ tự nhiên • Cách