Bài giảng Tin học đại cương: Chương 7 - Bài toán và thuật toán

59 87 0
Bài giảng Tin học đại cương: Chương 7 - Bài toán và thuật toán

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Bài giảng Tin học đại cương: Chương 7 - Bài toán và thuật toán được biên soạn nhằm cung cấp cho các bạn những kiễn thức về khái niệm vấn đề và bài toán; thuật toán và các phương pháp biểu diễn thuật toán; các bước để giải một bài toán trên máy tính; chuyển đổi bài toán thành chương trình máy tính.

Tin học đại cương Introduction to Information Technology Nhóm biên soạn HP Tin Học Đại Cương Khoa Công Nghệ Thông Tin Trường ĐHSP TP Hồ Chí Minh Bộ mơn Kĩ Thuật Dạy Học Chương 7: Bài toán thuật toán Bản quyền: Khoa CNTT 2011 Giới thiệu  Trong xu hƣớng phát triển xã hội, công nghệ thông tin ngày đóng vai trò quan giúp ngƣời hồn thành cơng việc trở nên nhanh chóng, hiệu dễ dàng thơng qua chƣơng trình ứng dụng máy tính Thuật tốn thuật giải tảng để lập trình viên xây dựng chƣơng trình ứng dụng phù hợp  Đó mục tiêu chƣơng nhằm cung cấp khái niệm ban đâu toán thuật toán Đơng thời đƣa qui trình để giải tốn máy tính nhƣ nào? Bản quyền: Khoa CNTT 2011 Nội dung Chƣơng 7: Bài toán thuật toán  Khái niệm vấn đề và toán  Thuật toán và các phương pháp biểu diễn thuật toán  Các bước để giải tốn máy tính  Chủn đởi bài toán thành chương trình máy tính Bản quyền: Khoa CNTT 2011 Khái niệm vấn đề  Vấn đề thƣờng đƣợc dùng với nghĩa rộng toán, toán vấn đề mà để giải phải liên quan nhiều đến tính tốn  Pitago chia vấn đề mà ngƣời cần giải thành hai loại: Theorema: vấn đề cần khẳng định tính – sai Problema: vấn đề cần tìm giải pháp để để đạt đƣợc mục tiêu từ điều kiện ban đầu Bản quyền: Khoa CNTT 2011 Khái niệm vấn đề (tt)  Theo nhiều kết nghiên cứu: việc giải vấn đề toán mà Pitago nêu diễn theo sơ đồ chung: AB  Trong đó: A giả thiết, điều kiện ban đầu B kết luận, mục tiêu cần đạt  suy luận, giải pháp cần xác định Bản quyền: Khoa CNTT 2011 Ví dụ vấn đề - tốn Bài tốn kiểm tra tính ngun tố  Điều kiện ban đầu: Số nguyên dƣơng N  Mục tiêu cần đạt: N có số ngun tố hay khơng? Bài toán quản lý hồ sơ sinh viên  Điều kiện ban đầu: Hồ sơ gốc sinh viên trƣờng  Mục tiêu cần đạt: Bảng thống kê, phân loại sinh viên theo kết học tập Bản quyền: Khoa CNTT 2011 Bài toán tin học?  Trong thực tế, khơng phải vấn đề tốn có tính tốn (bài tốn tốn học)  Ví dụ:  Làm giao dịch ngân hàng tự động không cần nhân viên  Làm để ngƣời nói chuyện đƣợc với mà không cần phải gặp mặt  Làm để xếp loại học sinh trƣờng học có 3000 học sinh cách nhanh chóng … Tất toán tin học Là vấn đề mà ta muốn máy tính thực để từ liệu vào (Input) ta nhân liệu – thông tin cần thiết (output) Bản quyền: Khoa CNTT 2011 Ví dụ tốn tin học Bài tốn tìm ƣớc chung lớn hai số nguyên dƣơng M,N  Input: Hai số nguyên M,N  Output: ƢCLN Bài tốn xếp thời khóa biểu cho trƣờng học  Input: Tên giáo viên, môn dạy  Output: TKB trƣờng Bài tốn tìm điểm thi đại học thí sinh  Input: Số báo danh  Output: Điểm thi Bản quyền: Khoa CNTT 2011 Giải toán máy tính nhƣ nào? Bài tốn Input Bằng cách ? Output Giải toán Hướng dẫn thao tác cho máy thực Thuật toán Bản quyền: Khoa CNTT 2011 10 Thuật giải (tt)  Từ nhận định ngƣời ta thấy rằng: cần phải có đổi cho khái niệm thuật toán  “Thuật giải”  Thuật giải thuật toán nhƣng đƣợc mở rộng tính chất: Tính xác định Tính đắn Bản quyền: Khoa CNTT 2011 45 Ví dụ thuật giải  Bài tốn nấu cơm • Gạo, củi} • Nấu cơm : –Vo gạo –Chuẩn bị lửa –Nấu, canh giờ –Kết thúc • Nồi cơm chín} TÍNH ĐÚNG Khơng thuật tốn mà thuật giải Bản quyền: Khoa CNTT 2011 46 Ví dụ thuật giải  Bài tốn đở nước Có hai bình đựng nước là B5 có dung tích 5lít , B8 có dung tích 8lít Hãy cách đong để có hai lít nước Các thao tác có thể thực là :  Hứng đầy nƣớc vào bình B5 B8  Đở hết nƣớc bình  Đở nƣớc tƣ̀ bình sang bình khác lúc bình đầy  Tḥt giải :  Đở đầy nước vào bình B5 (B5=5)  Đổ từ bình B5 sang bình B8 (B5=0, B8=5)  Đổ đầy nước bình B5 (B5=5, B8=5)  Đổ nước từ bình B5 B8 đầy (B5=2, B8=8) TÍNH XÁC ĐỊNH VÀ TÍNH ĐÚNG Bản quyền: Khoa CNTT 2011 47 Khái niệm ngơn ngữ lập trình Ơi nhiều việc Con người làm việc ? VẤN ĐỀ NAN GIẢI PP giải (giải thuật) VẤN ĐỀ TƢƠNG TỰ KẾT QUẢ Bản quyền: Khoa CNTT 2011 48 Khái niệm ngơn ngữ lập trình Sự hỗ trợ máy tính VẤN ĐỀ TƢƠNG TỰ Có máy tính Sƣớng thật, làm việc khác thôi! KẾT QUẢ VẤN ĐỀ NAN GIẢI ? PP giải (giải thuật) Bản quyền: Khoa CNTT 2011 49 Khái niệm ngơn ngữ lập trình Sự hỗ trợ máy tính Chƣơng trình biên dịch Giải tốn đây? File Ngơn ngữ máy (Bộ máy NNLT) (exe, dll, com, ) Source code Kiến thức NNLT Cách giải diễn đạt ngôn ngữ tự nhiên Bản quyền: Khoa CNTT 2011 Kiến thức Chun mơn 50 Phân loại ngơn ngữ lập trình  Ngôn ngữ máy  Hợp ngữ  Ngôn ngữ bậc cao Bản quyền: Khoa CNTT 2011 51 Ngôn ngữ máy  Là ngơn ngữ mà máy tính trực tiếp hiểu thực hiện.Mỗi loại máy có ngơn ngữ máy riêng tập hợp dạng câu lệnh  Ưu điểm: cho phép khai thác triệt để và tối ưu khả máy tính  Nhược điểm: khó viết, chương trình nhận cồng kềnh và khó hiệu chỉnh Bản quyền: Khoa CNTT 2011 52 Hợp ngữ (Assembly)  Có cấu trúc giống ngôn ngữ máy Mã lệnh thay tên viết tắt tương ứng Hợp ngữ chạy sau dịch ngôn ngữ máy thông qua chương trình hợp dịch (Assembler)  Ưu điểm: khắc phục nhược điểm ngôn ngữ máy  Nhược điểm: khơng phù hợp với số đơng người lập trình Bản quyền: Khoa CNTT 2011 53 Ngôn ngữ bậc cao  Mô ngôn ngữ tự nhiên, sử dụng ký hiệu tốn học thống chung  Khơng phụ thuộc vào loại máy tính cụ thể  Chỉ chạy sau dịch ngôn ngữ máy thông qua chương trình thông dịch (Interpreter) biên dịch (Compiler)  Ưu điểm: dễ viết, chương trình dễ hiểu, dễ hiệu chỉnh và dễ nâng cấp Bản quyền: Khoa CNTT 2011 54 Chƣơng trình dịch  Là chương trình đặc biệt dùng để chuyển chương trình ngôn ngữ ban đầu (chương trình nguồn) sang chương trình tương đương ngơn ngữ máy  Chương trình dịch chia làm loại:  Kỹ thuật thông dịch (Interpreter)  Kỹ thuật biên dịch (Compiler) Bản quyền: Khoa CNTT 2011 55 Kỹ thuật thơng dịch  Là kiểu dịch dòng lệnh để hiểu công việc cần làm và thực không thiết phải tạo đoạn mã tương đương ngôn ngữ máy  Nếu câu lệnh phải thực nhiều lần thì phải dịch nhiều lần  Ứng dụng: môi trường đối thoại người và hệ thống Bản quyền: Khoa CNTT 2011 56 Kỹ thuật biên dịch  Là kiểu dịch toàn chương trình ban đầu thành chương trình tương ứng ngơn ngữ máy (chương trình đích), sau nạp chương trình đích vào máy tính để thực  Ứng dụng: phù hợp với chương trình ổn định và phải thực nhiều lần Bản quyền: Khoa CNTT 2011 57 Một số ngơn ngữ lập trình thơng dụng  Basic đƣợc thiết kế John G Kemeny Thomas E Kurtz ĐH Dartmouth vào 1963  Pascal đƣợc Niklaus Wirth phát thiết kế năm 1970  C Dennis Richie thiết kế năm 1972 phòng thí nghiệp Bell Telephone hãng AT&T sử dụng hệ điều hành Unix  Java đƣợc phát triễn James Gosling thuộc Sun Microsystem vào 6/1991 Bản quyền: Khoa CNTT 2011 58 THE END Bản quyền: Khoa CNTT 2011 59 ... đƣợc gọi thuật toán tối ưu  Nghiên cứu thuật toán vấn đề quan trọng tin học  Lý thuyết thuật toán giải số vấn đề sau: Những toán giải đƣợc thuật toán, tốn khơng giải đƣợc thuật tốn Tìm thuật. .. geographer He was born around 78 0, in either Khwarizm or Baghdad, and died around 850 11 Khái niệm thuật toán  Thuật toán khái niệm sở toán học tin học  Thuật toán dãy thị rõ ràng thi hành... kế thuật toán  Bƣớc 1: Xác định vấn đề toán (input, output)  Bƣớc 2: Hình thành ý tƣởng để để xây dựng thuật toán (bài toán giải cách nào? Thuật toán dừng nào?)  Bƣớc 3: Xây dựng thuật toán

Ngày đăng: 30/01/2020, 17:59

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan