Upload
hotkutepro
View
7
Download
1
Embed Size (px)
DESCRIPTION
Bài giải môn đặc tả hình thức từ câu 91-95
Citation preview
BI TP C T HNH THC TUN 1
BI TP C T HNH THC TUN 10S dng cc kiu d liu sau cho cc cu t 91 n 95:SN-VN-NG ::
tn-Sn: char*
sc-cha: 1T-S ::
s-bn-thng-i-nh :
s-bn-thng-i-khch :
I-BNG ::
tn-i: char*
sn-nh: SN-VN-NGTRN-U::
i-nh: I-BNG
i-khch: I-BNG
vng-thi-u: 1
t-s: T-S
Ghi ch: Mi i bng thi u ng 2 trn vi cc i cn li (mt trn lt i trn sn khch, mt trn lt v trn sn nh ca chnh mnh).
91. c t hm tnh s trn thng ca mt i bng trong gii v ch
i-nh-thng (trn-u: TRN-U) kq: BPretruePostkq = trn-u . t-s . s-bn-thng-i-nh > trn-u . t-s . s-bn-thng-i-khchi-khch-thng (trn-u: TRN-U) kq: BPretruePostkq = trn-u . t-s . s-bn-thng-i-nh < trn-u . t-s . s-bn-thng-i-khchL-i-nh (i: I-BNG, trn-u: TRN-U) kq: BPretrue
Postkq = ( i = trn-u . i-nh )L-i-khch (i: I-BNG, trn-u: TRN-U) kq: BPretrue
Postkq = ( i = trn-u . i-khch )Thng (i: I-BNG, trn-u: TRN-U) kq: BPretruePostkq = ( (L-i-nh (i, trn-u) i-nh-thng (trn-u))
(L-i-khch (i, trn-u) i-khch-thng (trn-u)) )S-trn-thng (i: I-BNG, lch-thi-u: TRN-U*) kq: PretruePost(kq = 1 + S-trn-thng (i, tl lch-thi-u) Thng (i, hd lch-thi-u))
(kq = S-trn-thng (i, tl lch-thi-u) Thng (i, hd lch-thi-u))
(kq = 0 lch-thi-u = [])
92. c t hm tnh s trn ha ca mt i bong trong gii v ch
Ha (trn-u: TRN-U) kq: BPretruePostkq = ( trn-u . t-s . s-bn-thng-i-nh = trn-u . t-s . s-bn-thng-i-khch )S-trn-ha (i: I-BNG, lch-thi-u: TRN-U*) kq: Pretrue
Post(kq = 1 + S-trn-ha (i, tl lch-thi-u) Ha ( hd lch-thi-u) (L-i-nh (i, hd lch-thi-u) L-i-khch (i, hd lch-thi-u)))
(kq = S-trn-ha (i, tl lch-thi-u) (Ha ( hd lch-thi-u) (L-i-nh (i, hd lch-thi-u) L-i-khch (i, hd lch-thi-u)))
(kq = 0 ( lch-thi-u = [])
93. c t hm tnh im ca mt i bng vi quy nh: mi trn thng c 3 im, mi trn ha c 1 im, mi trn thua khng c im.
S-im (i: I-BNG, lch-thi-u: TRN-U*) kq: Pretrue
Postkq = S-trn-ha (i, lch-thi-u) + 3* S-trn-thng (i, lch-thi-u)
94. c t hm tnh hiu s bn thng bi ca mt i bong.
S-bn-thng-trong-trn (i: I-BNG, trn-u: TRN-U) kq: PretruePost(L-i-nh (i, trn-u) kq = trn-u . t-s . s-bn-thng-i-nh )
(L-i-khch (i, trn-u) kq = trn-u . t-s . s-bn-thng-i-khch ) ( (L-i-nh (i, trn-u) L-i-khch (i, trn-u)) kq = 0)
S-bn-thua-trong-trn (i: I-BNG, trn-u: TRN-U) kq: PretruePost(L-i-nh (i, trn-u) kq = trn-u . t-s . s-bn-thng-i- khch )
(L-i-khch (i, trn-u) kq = trn-u . t-s . s-bn-thng-i- nh )
( (L-i-nh (i, trn-u) L-i-khch (i, trn-u)) kq = 0)S-bn-thng (i: I-BNG, lch-thi-u: TRN-U*) kq: Pretrue
Post(kq = S-bn-thng-trong-trn (i, hd lch-thi-u) + S-bn-thng (i, tl lch-thi-u))
(kq = 0 len lch-thi-u = 0) S-bn-thua (i: I-BNG, lch-thi-u: TRN-U*) kq: Pretrue
Postkq = S-bn-thua-trong-trn (i, hd lch-thi-u) + S-bn-thua (i, tl lch-thi-u)
(kq = 0 len lch-thi-u = 0)Hiu-s-bn-thng-bi (i: I-BNG, lch-thi-u: TRN-U*) kq: Z
Pretrue
Postkq = S-bn-thng (i, lch-thi-u) S-bn-thua (i, lch-thi-u)
95. c t hm sp hng cc i bng theo im gim dn. Nu nhiu i cng im th xt tip cc tiu ch sau: hiu s bn thng bi (gim dn), s bn thng (gim dn), kt qu trn i khng trc tip.
Thua (i: I-BNG, trn-u: TRN-U) kq: BPretrue
Postkq = ( (L-i-nh (i, trn-u) i-khch-thng (trn-u) )
(L-i-khch (i, trn-u) i-nh-thng (trn-u)) )Hng-cao-hn (i-1: I-BNG, i-2: I-BNG, lch-thi-u: TRN-U*) kq: BPretrue
Postkq = (S-im (i-1, lch-thi-u) > S-im (i-2, lch-thi-u))
( (S-im (i-1, lch-thi-u) = S-im (i-2, lch-thi-u)) (Hiu-s-bn-thng-bi (i-1, lch-thi-u) > Hiu-s-bn-thng-bi (i-2, lch-thi-u) (Hiu-s-bn-thng-bi (i-1, lch-thi-u) = Hiu-s-bn-thng-bi (i-2, lch-thi-u) (S-bn-thng (i-1, lch-thi-u) > S-bn-thng (i-2, lch-thi-u) (S-bn-thng (i-1, lch-thi-u) = S-bn-thng (i-2, lch-thi-u) ( (i inds lch-thi-u ( Thng (i-1, lch-thi-u(i)) Thua (i-2, lch-thi-u(i)) ??? )) ) ) ) ) Xp-hng (ds-i: I-BNG*, lch-thi-u: TRN-U*) kq-xphng: I-BNG*
Preelems ds-i = elems kq-xphng len ds-i = len kq-xphngPost (i [1,.., (len ds-i ) 1] ( Hng-cao-hn (ds-i(i), ds-i(i+1), kq-xphng)S dng kiu d liu di y cho cu 96 v 97:
Xt mt h iu hnh n gin. Cho trc c t cc kiu d liu biu din thng tin ca 1 tin trnh v ReadyList nh sau:
PROCESS_ID = PROCESS_INFO ::
pID : PROCESS_ID
CPUBurstTime: READY_LIST = PROCESS_INFO*
Cho trc bin ton cc ready-List : READY_LIST96. Hy c t hm FIFOScheduler cho php chn ra tin trnh theo chin lc FIFO vi thng tin cc tin trnh ang ch s dng CPU trong ready-List.
FIFOScheduler () pID: PROCESS_ID97. Hy c t hm SJFScheduler cho php chn ra tin trnh theo chin lc SJF (Shortest Job First) vi thng tin cc tin trnh ang ch s dng CPU trong ready-List. Nu c nhiu tin trnh c cng thi gian thc thi (CPUBurstTime) ngn nht bng nhau th u tin chn tin trnh c thi gian ngn nht xut hin trc trong ready-List.
SJFScheduler () pID: PROCESS_ID
98. T nh ngha kiu d liu TOWER_STATE biu din 1 trng thi ca bi ton Thp H Ni vi 3 ct (A, B, C) v n a (nh s t 1 n n, a 1 < a 2 < < a n). c t iu kin rng buc i vi kiu d liu ny (ghi ch: vi mi ct, a di phi ln hn a trn)COLUMN_STATE = N*inv-COLUMN_STATE: COLUMN_STATE ( Binv-COLUMN_STATE (cs)
( i, j ( inds cs ( i > j ( cs(i) > cs(j)TOWER_STATE ::
Column-A: COLUMN_STATE
Column-B: COLUMN_STATE
Column-C: COLUMN_STATE inv- TOWER_STATE : TOWER_STATE ( Binv- TOWER_STATE (ts) let ac = ts . Column-A ts . Column-B ts . Column-C in
len ac = card elems ac
99. c t thao tc MoveAB thc hin vic di chuyn 1 a (trn cng) t ct A sang ct B. Lu ch x l nu ct A c t nht 1 a, v a trn cng ca ct A phi nh hn a trn cng ca ct B, hoc ct B cn trng.MoveAB(S0: TOWER_STATE) S1: TOWER_STATEPretrue
Post(S1 . Column-A = tl S0 . Column-A ) (S1 . Column-B = hd S0 . Column-A S0 . Column-B )100. Gi s c sn cc c t ca cc thao tc di chuyn 1 a (trn cng) t ct ny sang ct khc.MoveAB(S0: TOWER_STATE) S1: TOWER_STATEMoveBA(S0: TOWER_STATE) S1: TOWER_STATEMoveAC(S0: TOWER_STATE) S1: TOWER_STATEMoveCA(S0: TOWER_STATE) S1: TOWER_STATEMoveBC(S0: TOWER_STATE) S1: TOWER_STATEMoveCB(S0: TOWER_STATE) S1: TOWER_STATEHy c t hm bin i t trng thi S0 sang trng thi Sn cho trc.