Chương 1 giới thiệu tổng quan về giải thuật. Thông qua chương này người học sẽ hiểu được giải thuật là gì, ngôn ngữ lập trình là gì, các đặc điểm cần có của chương trình, các ngôn ngữ lập trình, các môi trường hỗ trợ lập trình,... Mời các bạn cùng tham khảo.
CHƯƠNG TỔNG QUAN VỀ GIẢI THUẬT (6 tiết) LẬP TRÌNH ? CÁC ĐẶC ĐIỂM CẦN CÓ CỦA CHƯƠNG TRÌNH Đúng đắn, xác (correctness) Chắc chắn (robustness) Thân thiện (user friendliness) Khả thích nghi (adapability): Chương trình có khả để phát triển tiến hóa theo yêu cầu Tính tái sử dụng (reuseability): Chương trình dùng để làm phần chương trình lớn khác CÁC ĐẶC ĐIỂM CẦN CÓ CỦA CHƯƠNG TRÌNH (tt) Tính hiệu (efficiency) Tính khả chuyển (porability): Khả chuyển đổi môi trường Tính an toàn (security) Tính dừng (halt) CÁC NGÔN NGỮ LẬP TRÌNH Fortran Pascal Java C C++ C# F# VB.Net … CÁC MÔI TRƯỜNG HỖ TRỢ LẬP TRÌNH Borland C++ Microsoft Visual Basic Microsoft Visual C++ Jbuider Eclipse SDK Visual Net … XÁC ĐỊNH BÀI TOÁN Input -> Process -> Output Giải vấn đề gì? Giả thiết, thông tin cung cấp (dữ liệu đầu vào) Đạt yêu cầu nào? (dữ liệu đầu ra) XÁC ĐỊNH CẤU TRÚC DỮ LIỆU Phải biểu diễn đầy đủ thông tin nhập xuất toán Phù hợp với giải thuật chọn Cài đặt ngôn ngữ lập trình cụ thể TÌM GIẢI THUẬT Giải thuật tập hợp hữu hạn thị hay phương cách định nghĩa rõ ràng cho việc hoàn tất số việc từ trạng thái ban đầu cho trước; thị áp dụng triệt để dẫn đến kết sau dự đoán TÍNH CHẤT CỦA GIẢI THUẬT Tính xác: để đảm bảo kết tính toán hay thao tác mà máy tính thực xác Tính rõ ràng: giải thuật phải thể câu lệnh minh bạch; câu lệnh xếp theo thứ tự định Tính khách quan: Một giải thuật dù viết nhiều người nhiều máy tính phải cho kết Tính phổ dụng: giải thuật không áp dụng cho toán định mà áp dụng cho lớp toán có đầu vào tương tự Tính kết thúc: giải thuật phải gồm số hữu hạn bước tính toán 10 CÁC PHƯƠNG PHÁP CHÍNH BIỂU DIỄN GIẢI THUẬT • Mã tự nhiên • Pseudocode (mã giả) • Flowchart (lưu đồ) Khi thiết kế giải thuật phải mô tả rõ: • Input - Đầu vào • Output - Đầu (kết quả) • Process - Mô tả giải thuật 12 Ví dụ: Tìm ước số chung lớn số nguyên dương a b Đầu vào: số nguyên dương a b Đầu ra: ước số chung lớn a b Giải thuật: Cách 1: Dùng mã tự nhiên Bước 1: Nếu a = b kết luận a ước số chung lớn nhất, kết thúc Bước 2: Nếu a > b a = a – b; Ngược lại b = b – a; Bước 3: Quay trở lại Bước 13 Cách 2: Dùng mã giả (Pseudocode) WHILE a ≠ b DO IF a>b THEN a=a-b ELSE b=b-a ENDIF ENDWHILE 14 Cách 3: Dùng lưu đồ (flowchart) 15 MÔ TẢ GIẢI THUẬT BẰNG PSEUDOCODE Dễ hiểu, không chi tiết đến kỹ thuật lập trình Ở cấp độ tổng quát: gần ngôn ngữ tự nhiên Hoặc chi tiết: dùng ngôn ngữ tựa Pascal, C++, … Các từ khóa –IF THEN …ENDIF –IF THEN ELSE ENDIF –WHILE DO … ENDWHILE –DO … UNTIL –WRITE … –RETURN … 16 MÔ TẢ GIẢI THUẬT BẰNG LƯU ĐỒ (FLOWCHART) Lưu đồ thuật toán công cụ dùng để biểu diễn thuật toán, việc mô tả nhập (input), liệu xuất (output) luồng xữ lý thông qua ký hiệu hình học Phương pháp duyệt lưu đồ – Duyệt từ xuống – Duyệt từ trái sang phải 17 CÁC KÝ HIỆU FLOWCHART Bắt đầu/ kết thúc Điều kiện Rẽ nhánh Giá trị trả Luồng xử lý Điểm nối Khối xử lý Nhập/ Xuất 18 CÁC VÍ DỤ Cho số nguyên n Tính trị tuyệt đối n Giải biện luận phương trình bậc I: ax+b=0 Nhập số nguyên k (k>0), Xuất hình k dòng chữ “Xin chào” Tính tổng: S n ,với n>0 Tính tổng: S (n) (1) n 1 n ,với n>0 Viết chương trình tính tiền cước TAXI Biết rằng: • km đầu tiên là 13000đ • Mỗi km là 12000đ • Nếu lớn 30km thì km thêm sẽ là 11000đ Hãy nhập số km sau in số tiền phải trả.19 HƯỚNG DẪN VÍ DỤ Cho số nguyên n Tính trị tuyệt đối n Đầu vào: Số nguyên n Đầu ra: |n| Giải thuật (Pseudocode): IF n[...]... Giải thuật: Cách 1: Dùng mã tự nhiên Bước 1: Nếu a = b thì kết luận a là ước số chung lớn nhất, kết thúc Bước 2: Nếu a > b thì a = a – b; Ngược lại thì b = b – a; Bước 3: Quay trở lại Bước 1 13 Cách 2: Dùng mã giả (Pseudocode) WHILE a ≠ b DO IF a>b THEN a=a-b ELSE b=b-a ENDIF ENDWHILE 14 Cách 3: Dùng lưu đồ (flowchart) 15 MÔ TẢ GIẢI THUẬT BẰNG PSEUDOCODE Dễ hiểu, không chi tiết đến các kỹ thuật lập trình. .. Xuất 18 CÁC VÍ DỤ 1 Cho số nguyên n Tính trị tuyệt đối của n 2 Giải và biện luận phương trình bậc I: ax+b=0 3 Nhập và số nguyên k (k>0), Xuất ra màn hình k dòng chữ “Xin chào” 4 Tính tổng: S 1 2 3 n ,với n>0 5 Tính tổng: S (n) 1 2 3 4 ( 1) n 1 n ,với n>0 6 Viết chương trình tính tiền cước TAXI Biết rằng: • km đầu tiên là 13 000đ • Mỗi km tiếp theo là 12 000đ • Nếu lớn... km thêm sẽ là 11 000đ Hãy nhập số km sau đó in ra số tiền phải trả .19 HƯỚNG DẪN VÍ DỤ 1 Cho số nguyên n Tính trị tuyệt đối của n Đầu vào: Số nguyên n Đầu ra: |n| Giải thuật (Pseudocode): IF n