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 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 toán 4.4 Các phương pháp thiết kế thuật toán TIN HỌC ĐẠI CƯƠNG Phần Giải toán Bài 4: Giải toán Nội dung 4.1 Bài toán (problem) 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 toán 4.4 Các phương pháp thiết kế thuật toán • “Bài toán” hay “Vấn đề” – Vấn đề có nghĩa rộng toán – Bài toán loại vấn đề mà để giải phải liên quan nhiều đến tính toán: toán vật lý, hóa học, xây dựng, kinh tế… • Hai loại vấn đề (Pitago) – 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 toán (2) Nội dung • Biểu diễn vấn đề-bài toán 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 toán 4.4 Các phương pháp thiết kế thuật toá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 4.2 Giải toán máy tính 4.2 Giải toán máy tính (2) • Máy tính 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, 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 • Phương án giải toán gọi thuật toán/giải thuật tính toán • Một thuật toá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) Hai giai đoạn để thực hóa toán • 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ế toán • Lựa chọn phương án giải (thuật toán) • Xây dựng thuật toá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ì Giai đoạn giải vấn đề Giai đoạn thực Nội dung 4.3 Biểu diễn thuật toán 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 toán 4.4 Các phương pháp thiết kế thuật toán • Cách 1: Ngôn ngữ tự nhiên • Cách 2: Ngôn ngữ lưu đồ (lưu đồ/sơ đồ khối) • Cách 3: Mã giả (pseudocode) gọi ngôn ngữ mô chương trình PDL (Programming Description Language) • Cách 4: Các ngôn ngữ lập trình Pascal, C/C++ hay Java Tuy nhiên, không thiết phải sử dụng ký pháp ngôn ngữ mà bỏ số ràng buộc 11 10 12 4.3.1 Ngôn ngữ tự nhiên Ví dụ • Sử dụng loại ngôn ngữ tự nhiên để liệt kê bước thuật toán • Ưu điểm • Bài toán: Đưa kết luận tương quan hai số a b (>, < hay =) – Đầu vào: Hai số a b – Đầu ra: Kết luận a>b hay a b, hiển thị “a>b” kết thúc B3: Nếu a=b, hiển thị “a=b” kết thúc B4: (ab” – Cồng kềnh, đặc biệt với toán phức tạp S a=b Đ Hiển thị “a=b” S Hiển thị “a Max ta gán giá trị cho Max S Hiển thị “Phương trình vô số nghiệm” 25 Ví dụ - Mô tả bước 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 max2 max>8 Kết 5 maxN Hiển thị “Max số lớn nhất” • Ý 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 S > Max Đ Max S ii+1 29 30 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 Tính đắ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 toá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 31 .. .4. 1 Bài toán (2) Nội dung • Biểu diễn vấn đề -bài toán 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 toán 4. 4 Các phương pháp thiết kế thuật... bảo trì Giai đoạn giải vấn đề Giai đoạn thực Nội dung 4. 3 Biểu diễn thuật toán 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 toán 4. 4 Các phương pháp thiết kế thuật toán • Cách... 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 4. 2 Giải toán máy tính 4. 2 Giải toán máy tính (2)