1. Trang chủ
  2. » Luận Văn - Báo Cáo

KHÁI NIỆM cơ bản về GIẢI THUẬT và CHƯƠNG TRÌNH

18 1 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

Nội dung

LẬP TRÌNH CĂN BẢN KHÁI NIỆM CƠ BẢN VỀ GIẢI THUẬT VÀ CHƯƠNG TRÌNH Giảng viên: TS Trương Quốc Bảo NỘI DUNG CỦA CHƯƠNG  Từ toán đến chương trình  Khái niệm thuật tốn/Giải thuật (Algorithm)  Các tính chất thuật tốn  Các phương pháp biểu diễn thuật toán  Các cấu trúc suy luận giải thuật  Các kiểu liệu  Ngơn ngữ lập trình Thursday, January 15, 2015 Lập trình TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH  Giả sử cần viết chương trình để giải tốn đó, ta thực hiện:  Công việc phải hiểu biết cách giải tốn lời giải thơng thường người làm toán Nghĩa ta phải biết giải trình bày lời giải cho tốn theo cách thơng thường  Lập trình cho máy tính giải toán  Trong nhiều trường hợp, từ toán thực tế phải xây dựng mơ hình tốn xác định bước để giải lập trình giải tốn máy tính Thursday, January 15, 2015 Lập trình TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH  Để giải tốn máy tính (lập trình cho máy tính giải) cần phải thực qua bước như:  Mơ tả bước giải tốn  Vẽ sơ đồ xử lý dựa bước  Dựa sơ đồ xử lý để viết chương trình xử lý ngơn ngữ giả (ngơn ngữ bình thường + kết hợp với NN lập trình)  Chọn ngơn ngữ lập trình chuyển chương trình từ ngơn ngữ giả sang ngơn ngữ lập trình để tạo thành chương trình hồn chỉnh  Thực chương trình: nhập vào tham số, nhận kết tốn Thursday, January 15, 2015 Lập trình TỪ BÀI TỐN ĐẾN CHƯƠNG TRÌNH Thursday, January 15, 2015 Lập trình THUẬT TỐN (GIẢI THUẬT) - ALGORITHM  Thuật toán/ Giải thuật (algorithm) tập hợp dãy hữu hạn bước, bước mô tả xác phép tốn, hành động cần thực ta lời giải toán  Thuật toán Euclide  Input: số nguyên dương m n  Output: g (ước chung lớn m n)  Bước 1: Tìm r, phần dư m cho n  Bước 2: Ta xét   Thursday, January 15, 2015 Lập trình Nếu r = 0, trả kết g = n Dừng Ngược lại, ta thực gán n = m, m = r quay lại bước CÁC TÍNH CHẤT CỦA THUẬT TỐN  Input: Mỗi thuật tốn có tập giá trị đầu vào (có thể rỗng)  Output: Mỗi thuật tốn có tập liệu đầu (output), tương ứng với liệu vào input  Tính xác định: Các bước thuật toán phải xác định (các thao tác phải rõ ràng, khơng gây nhập nhằng)  Tính hữu hạn: Với liệu vào (hợp lệ), thuật toán phải dừng lại sau số hữu hạn bước thực Thursday, January 15, 2015  Tính xác: Thuật toán phải tạo giá trị đầu xác tương ứng với giá trị đầu vào Trong điều kiện hai xử lý thực thuật toán phải cho kết  Tính khả thi: Các phép tốn có mặt thuật tốn phải đủ đơn giản, thực lượng thời gian hữu hạn  Tính tổng quát: Phải áp dụng cho lớp tốn loại Lập trình TÍNH GIẢI ĐƯỢC CỦA THUẬT TỐN  Một tốn:  Có nhiều thuật tốn giải  Giải  Lựa chọn thuật toán o Thời gian, o Bộ nhớ,… o Tính đơn giản thuật tốn,…  Khơng tồn thuật tốn để giải  Vấn đề khơng giải (bằng thuật tốn)  Ví dụ: o KHƠNG CĨ Thuật tốn thắng cho người thứ hai trị chơi cờ ca rơ đối kháng đối thủ o KHƠNG CĨ Thuật tốn xem máy Turing có dừng lại sau n bước hay khơng Thursday, January 15, 2015 Lập trình CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ tự nhiên  Ngôn ngữ tự nhiên ngôn ngữ sử dụng, sử dụng ngôn ngữ tự nhiên để mô tả giải thuật giống ví dụ thuật tốn Euclide  Ví dụ: Ta có giải thuật giải phương trình bậc có dạng a*x + b = sau:  Bước 1: Nhận giá trị tham số a, b  Bước 2: Xét giá trị a xem có hay khơng? Nếu a=0 làm bước 3, a khác khơng làm bước  Bước 3: (a 0) Nếu b ta kết luận phương trình vơ số nghiệm, b khác ta kết luận phương trình vơ nghiệm  Bước 4: ( a khác 0) Ta tính x=-b/a kết luận phương trình có nghiệm x Thursday, January 15, 2015 Lập trình CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ lưu đồ (Flowchart)  Ngôn ngữ lưu đồ (sơ đồ) ngôn ngữ đặc biệt dùng để mô tả giải thuật sơ đồ hình khối Mỗi khối qui định hành động Thursday, January 15, 2015 Lập trình 10 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ lưu đồ (Flowchart)  Vẽ lưu đồ giải thuật cho phép nhập vào giá trị a, b mang ý nghĩa hệ số a, b phương trình bậc Dựa vào giá trị a, b cho biết nghiệm phương trình bậc ax + b = Begin Bước 1: Nhận giá trị Nhập a, b tham số a, b Bước 2: Xét a=0 làm bước 3, a khác khơng a=0 làm bước No Bước 3: Nếu b ta kết luận phương trình vơ số nghiệm, x=-b/a b khác ta kết luận phương trình vơ nghiệm Xuất x Bước 4: ( a khác 0) Ta tính x=-b/a kết luận phương trình có nghiệm x End Thursday, January 15, 2015 Lập trình Yes Yes b=0 No Vơ nghiệm Vô số nghiệm 11 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Một giải thuật tìm ước chung lớn hai số a b là:  Ngôn ngữ tự nhiên:    Bước 1: Nhập vào hai số a b Bước 2: So sánh số a,b chọn số nhỏ gán cho UCLN Bước 3: Nếu hai số a b khơng chia hết cho UCLN thực bước 4, ngược lại (cả a b chia hết cho UCLN) thực bước  Bước 4: Giảm UCLN đơn vị quay lại bước  Bước 5: In UCLN - Kết thúc Thursday, January 15, 2015 Lập trình 12 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TOÁN  Một giải thuật tìm ước chung lớn hai số a b là:  Ngôn ngữ lưu đồ: Thursday, January 15, 2015 Lập trình 13 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ưu điểm  Trình bày trực quan giải thuật  Độc lập với ngôn ngữ tự nhiên  Độc lập với ngơn ngữ lập trình  Bảo đảm khả lập trình  Cho phép dễ dàng kiểm tra giải thuật  Khuyết điểm  Tương đối cồng kềnh phức tạp với toán lớn  Nguyên tắc kiểm tra  Đi từ BEGIN theo đường phải đến điểm dừng END  Khơng có quay vịng vĩnh viễn  Khơng có kết thúc lưng chừng Thursday, January 15, 2015 Lập trình 14 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ giả (pesudo code):  Dùng kết hợp ngôn ngữ tự nhiên cấu trúc ngơn ngữ lập trình  Ngơn ngữ giả tựa ngơn ngữ lập trình (Pascal, C,…),  Dùng ký hiệu toán học (biến, hàm,…)  Ưu điểm:  Đỡ cồng kềnh sơ đồ khối  Khuyết điểm  Không trực quan sơ đồ khối Thursday, January 15, 2015 Lập trình 15 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ giả (pesudo code):  Một số quy ước:  Lệnh gán: = (hoặc AB)  Lệnh so sánh: ==, !=  Sử dụng biểu thức toán học  Khai báo hàm (thuật toán) Thuật toán () Input Output End Thursday, January 15, 2015 Lập trình 16 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ giả (pesudo code):  Sử dụng cấu trúc:     Cấu trúc tuần tự: S1; S2;…; Sn; Cấu trúc lựa chọn: If … then… [else …] end if Cấu trúc lặp:  For … do… end  While… do… end  Do… while (…) end Một số câu lệnh khác:  Trả kết về: return (giá trị)  Câu lệnh gọi hàm: Tên hàm () Thursday, January 15, 2015 Lập trình 17 CÁC PHƯƠNG PHÁP BIỂU DIỄN THUẬT TỐN  Ngơn ngữ giả (pesudo code):  Ví dụ viết thuật tốn tìm số lớn mảng Bước ban đầu Gán amax = phần tử đầu tiên; Lần lượt so sánh amax với phần tử khác mảng; If (phần tử xét > amax) then Gán amax = phần tử xét; end if So sánh amax với phần tử mảng; Lặp lại bước so sánh xét hết mảng; Return (amax); Lập trình Thursday, January 15, 2015 Bước tinh chế amax = a0; i = 1; While (i

Ngày đăng: 07/12/2022, 15:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w