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

Bài giảng Đặc tả hình thức: Chương 5 - PGS.TS. Vũ Thanh Nguyên

51 46 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 51
Dung lượng 895,95 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng Đặc tả hình thức - Chương 5: Đặc tả hàm cung cấp cho người học các kiến thức: Tổng quan về hàm, đặc tả hàm không tường minh, đặc tả hàm tường minh, đặc tả đệ quy và sử dụng hàm phụ, một số cấu trúc điều khiển. Mời các bạn cùng tham khảo.

Trang 1

Chương 5: Đặc tả hàm

PGS.TS Vũ Thanh Nguyên

T rường Đại học Công Nghệ Thông Tin, ĐHQG-HCM

Khoa Công Nghệ Phần Mềm

Trang 3

Tổng Quan Về Hàm

 Hàm là một khái niệm trừu tượng toán học: là ánh xạ giữa haitập giá trị

 function_name: domain → range, ở đó

function_name: tên của hàm

domain: miền xác định của tập giá trị mà ở đó hàm có thểứng dụng

range: phạm vi xác định của tập giá trị mà ở đó hàm chứađựng kết quả của ứng dụng hàm

giữa domain và range cách nhau bằng →

 Nếu miền xác định có từ 2 giá trị trở lên, cần dùng dấu

gcd: N1xN1 → N1

Trang 4

square(i) ≜ i*i

Hàm xác định giá trị tuyệt đối

abs: Z → N

abs(i) ≜ if i<0 then –i else i

Trang 5

Tổng Quan Về Hàm

 Hàm chia hết

divides: N1 N → B

divides(i,j) ≜ j mod i = 0

Sử dụng toán tử dạng infix i divides j

Trang 8

Các phép tổng quát trên ngôn ngữ VDM

Trang 9

Đặc tả hàm

 Ví dụ:

 Hàm luỹ thừa có thể được xác định bằng phương pháp

tường minh bằng hàm exponent_x như sau:

Trang 10

Đặc tả hàm

 Ví dụ:

 Hàm luỹ thừa củng có thể được xác định bằng phương

pháp không tường minh như sau:

EXPONENT(x:Z, n:N)y:Z

pre true

post y=xn

Trang 11

Đặc tả hàm không tường minh

 Đặc tả hàm không tường minh (implicit definition):

 Đặc tả hàm không tường minh mô tả cái được tính toánthay vì định nghĩa trực tiếp vấn đề, chúng ta không phải chỉ

ra kết quả được tính toán như thế nào

 Có nhiều nguyên nhân để chúng ta phải đặc tả không tườngminh Có lẽ nguyên nhân rõ ràng nhất là đặc tả thưởngngắn gọn hơn so với định nghĩa cụ thể

 Đặc tả không tường minh thường có ý nghĩa chính xác vớibài toán mong muốn hơn so với đặc tả tường minh (hay càiđặt)

Trang 12

Đặc tả hàm không tường minh

 Đặc tả hàm không tường minh (implicit definition):

 Vấn đề ý nghĩa nhất là có một đặc tả bao trùm từ cài ngắngọn nhất đến cái được đem mô tả để cài đặt

 Toàn bộ miền này trở nên rõ ràng hơn khi đối tượng dữ liệuđược áp dụng trong đặc tả

 Một trong những thuận lợi của tìm kiếm một đặc tả là nó cóthể mô tả đầy đủ miền giá trị bao trùm cho cài đặt

 Đặc tả không tường minh là cách lưu trữ lại yêu cầu chứcnăng mà không cần bận tâm đến phương thức cụ thể củatính toán Tính chất khác của đặc tả là nó có thể mô tả cácthuộc tính của kết quả cần thiết sao cho người dùng dễ hiểunhất

Trang 13

Đặc tả hàm không tường minh

 Đặc tả hàm không tường minh (implicit definition):

 Đặc tả không tường minh phải thỏa toàn bộ các tính chất

mà người dùng mong muốn trả về kết quả đúng nhất từ đặctả

Trang 14

Đặc tả hàm không tường minh

 Đặc tả hàm không tường minh (implicit definition):

 Phát biểu trạng thái hệ thống trước và sau khi thực hiệnhàm

 Không cần nêu ra các bước để thực hiện xử lý trong hàm

tên_hàm (thamsố1: Kiểu1 , thamsố2: Kiểu2 …) kq: Kiểukq

pre Vị từ pre-condition

post Vị từ post-condition

Trang 15

Đặc tả hàm không tường minh

 Định nghĩa tên hàm, tên và kiểu của các tham số đầu vào, tên

và kiểu của kết quả trả về (tham số đầu ra)

 Vị từ Pre-condition và Post-condition là biểu thức điều kiệnlogic, có thể có giá trị là true hoặc false

 Biểu thức điều kiện có thể chứa một hoặc nhiều vị từ Các

từ được liên kết bởi các phép liên kết logic, lượng từ và cóthể chứa đựng hàm, tham số, hằng số và biến

 Xác định Vị từ Pre-condition để phát biểu điều kiện về giá trịcủa các tham số đầu vào

 Xác định Vị từ Post-condition để phát biểu mối quan hệ giữacác tham số đầu vào với kết quả trả về của hàm

Trang 16

Đặc tả hàm không tường minh

 Các phép liên kết logic của vị từ Pre-condition và condition

Trang 17

Đặc tả hàm không tường minh

 Theo cấu trúc chuẩn của đặc tả hàm không tường minh:

 Mỗi hàm có tối đa 1 kết quả trả về

 Các tham số đầu vào đều là dạng read-only (tham trị)

 Vấn đề: Làm cách nào đặc tả hàm cần trả về nhiều nội dungthông tin?

 Giải pháp: Định nghĩa kiểu cấu trúc để chứa tất cả các thành phần thông tin sẽ trả về (Chương 6)

 Giải pháp khác???

Trang 18

Đặc tả hàm không tường minh

 Hàm được gọi là không tường minh vì vị từ post-conditionkhông có sự giải thích cách thực hiện thuật toán không thể

tự động tính được giá trị đầu ra từ vị từ post-condition đối vớicác giá trị đầu vào được cho

Trang 19

Đặc tả hàm không tường minh

 Các ưu điểm của đặc tả hàm không tường minh

 Sự miêu tả trực tiếp các tính chất mà người sử dụng quantâm

 Mô tả một tập các kết quả có thể bởi vị từ post-condition

 Giá trị tường minh (giá trị true hoặc false) của vị từ condition

pre- Ít xem xét tới đặc tả thuật toán

 Dự kiến cho tên của kết quả

Trang 20

Đặc tả hàm không tường minh

Trang 21

Đặc tả hàm không tường minh

 Ví dụ: hàm tính ước số chung lớn nhất bằng phương phápkhông tường minh sử dụng lượng từ như sau:

 gcd (i:N1, j:N1) r:N1

pre true

post is-common-divisor (i,j,r)

¬ s N1 is-common-divisor (i,j,s) s>r

Trang 22

Đặc tả hàm không tường minh

 Ví dụ: tính căn bật hai của một số nguyên

Trang 23

Đặc tả hàm không tường minh

 Ví dụ: Hàm trả về vị trí xuất hiện đầu tiên của chuỗi pt trong chuỗi cx, hoặc trả về 0 nếu chuỗi pt không xuất hiện trong cx ?

 Thảo luận:?

Trang 24

Đặc tả hàm không tường minh

 Ví dụ: Hàm kiểm tra s có là chuỗi con của t hay không?

Trang 25

Đặc tả hàm không tường minh

 Ví dụ: Hàm kiểm tra chuỗi p có phải là prefix của chuỗi s trong chuỗi t hay không?

is-prefix (p: String, s: String, t: String) r: B

Trang 26

Đặc tả hàm không tường minh

 Ví dụ: Hàm trả về vị trí xuất hiện đầu tiên của chuỗi pt trong chuỗi cx, hoặc trả về 0 nếu chuỗi pt không xuất hiện trong cx

location (pt: String, cx: String) r:

pre pt [] cx []

post ( p String is-shortes-prefix(p, pt, cx) r = (1 + len p))

(r = 0)

Trang 27

Đặc tả hàm tường minh

 Đặc tả hàm tường minh (explicit definition)

 Đặc tả có sử dụng các cấu trúc điều khiển

 Thể hiện cách cài đặt hàm

 Lưu ý:

 Trong đặc tả không tường minh, mọi giá trị thỏa Vị từ condition đều có thể được chấp nhận là kết quả phù hợpcủa hàm

Post- Trong đặc tả tường minh xác định một giá trị cụ thể phùhợp với yêu cầu của hàm

Trang 28

Đặc tả hàm tường minh

 function_name : input_type → output_type

function_name (input_parameter) ≜ expression

hay

 tên-hàm : Tập-nguồn1 Tập-nguồn2 … Tập-đích

tên-hàm (tham-số1, tham-số2, …) ≜ đặc-tả-dạng-giải-thuật

Ở đó chứa đựng tham số, hằng số, hàm, vị từ, hàm xác định bởi người sử dụng

Trang 30

Mối Quan Hệ Giữa Hàm Tường Minh

Và Không Tường Minh

Trang 31

Cấu trúc điều khiển if-then-else

Trang 32

Cấu trúc điều khiển if-then-else

 Ví dụ: hàm tính giai thừa bằng phương pháp tường minh

factorial : N → N

factorial(n) ≜

if n ≥ 1then n factorial(n-1)else 1

Trang 33

Cấu trúc điều khiển if-then-else

Trang 34

Cấu trúc cases

 Cú pháp:

cases index:

( value1, value2 result1,

value3, value4, value5 result2,

Trang 37

end

Trang 40

Đặc tả đệ quy

 Đối với đặc tả hàm tường minh thì kỹ thuật đặc tả đệ quy cũngđược áp dụng Đối với kỹ thuật này chúng ta cần xác địnhđược điều kiện dừng cho hàm cục bộ Kỹ thuật này cũng được

áp dụng đối với đặc tả hàm không tường minh

Trang 44

Khai báo biến tạm bằng let-in

 Trong quá trình đặc tả các hàm cục bộ, chúng ta có thể sửdụng giá trị của một biểu thức lặp đi lặp lại nhiều lần Trongđặc tả hàm đa số các ngôn ngữ đều hỗ trợ ký pháp let in để đặc

tả một biến tạm và biến này được xem như là một định danh

để thay thế giá trị của biểu thức được sử dụng trong hàm cụcbộ

Trang 45

Khai báo biến tạm bằng let-in

cos (sin(x) – 1) / (sin(x) – 1)

Ta có thể đặt biến tạm y và viết lại như sau:

Trang 48

in mk-Celsius ((v-32)*5/9) else t

Trang 50

Khai báo biến tạm bằng let-in

Trang 51

Khai báo biến tạm bằng let-in

Ngày đăng: 20/09/2020, 11:58

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm