BÀI TẬP ĐẶC T
1. Đặc t tp hp X gm các s t nhiên l trong khong 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)}
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 tp hp X gm các s t nhiên chn trong khong t 100 đến 1000
(không xét 100 và 1000)
(tương tự câu 1)
3. Đặc t tp hp 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 < 𝑟) (d divides r)
ng minh
Is_prime: N B
Is_prime (r) = (r > 100 r < 65537) (d > 2 d < 𝑟) (d divides r)
X = {r:N | (r > 100 r < 65537) (d >= 2 d*d <= r ) (d divides r)} ( hoi lai
thay)
4. Đặc t phát biu: Vi bt k s t nhiên x, luôn tìm đưc s nguyên l y
không vượt quá x.
x:N y: Z (y< x) La_so_nguyen_le (y)
La_so_nguyen_le (x : N) r : B
Pre true
Post r = (x mod 2 = 1)
Không tường minh
So_nguyen_le_nho_hon (x: N-set) y: Z
Pre
Post (y < x) (r Z) (y mod 2 = 1)
ng minh
So_nguyen_le_nho_hon: N Z
So_nguyen_le_nho_hon (x) = (y < x) (y mod 2 = 1)
5. Đặc t phát biu: Vi bt k s t nhiên x, luôn tìm đưc s t nhiên l y
không vượt quá x.
(tương tự câu 4)
6. Đặc t phát biu: Vi bt k s t nhiên x, luôn tìm đưc s nguyên y nh
hơn x.
(tương tự câu 4)
7. Đặc t phát biu: Tn ti s t nhiên x sao cho x > 1000.
(tương tự câu 4)
8. Đặc t phát biu: Tn ti s t nhiên x sao cho x s chn x s
nguyên t.
x : N (x mod 2 = 0) La_so_nguyen_to (x)
La_so_nguyen_to (x: N) r: B
Pre true
Post
Không tường minh
So_nguyen_to_chan (x: N-set) r: B
Pre
Post r = (is_prime (x)) (so_tu_nhien_chan (x))
Is_prime (x: N) r: B (câu 3)
So_tu_nhien_chan (x: N) r: B (câu 2)
ng minh
So_nguyen_to_chan: N N
So_nguyen_to_chan (x) = (is_prime (x)) (so_tu_nhien_chan (x))
9. Đặc t phát biu: Vi bt k s t nhiên x y, tìm được s t nhiên z sao
cho x + y < z. (tim dc )
Không tường minh
So_lon_hon_tong (x: N-set, y: N-set) z: N
Pre
Post (z N) (x + y < z)
ng minh
So_lon_hon_tong: N × N N
So_lon_hon_tong (x, y) = (x + y < z)
10. Đặc t phát biu: Vi bt k s t nhiên x y, luôn tìm đưc s t nhiên z
< x + y.
(tương tự câu 9)
11. Đặc t hàm kim tra s thc a lớn hơn hay bằng s thc b hay không.
Không tường minh
Is_greater_than (a: R, b: R) r: B
Pre TRUE
Post (r =TRUE) VA (a b)HOAC R = FALSE VA A < B
ng minh
Is_greater_than: R × R B
Is_greater_than (a, b) (a ≥ b)
12. Đặc t hàm tr v giá tr ln nht trong 3 s thc a, b, c.
Không tường minh
Max_number (a: R, b: R, c: R) r: R
Pre
Post (r=a r=b r=c) (r ≥ a) (r ≥ b) ( r ≥ c)
ng minh
Max_number: R × R × R R
Max_number (a, b, c) = if ((b > a) ( b> c)) then r = b
Else
If (c > a) then r = c else r = a
13. Đặc t hàm tr v s nguyên t ln nhất không vượt quá s t nhiên n cho
trưc hoc tr v -1 nếu không tìm đưc giá tr cn thiết.
Không tường minh
Is_prime_max (n: N) r: Z
Pre
Post ( (r n) (is_prime (r) (is_prime(i) (i n) (i > r)))
((r Z) (r = -1) (is_prime(i) (i n)))
ng minh
Is_prime_max: N Z
Is_prime_max (n) = if ((is_prime(i) (i n))) then -1
Else r (r n) (is_prime (r) (is_prime(i) (i n) (i >
r)
14. Đặc t hìm kim tra năm n > 0 có phải là năm nhuận hay không.
Không tường minh
Nam_nhuan (n: N) r: B
Pre
Post r = (((n mod =0) (n mod 100 = 0)) (n mod 400 = 0))
ng minh
Nam_nhuan: N B
Nam_nhuan (n) = if (((n mod =0) (n mod 100 = 0)) (n mod 400 = 0))
then true
else false
15. Đặc t hàm tr v s ngày ti đa ca một tháng trong 1 năm nhun.
Không tường minh
Ngay_cua_thang_trong_nam_nhuan (t: N) sn: N
Pre t = {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)))
ng minh
Ngay_cua_thang_trong_nam_nhuan: N N
Ngay_cua_thang_trong_nam_nhuan (t) =
Cases index:
( 1, 3, 5, 7, 8, 10, 12 31,
4, 6, 9, 11 30,
2 29
)