Các bước giải quyết vấn đề - bài toán trên máy tính.. KHÁI NIỆM VỀ VẤN ĐỀ - BÀI TOÁN Bài toán và giải quyết bài toán được biểu diễn dưới dạng: giả thiết giải pháp mục tiêu Cần xá
Trang 1TIN HỌC ĐẠI CƯƠNG
www.uit.edu.vn
BÀI 6
PHƯƠNG PHÁP GIẢI CÁC BÀI TOÁN TRONG TIN HỌC
Trang 2c
NỘI DUNG
Khái niệm về vấn đề và bài toán.
Các bước giải quyết vấn đề - bài
toán trên máy tính.
Thuật toán và thuật giải.
Biểu diễn thuật toán và thuật giải.
Trang 3KHÁI NIỆM VỀ VẤN ĐỀ - BÀI TOÁN
Bài toán và giải quyết bài toán được biểu
diễn dưới dạng:
giả thiết giải pháp mục tiêu
Cần xác định A, B, và các thao tác
để đi từ A đến B.
A, B không rõ ràng?
Các điều kiện của cách
Trang 4c
MỘT SỐ NHẬN XÉT
Việc xác định bài toán là rất quan trọng
Thông báo về A và B mang tính biểu
tượng gợi nhớ về giả thiết và mục tiêu
Bước đầu để xác định bài toán và phát
biểu lại theo ngôn ngữ của riêng mình để hiểu
Tiếp theo là tìm hiểu thông tin Input A và
Output B và các mối liên hệ
Thường nên xét một vài trường hợp cụ
thể để hiểu rõ hơn bài toán
Trang 5CÁC BƯỚC GIẢI QUYẾT BT
Bước 1: Xác định vấn đề - bài toán.
Nhằm phát biểu chính xác vấn đề - bài toán, làm rõ những yêu cầu, xác định tính khả thi.
Bước 2: Lựa chọn phương pháp giải.
Thường có nhiều cách khác nhau → Tùy theo nhu cầu thực của bài toán mà chọn lựa p/pháp phù hợp.
Bước 3: Xây dựng thuật toán hoặc thuật giải.
Chi tiết hóa phương pháp đã lựa chọn Thường theo cấu trúc phân tích → Vấn đề TOP-DOWN.
Bước 4: Cài đặt chương trình
Từ thuật giải, dùng NNLT để hiện thực hóa.
Bước 5: Hiệu chỉnh & Thực hiện chương trình
Sửa lỗi, gồm: lỗi cú pháp và lỗi ngữ nghĩa.
Bước 6: Lưu trữ, Bảo trì.
Trang 6c
XÁC ĐỊNH CẤU TRÚC DỮ LIỆU
Niklaus Wirth:
Cấu trúc dữ liệu + Thuật giải = Ch trình
Dữ liệu và cấu trúc dữ liệu đóng vai trò
quan trọng trong việc kết hợp và đưa ra cách giải quyết bài toán
Một số lưu ý về CTDL:
Phải biểu diễn đầy đủ thông tin
Phù hợp các thao tác của thuật toán
Phù hợp điều kiện cho phép của NNLT
Trang 7THUẬT TOÁN VÀ THUẬT GIẢI
Thuật toán: Một dãy hữu hạn các chỉ thị có
thể thi hành để đạt mục tiêu đề ra nào đó
Các đặc trưng của thuật toán:
Tính có đại lượng vào và ra
Tính xác định
Tính đúng đắn
Tính phổ dụng (tổng quát)
Tính hiệu quả: Bộ nhớ, số phép tính,
thời gian chạy, dễ hiểu, dễ cài đặt
Trang 8c
THUẬT TOÁN VÀ THUẬT GIẢI
Thuật giải: Khái niệm mở rộng của thuật
toán
Với một số đặc điểm chẳng hạn:
Có những bài toán không xác định (có)
thuật toán cụ thể
Hoặc có thuật toán nhưng không thực
hiện được (chẳng hạn vì thời gian dài)
Hoặc có cách giải vi phạm thuật toán
nhưng vẫn được chấp nhận
Heuristic: Giải quyết bài toán với kết quả
đúng (gần đúng) trong p vi cho phép
Trang 9BIỂU DIỄN THUẬT TOÁN
Sơ đồ khối
Ngôn ngữ lập trình
Trang 10c
NGÔN NGỮ TỰ NHIÊN
NN tự nhiên thông qua các bước được
tuần tự liệt kê để BD thuật toán
Đơn giản, không cần kiến thức về về
cách biểu diễn (mã giả, lưu đồ, )
Dài dòng, không cấu trúc
Đôi lúc khó hiểu, không diễn đạt
được thuật toán
Trang 11LƯU ĐỒ
Là hệ thống các nút, cung hình dạng khác
nhau thể hiện các chức năng khác nhau
A
B
A
Begin
End
Thực hiện A Gọi hàm A Vào / Ra dữ liệu
Điều kiện rẻ nhánh B
Đúng
Sai
Nút giới hạn bắt đầu / kết thúc chương trình
Trang 12c
LƯU ĐỒ
Tính F = N!
Trang 13MÃ GIẢ
Ngôn ngữ tựa ngôn ngữ lập trình
Dùng cấu trúc chuẩn hóa, chẳng hạn
tựa Pascal, C
Dùng các ký hiệu toán học, biến, hàm
Đỡ cồng kềnh hơn lưu đồ khối
Không trực quan bằng lưu đồ khối
Trang 14c
MÃ GIẢ
Algorithm LargestNumber
Input: Danh sách khác rỗng các con số L
Output: largest - giá trị số lớn nhất trong d sách
L
largest ← L0
for each item in danh sách L ≥1, do
if the item > largest, then
largest ← the item
return largest
“←” thể hiện phép gán
“return” dùng để dừng thuật toán và trả
về giá trị
Trang 15LẬP TRÌNH
Dùng ngôn ngữ máy tính (C, Pascal, ) để
diễn tả thuật toán, CTDL thành câu lệnh
Kỹ năng lập trình đòi hỏi cần học tập và
thực hành (nhiều)
Dùng phương pháp tinh chế từng bước để
chuyển hoá bài toán sang mã chương trình
cụ thể
Trang 16c
THỰC HIỆN VÀ HIỆU CHỈNH CT
Lỗi và cách sửa
Lỗi thuật toán
Lỗi trình tự
Lỗi cú pháp
Xây dựng bộ test
Cập nhật, thay đổi chương trình theo yêu
cầu (mới)
Trang 17TIÊU CHUẨN CỦA CHƯƠNG TRÌNH
Tính tin cậy
Giải thuật + Kiểm tra cài đặt
Tính uyển chuyển
Tính trong sáng
Dễ hiểu và dễ chỉnh sửa
Tính hữu hiệu
Tài nguyên + giải thuật
Trang 18c
QUY TRÌNH LÀM PHẦN MỀM
Specification).
(Operation, follow-up and Maintenance).
Trang 19TÀI LIỆU THAM KHẢO
Trần Đức Huyên, NXB GD, 1997.
( ), DH QG Tp HCM, 2000.
Ngọc, NXB GD, 1996.
BK Tp HCM, 1994.
bằng C, Nguyễn Phúc Trường Sinh, NXB TK,
2002.
Trang 20www.uit.edu.vn