1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Cơ sở lập trình Thuật toán (Algorithm)

40 4 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 663,56 KB

Nội dung

Thuật Toán (Algorithm) Trịnh Tấn Đạt Khoa CNTT - Đại Học Sài Gòn Email: trinhtandat@sgu.edu.vn Website: https://sites.google.com/site/ttdat88/ Nội dung  Vấn đề, toán  Thuật toán o Khái niệm o Các đặc trưng thuật toán o Phương pháp biểu diễn thuật toán : mã giả, lưu đồ khối  Giải tốn máy tính Vấn đề, tốn  Vấn đề (issue/problem): o Những vướng mắc, khó khăn sống mà ta cần giải  Bài toán (problem): o Một loại vấn đề mà để giải quyết, cần đến tính tốn (phép tốn số, luận lí, quan hệ) o Khi giải tốn, cần quan tâm 02 yếu tố: đầu vào (input) đầu (output) Giải vấn đề, toán  Bất kỳ vấn đề, tốn ngồi đời chia thành trình tự nhiều cơng việc nhỏ  Trình tự cơng việc nhỏ gọi giải thuật giải cơng việc ngồi đời  Mỗi cơng việc nhỏ chia nhỏ cịn phức tạp, Ví dụ: ???  Vấn đề mấu chốt việc dùng máy tính giải cơng việc ngồi đời lập trình Thuật tốn Thuật tốn (Algorithm):  Là cách biểu diễn lời giải "bài tốn“ rõ ràng (khơng mập mờ), chi tiết để thực thi máy tính  Là dãy hữu hạn bước nhằm xác định thao tác mà máy tính thực cho sau khoảng thời gian hữu hạn (có tính dừng) cho kết Ví dụ: Bài tốn giải phương trình bậc (1 ẩn ; ax + b = 0) Ví dụ:  Thuật toán giải PT bậc nhất: ax + b = (a, b số thực) Đầu vào: a, b thuộc R Đầu ra: nghiệm phương trình ax + b = • Nếu a = • b = phương trình có nghiệm • b ≠ phương trình vơ nghiệm • Nếu a ≠ • Phương trình có nghiệm x = -b/a Các đặc trưng thuật toán  Tính hữu hạn: có hữu hạn bước phải dừng  Tính xác định: bước rõ ràng, thực thi  Tính đúng: q trình thực thi theo bước phải đến kết ý  Tính hiệu quả: khối lượng, khơng gian, thời gian tính tốn khơng q “lớn”  Tính tổng quát: áp dụng cho trường hợp tốn Ví dụ – Một lớp học cần chọn lớp trưởng theo bước: Lập danh sách sinh viên Sắp thứ tự Chọn người đứng đầu làm lớp trưởng – Danh sách cần gì? – Sắp theo thứ tự nào? (tăng giảm, tiêu chí nào) – Nếu trùng tiêu chí giải sao? Ví dụ Sửa lại: a) Lập danh sách theo: họ tên, ngày tháng năm sinh, điểm mơn, điểm trung bình cuối năm b) Sắp xếp theo ĐTB giảm Nếu ĐTB  hạng c) Nếu có 01 HS đứng đầu  chọn, ngược lại chọn người có điểm tốn cao nhất, khơng chọn  bốc thăm  Phân biệt mập mờ lựa chọn có định: – Mập mờ thiếu thơng tin có nhiều lựa chọn không đủ điều kiện định, ví dụ: bước 1, – Lựa chọn có định hoàn toàn xác định điều kiện cụ thể vấn đề, ví dụ bước c Ví dụ  Tính thực thi được, ví dụ: – Tính  10 ? – Chạy xe thẳng từ ĐHSG đến sân bay TSN?  Tính dừng, ví dụ: – B1 nhập n; – B2 s=0; – B3 i=1; – B4 i=n+1 sang B8, ngược lại sang B5 – B5 cộng i vào s – B6 cộng vào i – B7 quay lại B4 – B8 Tổng cần tính s Cài đặt thuật tốn C/C++ #include #include int main() { int a, b; printf("Nhap a, b: "); scanf("%d %d", &a, &b); if (a == 0) if (b == 0) printf(“Phương trình VSN”); else printf(“Phương trình VN”); else printf(“x = %.2f”, -float(b)/a); return 0; } Ví dụ  Chuẩn bị cà phê Ví dụ  Tính tốn nghiệm x = -b/a Cộng hai số c = a+b Ví dụ  Kiểm tra số a b giống hay khác Ví dụ  Kiểm tra điểm thi có hợp lệ hay khơng? Ví dụ  Kiểm tra số o Số dương o Số âm o hay Ví dụ  Xếp lon bia vào thùng (tối đa chứa 24 lon) Giải toán máy tính  Các bước giải vấn đề, tốn máy tính điện tử (MTĐT): 1) Xác định vấn đề, toán: xác định rõ yêu cầu tốn, tốn cho (Input) u cầu tìm (Output) 2) Lựa chọn phương pháp giải: Có thể có nhiều cách khác để giải tốn Các phương pháp khác thời gian thực hiện, chi phí lưu trữ liệu, độ xác, … => tùy theo nhu cầu cụ thể mà chọn phương pháp giải thích hợp Giải tốn máy tính 3) Xây dựng thuật tốn: xây dựng mơ hình chặt chẽ, xác chi tiết cho phương pháp giải chọn Xác định rõ ràng liệu vào, cho bước thực trật tự thực bước Nên áp dụng phương pháp thiết kế có cấu trúc, từ thiết kế tổng thể tiến hành làm mịn dần bước 4) Cài đặt chương trình: mơ tả thuật giải chương trình Dựa vào thuật giải xây dựng, quy tắc ngôn ngữ lập trình để soạn thảo chương trình thể giải thuật thiết lập bước Giải tốn máy tính 5) Hiệu chỉnh chương trình: Cho chương trình chạy thử để phát điều chỉnh sai sót tìm thấy Có hai loại lỗi: lỗi cú pháp lỗi ngữ nghĩa 6) Thực chương trình: Cho MTĐT thực chương trình Tiến hành phân tích kết thu Việc phân tích kết nhằm khẳng định kết có phù hợp hay khơng Nếu khơng, cần kiểm tra lại tồn bước lần Từ toán đến chương trình Giải thuật Thiết kế Bài tốn thực tế - Mơ hình tốn - Chọn kiểu liệu, cấu trúc liệu - Thiết kế giải thuật - Dùng Mã giả (Pseudocode) - Dùng flowchart Đánh giá Phân tích, đánh giá thuật toán -Độ phức tạp - Cải tiến thuật tốn Giải thuật tốt/tối ưu Coding Ngơn ngữ lập trình C/C++ Java Python … Từ tốn đến chương trình  Chương trình (Program)  Là tập hợp mô tả, phát biểu, nằm hệ thống qui ước ý nghĩa thứ tự thực hiện, nhằm điều khiển máy tính làm việc Theo Niklaus Wirth thì: Chương trình = Thuật tốn + Cấu trúc liệu  Các thuật tốn chương trình có cấu trúc dựa cấu trúc điều khiển bản: o Tuần tự (Sequential): Các bước thực cách xác từ xuống, bước thực lần o Chọn lọc (Selection): Chọn hay nhiều thao tác để thực o Lặp lại (Repetition): Một hay nhiều bước thực lặp lại số lần Ôn Tập Thuật tốn gì? Trình bày tính chất quan trọng thuật toán? Các bước xây dựng chương trình (giải tốn máy tính)? Các cách biểu diễn thuật toán? Ưu khuyết điểm phương pháp? Cho ví dụ minh họa Bài Tập  Viết mã giả vẽ lưu đồ thuật tốn cho chương trình sau: Đổi từ tiền VND sang tiền USD Tính điểm trung bình học sinh gồm mơn Tốn, Lý, Hóa Giải phương trình bậc 2: ax2 + bx + c = Đổi từ độ sang radian đổi từ radian sang độ (công thức / = a/180, với : radian, a: độ) Kiểm tra số a, b giống hay khác Nhập năm sinh người Tính tuổi người Nhập số a b Tính tổng, hiệu, tính thương hai số Nhập bán kính đường trịn Tính chu vi diện tích hình trịn Nhập vào số ngun Tính max hai số 10 Giải hệ phương trình bậc hai ẩn Bài tập  Nâng cao: Vẽ lưu đồ thuật tốn cho chương trình sau: Nhập vào số nguyên dương n Tính tổng S = + + + + … + n Nhập vào số nguyên dương n Kiểm tra n có phải số nguyên tố hay không?

Ngày đăng: 16/12/2023, 20:14