Professional Documents
Culture Documents
NGAY ::
Ngay : { 1..31 }
Thang : { 1..12 }
Nam : { y N1 | y >= 000 }
NamNhuan ( nam : N1 ) kq : B
Pre
Post kq = (( 4 mod nam = 0) ( 100 mod nam 0 )) ( 400 mod nam = 0 )
Inv-NGAY ( d : NGAY ) kq : B
Pre
Post kq = ( ( d.thang {1, 3, 5, 7, 8, 10, 12} d.ngay { 1..31 } )
( d.thang {4, 6, 9, 11} d.ngay { 1..30 } )
( d.thang = 2 NamNhuan( d.nam ) d.ngay { 1..29 } )
( d.thang = 2 NamNhuan( d.nam ) d.ngay { 1..28 } )
Bi 72: c t hm tr v ngy tip theo sau 1 ngy cho trc
NgayCuoiCung( d : NGAY ) kq : N1
Pre
Post ( ( d.thang {1, 3, 5, 7, 8, 10, 12} ( kq = 31 ) )
( d.thang {4, 6, 9, 11} ( kq = 30 ) )
( d.thang = 2 NamNhuan( d.nam ) ( kq = 29 ) )
( d.thang = 2 NamNhuan( d.nam ) ( kq = 28 ) )
NgayTiepTheo( d : NGAY ) kq : NGAY
Pre
Post ((d.ngay + 1 < NgayCuoiCung(d)) (kq.ngay = d.ngay + 1) (kq.thang =
d.thang) (kq.nam =
d.nam))
((d.ngay + 1 < NgayCuoiCung(d)) (d.thang 12) (kq.ngay = 1)
(kq.thang = d.thang + 1)
(kq.nam = d.nam) )
((d.ngay + 1 < NgayCuoiCung(d)) (d.thang = 12) (kq.ngay = 1)
(kq.thang = 1) (kq.nam =
d.nam + 1) )
Bi 73: c t hm tr v ngy sau n ngy ca 1 ngy cho trc
// Tr v s thng tng ng vi s ngy
// Tr v s ngy tng ng vi nm
NgayCuaNam( nam : N1 ) kq : N1
Pre
Post (kq = 365) ( NamNhuan(nam) )
(kq = 366) ( NamNhuan(nam) )
// Tnh tng cc ngy trong cc thng, t thng 2 n thng a vo
TongNgayCuaNam ( nam : N1 ) kq : N1
Pre
Post (kq = 0) (nam = 0)
(kq = NgayCuaNam(nam 1) + TongNgayCuaNam(nam 1)) (nam > 0)
// Tnh tng cc ngy trong cc thng, t thng 2 n thng a vo
TongNgayCuaThang ( thang : N1 ) kq : N1
Pre
Post (kq = 0) (thang = 1)
(kq = NgayCuoiCung(thang 1) + TongNgayCuaThang(thang 1))
(thang > 1)
// Tnh tng cc ngy qua, t ngy bt u 1/1/000 n ngy hin ti
TongNgay ( d : NGAY ) kq : N1
Pre
Post kq = (d.ngay - 1) + TongNgayCuaThang( d.thang ) +
TongNgayCuaNam( d.nam )
ChenhLech ( x, y : NGAY ) kq : N
Pre
Post kq = TongNgay(x) TongNgay(y)
Bi 75: Cho bit ngy 12/5/2007 l ngy th by. Hy c t hm tr v th ca 1
ngy cho trc(tr v chui k t)
LayThu (x : N1) kq : char*
Ext rd danhsachthu = [bay, chu nhat, hai, ba, tu, nam, sau]
Pre x 7
Post kq = danhsachthu(x)
TinhThu ( d : NGAY ) kq : char*
Ewt rd macdinh = mk-NGAY(15, 05, 2007)
Pre
Post kq = LayThu( 7 mod ChenhLech ( macdinh, x ) + 1)
GiaTriDonThuc( x : R, d : DONTHUC ) kq : R
Pre
Post kq = d.heso * LuyThua(x, d.somu)
GiaTriDaThuc ( x : R, d : DATHUC ) kq : R
Pre
Post (( len d.donthuc = 0 ) ( kq = 0))
(( len d.donthuc > 0 ) ( kq = GiaTriDonThuc( x, hd d.donthuc ) +
GiaTriDaThuc( x, tl d.donthuc ))
Nghiem ( d : DATHUC ) kq : TAPNGHIEM
Pre
Post ( kq.songhiem = len kq.nghiem ) ( x elems kq.nghiem GiaTriDaThuc( x,
p ) = 0 va
(koTonTai x Kthuoc elems kq.nghiem GiaTriDaThuc(x,p) = 0)
Bi 79: Tnh Gi tr a Thc t mt nghim x0 cho trc
S dng li cc hm trn cho ti hm GiaTriDaThuc
Bi 80: Tnh tch phn xc nh trn [x1, x2]
TichPhan( x1, x2 : R, d : DATHUC ) kq : R
Ext wr dh : DATHUC
Pre
Post ( d = DaoHam( dh ) ) ( kq = GiaTriDaThuc( x2, dh ) GiaTriDaThuc ( x1, dh
))