You are on page 1of 4

C T KHNG TNG MINH

15) c t hm tr v s th t ngy trong 1 nm (n > 0)


Days_Of_Month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
CONVERSE_TO_DAY_IN_YEAR (d: N, m: N, y: N) r: N
Pre y > 0 12 m 1 1 d Days_Of_Month (m)
Post ( LA_NAM_NHUAN (y) = false r = ALL_DAYS_OF_ANYMONTH (m -1) + d )
( LA_NAM_NHUAN (y) = true m < 3 r = ALL_DAYS_OF_ANYMONTH (m -1) + d )
( LA_NAM_NHUAN (y) = true m >2 r = ALL_DAYS_OF_ANYMONTH (m -1) + d +1 )
ALL_DAYS_OF_ANYMONTH(month: N) r: N
Pre 1 month 12
Post (month = 1 r = 31)
(month > 1 r = Days_Of_Month (month) + ALL_DAYS_OF_ANYMONTH (month -1) )
LA_NAM_NHUAN (y: N) rs : B
Pre y > 0
Post rs = ( (4 divides y 100 divides y) v (400 divides y))
16. c t hm tr v s ngy ti a ca thng t trong 1 nm (n > 0).
DAYS_IN_MONTH (m: N, y: N) r: N
Pre y > 0 12 m 1
Post (r = 29 m = 2 LA_NAM_NHUAN (y) = true)
(r = Days_Of_Month (m) (m 2 LA_NAM_NHUAN (y) = false) )
17. c t hm tr v s ngy chnh lch t ngy n1/t1 n n2/t2 trong cng nm. (v d: t
ngy 1/1 n ngy 2/1 chnh lch nhau 1 ngy)
DIFFERENCE (d1: N, m1: N, y1: N, d2: N, m2: N, y2: N) r: N
Pre (y1 > 0 12 m1 1 1 d1 Days_Of_Month (m1))
(y2 > 0 12 m2 1 1 d2 Days_Of_Month (m2))
Post r = ABS ( CONVERSE_TO_DAY_IN_YEAR (d1, m1, y1)
CONVERSE_TO_DAY_IN_YEAR (d2, m2, y2) )
ABS(a:Z) rs:Z
Pre
Post (rs =a) ( a >= 0) v (rs = -a) (a < 0)
18. c t hm chuyn i t milimetre sang metre.

CONV_MILIMETRE_TO_METRE (ml: R) r: R
Pre ml 0
Post r * 1000 = ml
19. c t hm tr v s d khi thc hin php chia a/b (xt trn s t nhin).
MOD (y: N, x: N) m: N
Pre (x # 0)
Post: d Z ( y=dx+ m) (0 <= m) ( m < x)
20. c t hm tnh cn bc 2 khng m ca s thc x.
UNSIGN_SQRT (x: R) r: R
Pre x 0
Post r * r = x r 0
21. c t hm kim tra trong mng a cc s nguyn c tn ti s khng m hay khng.
TonTaiSoKhongAm (a: Z*) rs : B
Post (rs = true ^ x elems a x 0 ) v (rs = false ^ x elems a x <0 )
22 c t hm tnh tng gi tr ca 1 mng a cc s thc.
Sum(a: R*) rs : R
Pre
Post (len a = 0 rs = 0)
V ( len a > 0 rs = hd a + Sum(tl a))
23) c t hm tnh tng cc phn t dng trong 1 mng a cc s thc.
TongDuong(a: R*) rs:R
Pre
Post (rs = 0 len (a) = 0)
V ( len a > 0 ) hd a > 0 rs = hd a + TongDuong(tl (a))
V ( len a > 0 hd a <= 0 rs = TongDuong(tl a))
24) c t hm tnh tng cc s nguyn t c trong mng a cc s t nhin.
IsPrime (a: N) rs: B
Pre:
Post: (rs = true ^

x N 1,1< x < a

(rs = false ^ x N 1, 1< x <a

Mod(a, x)

0) v

Mod(a,x) = 0)

Mod(y, x : N) rs : N
Pre: (x > 0 y > 0)
Post: d Z ( y=dx+ m) (0 <= m) ( m < x)
SumPrimeNumber (a: N*) rs: N
Post: (len a = 0 ^ rs = 0) v
(len a > 0 ^
(len a > 0 ^

IsPrime(hd a) = true
IsPrime(hd a) = false

^ rs = hd a + SumPrimeNumber(tl a)) v
^ rs = 0 + SumPrimeNumber(tl a))

25) c t hm kim tra 1 s t nhin x c xut hin trong mng a cc s t nhin hay
khng .
IsExist (x: Z, a: Z*) rs: B
Pre
Post: (rs = false ^ (len a = 0

x a) ) v

(rs = true ^ len a > 0 ^ x a)


26. c t hm tr v ch s u tin (nu c) ca gi tr x trong mng a cc s thc, hoc tr
v gi tr 0 nu khng tn ti gi tr x trong mng a.
FirstIndex (x: Z, a: Z*) rs: inds a {0}
Post: (IsExist(x, a) = false rs = 0)
(IsExist(x,a) = true a(rs) = x
y inds a

(a(y) = x) (y >= rs))

27. c t hm tnh tng cc phn t v tr chn ca mng a cc s thc.


IsEven (n: Z) rs: B
Post: (rs = false
(rs = true

^
^

n mod 2 0) v
n mod 2 = 0)

RipOffOddIndex (a: R*) rs: R*

x inds a.

Post: (
y inds a

IsEven(x) = false ^ a(x)

IsEven(y) = true ^ a(y)

rs

) ^

rs)

SumEvenIndex (a: R*) rs: R


Post: rs = Sum(RipOffOddIndex(a) )
28. c t hm tr v gi tr ln nht trong mng a gm cc s thc.
Max(s: R*) rs: R
Pre: s []
Post: ( ( r = hd s) (len s = 1) )

( ( r = hd s) ( r maxnum (tl s)) )

( ( r > hd s) ( r = maxnum (tl s)) )


29. . c t hm tr v s chn ln nht trong mng cc s nguyn hoc -1 nu khng c s
chn
RipOffOddNumber (a: R*) rs: R*
xa

Post: (
y a

rs

IsEven(x) = false ^ x

IsEven(y) = true ^ y rs)

) ^

MaxEvenNumber(a: R*) rs: R


Post: (len (RipOffOddNumber(a)) = 0 ^ rs = -1)
v
(len (RipOffOddNumber(a)) > 0 ^ rs = Max(RipOffOddNumber(a)))
30. c t hm kim tra xem mng a c phn t trng nhau hay khng.
Duplicate(a: R*) rs: B
Pre: len a > 0
Post: rs = ( i , j inds a a ( i )=a ( j ) ^ i j)

You might also like