Lập Trình Căn Bản * LẬP TRÌNH CĂN BẢN Phần 1 GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT N C Danh * Nội dung chương Từ bài toán đến chương trình Giải thuật Khái niệm giải thuật Các đặc trưng của giải[.]
LẬP TRÌNH CĂN BẢN Phần GIỚI THIỆU VỀ CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT N.C Danh Nội dung chương Từ tốn đến chương trình Giải thuật Khái niệm giải thuật Các đặc trưng giải thuật Ngôn ngữ biểu diễn giải thuật Một số giải thuật Các cấu trúc suy luận giải thuật Từ giải thuật đến chương trình Kiểu liệu Khái niệm ngơn ngữ lập trình Chương trình dịch Từ Bài Tốn Đến Chương Trình Các bước giải toán máy tính Mơ tả bước giải tốn Vẽ sơ đồ xử lý Viết chương trình xử lý ngơn ngữ giả 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 Thực chương trình: nhập vào tham số, nhận kết Giải Thuật Khái niệm giải thuật Các đặc trưng giải thuật Ngôn ngữ biểu diễn giải thuật Một số giải thuật Các cấu trúc suy luận giải thuật Từ giải thuật đến chương trình Khái Niệm Giải Thuật Ví dụ: Hốn đổi chất lỏng bình A (nước mắm) B (rượu): Yêu cầu phải có thêm bình thứ ba gọi bình C Bước 1: Đổ rượu từ bình B sang bình C Bước 2: Đổ nước mắm từ bình A sang bình B Bước 3: Đổ rượu từ bình C sang bình A “Giải thuật dãy thao tác liệu vào cho sau hữu hạn bước ta thu kết toán ” Các Đặc Trưng Của Giải Thuật Tính Số bước hữu hạn Tính kết thúc xác định Máy phải thực Cho kết máy khác Tính phổ dụng Tính hiệu Thời gian Tài nguyên máy Ngôn Ngữ Biểu Diễn Giải Thuật Ngôn ngữ tự nhiên Ngôn ngữ sơ đồ Ngôn ngữ giả Ngôn Ngữ Tự Nhiên Là ngơn ngữ Ví dụ: Giải thuật giải phương trình bậc ax+b=0 Bước 1: Bước 2: Bước 3: Bước 4: Nhận giá trị tham số a, b 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 (a 0) Nếu b t=> pt vô số nghiệm Nếu b khác => pt vô nghiệm ( a khác 0) Ta kết luận phương trình có nghiệm x=-b/a Ngôn Ngữ Sơ Đồ (1) Mô tả giải thuật bằng sơ đồ hình khối (quy ước trước) Ngôn Ngữ Sơ Đồ (2) Ví dụ: Dùng lưu đồ để biểu diễn giải thuật tìm UCLN nêu sau: 10 Một Số Giải Thuật Cơ Bản (1) Ví dụ 1: Yêu cầu: Nhập vào dãy n số hạng a1, a2, , an Tính tổng S: S= a1 + a2 + a3 + + an In S hình 12 Một Số Giải Thuật Cơ Bản (2) Ví dụ 2: Yêu cầu: Nhập vào số a b hệ số pt: ax+b=0 Cho biết nghiệm phương trình 13 Các Cấu Trúc Suy Luận Cơ Bản Của Giải Thuật (1) Giải thuật thiết kế theo cấu trúc suy luận bản: Tuần tự (Sequential): Các công việc thực tuần tự, công việc nối tiếp công việc Cấu trúc lựa chọn (Selection) Lựa chọn công việc để thực vào điều kiện Cấu trúc 1: Nếu < điều kiện> (đúng) thực Cấu trúc 2: Nếu < điều kiện> (đúng) thực , ngược lại (điều kiện sai) thực Cấu trúc 3: Trường hợp < i> thực 14 Các Cấu Trúc Suy Luận Cơ Bản Của Giải Thuật (2) Cấu trúc lặp (Repeating) Lặp lại thực công việc không nhiều lần vào điều kiện Có dạng sau: Lặp với số lần xác định Lặp với số lần không xác định 15 Từ Giải Thuật Đến Chương Trình Cả tập thị (instruction) – làm để giải công việc (task) Giải thuật Nói chuyện với người, dễ hiểu Dùng ngôn ngữ đơn giản (English) – không viết mã Chương trình Nói chuyện với máy tính Có thể xem diễn tả hình thức (formal expression) giải thuật 16 Kiểu Dữ Liệu Ví dụ: int x,y; float r=3.25; “Kiểu liệu tập hợp giá trị có tính chất tập hợp phép tốn thao tác giá trị đó” Có loại Kiểu liệu sơ cấp Kiểu liệu có cấu trúc 17 Kiểu Dữ Liệu Sơ Cấp “Kiểu liệu sơ cấp kiểu liệu mà giá trị đơn nhất” Ví dụ: Kiểu int C kiểu sơ cấp gồm số nguyên từ -32768 32767 phép toán: +, -, *, /, %… 18 Kiểu Dữ Liệu Có Cấu Trúc “Kiểu liệu có cấu trúc kiểu liệu mà giá trị kết hợp giá trị khác” Ví dụ : Kiểu chuỗi ký tự C kiểu có cấu trúc Ví dụ: char *chuoi = “Chao cac ban!”; 19 Ngơn Ngữ Lập Trình Khái niệm ngơn ngữ lập trình Chương trình dịch 20