Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
62,5 KB
Nội dung
PHƯƠNG PHÁP LẬP TRÌNH Nội dung • Một số khái niệm • Nhìn qua mẫu hình lập trình ngơn ngữ học • Lập trình hàm thể NET • Lập trình hướng đối tượng thể ngôn ngữ lập trình phổ dụng • Các phương pháp lập trình Chương Một số khái niệm Một số định nghĩa • • • • • • • Mơ hình tính tốn (computational model) tập giá trị tốn tử Sự tính tính (computation) việc áp dụng chuổi toán tử giá trị để có giá trị khác Chương trình (program) việc định tính tốn Ngơn ngữ lập trình (programming language) ký hiệu để viết chương trình Cú pháp (syntax) ngơn ngữ lập trình xác định cấu trúc dạng chương trình Ngữ nghĩa (semantics) ngơn ngữ lập trình mơ tả quan hệ chuowng trình mơ hình tính tốn Tính hữu dụng (Pragmatics) ngơn ngữ lập trình mơ tả mức độ thành cơng mà ngơn ngữ lập trình đáp ứng mục tiêu mơ hình tính tốn tiện ích lập trình viên 2 Dữ liệu • • • • • • Một chương trình có thẻ xem hàm: Output = Program(Input) Một cách nhìn khác, xem mơ hình cho miền tốn thực chương tình xem sư mơ miền tốn : Program = Model of a problem domain Execution of a program = simulation of the problem domain Dữ liệu (Data): Trong trường hợp đối tượng lêệu xem trung tâm chương trình Các giá trị liệu phân thành nhóm riêng biệt: giá trị đơn (primitive) hỗn hợp (compound) Các giá trị đơn (primitive values) thường giá trị số, logic, ký tự Liên hợp với giá trị đơn thường toán tử (như toán tử số học, toán tử logic ) Các giá trị hỗ hợp (composite values) thường mảng (arrays), ghi (records), giá trị định nghĩa đệ quy (recursively defined values) Liên hợp với giá trị hỗn hợp thường toán tử khởi tạo giá trị, toán tử truy xuất thành phần giá trị Các loại giá trị liệu • • • • • • • • Các giá trị Boolean (biểu diễn giá trị logic, nói sử dụng bit liệu) Các giá trị nguyên (Integer) (miền giá trị phụ thuộc vào số byte sử dụng để lưu trữ) Các số tự nhiên (Natural number) Các số hữu tỷ (Rational number) (được biễu diễn cặp số nguyên) Các giá trị thực (Real number) Các giá trị ký tự (Character) Các giá trị liệt kê (Enumeration) Các kiểu liệu trừu tượng (Abstract data types) (thường sử dụng kiểu trỏ để tham chiếu) Các mơ hình tính tốn Mơ hình hàm (Functional Model) • • • Mơ hình hàm bao gồm tập giá trị, hàm tốn tử hàm Một chương trình tập định nghĩa hàm tính tốn dựa hàm ứng dụng (giá trị biểu thức) Ví dụ: Cơng thức cho độ lệch chuẩn là: N N sd ( x) xi / N xi / N i 1 i 1 • Hàm yêu cầu tính tổng điểm tổng bình phương điểm Người ta áp dụng hai hàm bậc cao map fold Hàm map áp dụng hàm cho phần tử danh sách hàm fold làm giảm danh sách cách áp dụng hàm cho phần tử danh sách, kết hàm phần lại danh sách Chương trình hàm viết sau: sd(xs) = sqrt(v) where n = length( xs ) v = fold( plus, map(sqr, xs ))/n - sqr( fold(plus, xs)/n) Lập trình hàm values functions function definition function application function composition Program = set of function definitions Computation = function application Mơ hình Logic (Logic Model) • • • Bao gồm tập giá trị, định nghĩa quan hệ luật suy diễn Chương trình logic bao gồm định nghĩa quan hệ tính tốn phép thử Ví dụ: Chu vi đường tròn: circle(R, C) if Pi = 3.14 and C = * pi * R Biểu diễn quan hệ R C Ví dụ thưòng sử dụng để hiểu cách suy diễn lập trình logic ví dụ sau đây: human(Socrates) human(Penelope) mortal(X) if human(X) Để xác định xem Socrates Penelope có mortal, người ta xác định: ¬mortal(Y) Cách suy diễn: 1a human(Socrates) Sự kiện (Fact) 1b human(Penelope) Sự kiện (Fact) mortal(X) if human(X) Luật (Rule) ¬mortal(Y) Giả sử (Assumption) 4a X = Y Từ 3 4b ¬human(Y) 5a Y = Socrates Từ 4 5b Y = Penelope Mâu thuẩn 5a, 4b, 1a; 5b, 4b 1b Lập trình logic: values relations logical inference Program = set of relation definitions Computation = constructive proof (inference from definitions) Mơ hình mệnh lệnh (Imperative Model) • Mơ hình mệnh lệnh bao gồm tập giá trị chứa trạng thái toán tử ấn định để thay đổi trạng thái Trạng thái tập cặp tên – giá trị (name-value) biến • Chương trình chuổi ấn định tính tốn chuổi trạng thái Mỗi bước trang tính tốn kết toán tử ấn định Chuổi trạng thái: S0-O0 S1 - Sn-1 -On-1 Sn • Lập trình mệnh lệnh memory cells values commands Program = sequence of commands Computation = sequence of state changes • Ví dụ: Tính chu vi đường tròn: constant pi = 3.14 input (R) C := * pi * R Output (C) • Việc tính tốn u cầu xác định giá trị R pi từ trạng thái sau thay đổi trạng thái C với giá trị constant pi = 3.14 R _|_, C = _|_, pi=3.14 input (R) R x, C = _|_, pi=3.14 C := * pi * R R x, C = × x × pi, pi=3.14 Output (C) R x, C = × x × pi, pi=3.14 ( _|_ ký hiệu giá trị chưa định nghĩa) • Mơ hình mệnh lệnh thường gọi mơ hình thủ tục (procedural model) nhóm tốn tử trừu tượng hoá thành thủ tục 4 Các mẫu hình lập trình • Một mẫu hình lập trình (programming paradigm) kiểu lập trình mà kiểu có tính mẫu hình tiến hành cơng nghệ phần mềm • Một mẫu hình lập trình cung cấp (và xác định) quan điểm mà người lập trình có thực thi chương trình Ví dụ: lập trình hướng đối tượng, lập trình viên xem chương trình tập họp đối tượng có tính tương tác, đó, lập trình hàm, chương trình xem chuỗi đánh giá hàm vơ hướng • Các nhóm khác công nghệ phần mềm đề xướng phương pháp khác nhau, ngơn ngữ lập trình khác (tức mẫu hình lập trình khác nhau) • Một số ngôn ngữ thiết kế để hỗ trợ mẫu hình đặc thù Ví dụ: - Java: hỗ trợ lập trình hướng đối tượng - Haskell: hỗ trợ lập trình hàm - Pascal: hỗ trợ lập trình cấu trúc - Số ngơn ngữ khác lại hỗ trợ nhiều mẫu hình (Python,Common, Lisp) • Một số mẫu hình lập trình cấm thao tác mà ngơn ngữ có (Chẳng hạn, lập trình cấu trúc khơng cho phép xử dụng lệnh goto) • Quan hệ mẫu hình lập trình ngơn ngữ lập trình phức tạp ngơn ngữ hỗ trợ nhiều mẫu hình lập trình Ví dụ: C++ thiết kế để hỗ trợ phần tử lập trình thủ tục, lập trình hướng đối tượng • Mặc dù vậy, người thiết kế người lập trình định làm để xây dựng chương trình dùng phần tử mẫu hình Ví dụ: Người ta viết chương trình hồn tồn theo kiểu lập trình thủ tục C++, viết chương trình hồn tồn hướng đối tượng, hay viết chương trình có phần tử hai mẫu hình • mẫu hình lập trình • • • • Lập trình hàm Lập trình logic Lập trình cấu trúc Lập trình huớng đối tượng Nhìn lại số ngơn ngữ lập trình học • • • • Assembler Turbo –pascal C/C++ VB, C# Đặc điểm • • • • Khai báo kiểu liệu Khai báo biến Viết câu lệnh Một số đặc điểm khác biệt Chương LẬP TRÌNH HÀM ... tên – giá trị (name-value) biến • Chương trình chuổi ấn định tính tốn chuổi trạng thái Mỗi bước trang tính toán kết toán tử ấn định Chuổi trạng thái: S0-O0 S1 - Sn -1 -On -1 Sn • Lập trình... thiết kế để hỗ trợ mẫu hình đặc thù Ví dụ: - Java: hỗ trợ lập trình hướng đối tượng - Haskell: hỗ trợ lập trình hàm - Pascal: hỗ trợ lập trình cấu trúc - Số ngơn ngữ khác lại hỗ trợ nhiều mẫu hình... 3 .14 R _|_, C = _|_, pi=3 .14 input (R) R x, C = _|_, pi=3 .14 C := * pi * R R x, C = × x × pi, pi=3 .14 Output (C) R x, C = × x × pi, pi=3 .14 ( _|_ ký hiệu giá trị chưa định nghĩa) • Mơ hình mệnh