7
BÀI TẬP ĐẶC TẢ 1. Đặc tả tập hợp X gồm các số tự nhiên lẻ trong khoảng từ 100 đến 1000. Không tường minh So_tu_nhien_le (X: N-set) S: N-set Pre X = (100; 1000) Post (r ∈ S) Ù (r ∈ X) Ù (1 = r mod 2) X = {x: N| (x>100) Ù (x<1000) Ù (x mod 2 = 1) } Tường minh So_tu_nhien_le: N N So_tu_nhien_le (r) = (r ∈ X) Ù if (r mod 2 = 1) then r else false 2. Đặc tả tập hợp X gồm các số tự nhiên chẵn trong khoảng từ 100 đến 1000 (không xét 100 và 1000) (tương tự câu 1) 3. Đặc tả tập hợp P các số nguyên tố lớn hơn 100 và nhỏ hơn 65537. Không tường minh Is_prime (P: N-set) r: B Pre P = (100; 65537) Post (r ∈ X) Ù (d > 2 Ù d < r) Ù Ø(d divides r) Tường minh Is_prime: N B

Bài giải môn đặc tả hình thức từ câu 1-15

Embed Size (px)

DESCRIPTION

Bài giải môn đặc tả hình thức từ câu 1-15

Citation preview

BI TP C T1. c t tp hp X gm cc s t nhin l trong khong t 100 n 1000. Khng tng minhSo_tu_nhien_le (X: N-set) S: N-setPreX = (100; 1000)Post(r S) (r X) (1 = r mod 2)X = {x: N| (x>100) (x 2 d < ) (d divides r) Tng minhIs_prime: N BIs_prime (r) = (r > 100 r < 65537) (d > 2 d < ) (d divides r)X = {r:N | (r > 100 r < 65537) (d >= 2 d*d 1000.(tng t cu 4)8. c t pht biu: Tn ti s t nhin x sao cho x l s chn v x l s nguyn t. x : N (x mod 2 = 0) La_so_nguyen_to (x)La_so_nguyen_to (x: N) r: BPretruePost Khng tng minhSo_nguyen_to_chan (x: N-set) r: BPrePostr = (is_prime (x)) (so_tu_nhien_chan (x))Is_prime (x: N) r: B (cu 3)So_tu_nhien_chan (x: N) r: B (cu 2) Tng minhSo_nguyen_to_chan: N NSo_nguyen_to_chan (x) = (is_prime (x)) (so_tu_nhien_chan (x))

9. c t pht biu: Vi bt k s t nhin x v y, tm c s t nhin z sao cho x + y < z. (tim dc ) Khng tng minhSo_lon_hon_tong (x: N-set, y: N-set) z: NPrePost(z N) (x + y < z) Tng minhSo_lon_hon_tong: N N NSo_lon_hon_tong (x, y) = (x + y < z)

10. c t pht biu: Vi bt k s t nhin x v y, lun tm c s t nhin z < x + y.(tng t cu 9)11. c t hm kim tra s thc a ln hn hay bng s thc b hay khng. Khng tng minhIs_greater_than (a: R, b: R) r: BPreTRUEPost(r =TRUE) VA (a b)HOAC R = FALSE VA A < B Tng minhIs_greater_than: R R BIs_greater_than (a, b) (a b)12. c t hm tr v gi tr ln nht trong 3 s thc a, b, c. Khng tng minhMax_number (a: R, b: R, c: R) r: RPrePost(r=a r=b r=c) (r a) (r b) ( r c) Tng minhMax_number: R R R RMax_number (a, b, c) = if ((b > a) ( b> c)) then r = bElseIf (c > a) then r = c else r = a

13. c t hm tr v s nguyn t ln nht khng vt qu s t nhin n cho trc hoc tr v -1 nu khng tm c gi tr cn thit. Khng tng minhIs_prime_max (n: N) r: ZPrePost( (r n) (is_prime (r) (is_prime(i) (i n) (i > r))) ((r Z) (r = -1) (is_prime(i) (i n))) Tng minhIs_prime_max: N ZIs_prime_max (n) = if ((is_prime(i) (i n))) then -1Else r (r n) (is_prime (r) (is_prime(i) (i n) (i > r)

14. c t hm kim tra nm n > 0 c phi l nm nhun hay khng. Khng tng minhNam_nhuan (n: N) r: BPrePostr = (((n mod =0) (n mod 100 = 0)) (n mod 400 = 0)) Tng minhNam_nhuan: N BNam_nhuan (n) = if (((n mod =0) (n mod 100 = 0)) (n mod 400 = 0))then trueelse false15. c t hm tr v s ngy ti a ca mt thng trong 1 nm nhun. Khng tng minhNgay_cua_thang_trong_nam_nhuan (t: N) sn: NPret = {1;.;12}Post(((t = 2) (sn = 29)) ((t = 4) (t = 6) (t = 9) (t = 11) (sn = 30)) ((t = 1) (t = 3) (t = 5) (t = 7) (t = 8) (t = 10) (t = 12) (sn = 31))) Tng minhNgay_cua_thang_trong_nam_nhuan: N NNgay_cua_thang_trong_nam_nhuan (t) =Cases index:( 1, 3, 5, 7, 8, 10, 12 31,4, 6, 9, 11 30,2 29)