Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 17 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
17
Dung lượng
264 KB
Nội dung
Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT Âãư thi säú SE99 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian 90 Ngy thi : I Âàûc t (Specification) Cho ma tráûn vng A cáúp n×n Viãút âàûc t thãø hiãûn : a) Mäùi pháưn tỉí trãn âỉåìng chẹo chênh l pháưn tỉí låïn nháút trãn cng hng âi qua pháưn tỉí âọ b) Mäùi pháưn tỉí trãn âỉåìng chẹo phủ l pháưn tỉí nh nháút trãn cng cäüt âi qua pháưn tỉí âọ II Láûp trçnh cáúu trục Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : Âụng C1 Sai S1 Sai Âụng C2 S2 III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1 v S2 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Thåìi gian 90 Âãư thi säú SE98 I Âàûc t (Specification) Mäüt xáu (string) w âỉåüc gi l âäúi xỉïng (palindrome) nãúu w = wR hay âc xi ngỉåüc âc ngỉåüc âãưu (wR l xáu âo ngỉåüc ca w) Vê dủ cạc xáu omo, mannam, âãưu l âäúi xỉïng Viãút âàûc t thãø hiãûn cạc xáu âäúi xỉïng II Láûp trçnh cáúu trục (Structured programming) Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : S1 Sai C1 Âụng S2 C2 Sai Âụn g III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1 v S2 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Thåìi gian 90 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : I Âãư thi säú SE97 Âàûc t (Specification) Âa thỉïc cáúp n âỉåüc viãút dỉåïi dảng Toạn hc l : Pn(x) = a0 + a1x1 + a2x2 + + anxn Viãút âàûc t thãø hiãûn phẹp cäüng v phẹp so sạnh hai âa thỉïc Pn(x) v Qm(x) II Láûp trçnh cáúu trục (Structured programming) Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût III gi Khoa CNTT−ÂTVT Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1, S2 v S3 Trçnh by mäüt phỉång phạp thỉí nghiãûm âån thãø Sai C1 Khäng sỉí dủn g ti liãûu Âụng Ghi säú âãư thi vo bi lm Näüp lải âãư thi S1 C2 Sai S3 Âụng S2 TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Thåìi gian 90 I Khoa CNTT−ÂTVT Âãư thi säú SE96 Âàûc t (Specification) Âa thỉïc cáúp n âỉåüc viãút dỉåïi dảng Toạn hc l : Pn(x) = a0 + a1x1 + a2x2 + + anxn Viãút âàûc t thãø hiãûn phẹp nhán âa thỉïc våïi mäüt hàòng säú a × Pn(x), phẹp nhán hai âa thỉïc Pn(x) × Qm(x) II Láûp trçnh cáúu trục (Structured programming) Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : S1 C1 Âụn g Sai S2 C2 Sai S3 Âụn g III gi Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1, S2 v S3 Trçnh by mäüt phỉång phạp thỉí nghiãûm âån thãø Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Thåìi gian 90 I Âãư thi säú SE95 Âàûc t (Specification) Cạc phán säú (hay säú hỉỵu t) âỉåüc biãøu diãùn båíi danh ( n, d), våïi n l tỉí säú v d l máùu säú, l nhỉỵng säú ngun ( d ≠ 0) Viãút âàûc t xáy dỉûng cạc hm xỉí l phán säú: rụt gn, trỉì, chia v so sạnh hai phán säú II Láûp trçnh cáúu trục (Structured programming) Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : S1 Sai C1 S2 Âụng C2 Sai Âụng S3 III Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1, S2 v S3 Trçnh by mäüt phỉång phạp thỉí nghiãûm âån thãø gi Âụng Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi C1 Thåìi gian 90 I Âàûc t (Specification) Sai Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Âãư thi säú SE94 S1 Saisạch ( n, d), våïi n l tỉí säú v d l máùu säú, l nhỉỵng säú ngun ( d ≠ 0) Cạc phán säú (hay säú hỉỵu t) âỉåüc biãøu diãùn båíi danh Viãút âàûc t xáy dỉûng cạc hm xỉí l phán säú : cäü C2ng, nhán hai phán säú v chuøn âäøi phán säú thnh säú thỉûc II Láûp trçnh cáúu trục (Structured programming) Âụng Viãút lãûnh bàòng gi ngỉỵ (phng Pascal), chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn if v làûp (whilerepeat), theo så âäư khäúi dỉåïi âáy : S2 TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT III Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cho cáu II l âån thãø gi âãún cạc âån thãø S1 v S2 Trçnh by mäüt phỉång phạp thỉí nghiãûm âån thãø gi ÂÃƯ ÂÃƯA1 A1 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi ÂÃƯ THI LÁƯN Ngy 14/12/1999 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 − Khäng sỉí dủn g ti liãûu I Âàûc t (Specification) Mäüt xáu (string) âỉåüc gi l âäúi xỉïng nãúu cạc k tỉû cạch âãưu âáưu xáu v cúi xáu l giäúng Vê dủ cạc xáu a, bab, aabbaa âãưu l âäúi xỉïng Hy viãút âàûc t thãø hiãûn cạc xáu âäúi xỉïng, tỉì âọ chuøn thnh mäüt th tủc Pascal (hồûc C) II Ngän ngỉỵ âàûc t RAISE (RSL) Âãø âënh nghéa kiãøu complex cho cạc säú phỉïc x + yi (i2 = −1), RSL sỉí dủng dảng (x, y) Gi sỉí zero biãøu diãùn säú phỉïc + 0i Hy biãøu diãùn cạc säú phỉïc sau âáy : • Phẹp Add âãø cäüng hai säú phỉïc v phẹp Sub âãø trỉì hai säú phỉïc • Phẹp Mult âãø nhán hai säú phỉïc Näüp lải âãư thi cng bi lm KHOA CÄNG NGHÃÛ THÄNG TIN ÂÃƯ ÂÃƯB2 B2 I TRỈÅÌNG ÂẢI HC K THÛT - ÂẢI HC  NÀƠNG ÂÃƯ THI LÁƯN Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 − Khäng sỉí dủn g ti liãûu Ngy 14/12/1999 Âàûc tí (Specification) Cho ma tráûn vng A cáúp N × N Viãút âàûc t thãø hiãûn mäùi pháưn tỉí trãn âỉåìng chẹo chênh ca ma tráûn A chênh l täøng ca táút c cạc pháưn tỉí trãn mäùi hng v trãn mäùi cäüt âi qua pháưn tỉí âọ nhỉng khäng cäüng pháưn tỉí âọ, tỉì âọ chuøn thnh mäüt th tủc Pascal (hồûc C) II Ngän ngỉỵ âàûc t RAISE (RSL) Viãút mäüt biãøu thỉïc RSL thãø hiãûn ràòng khäng täưn tải mäüt säú ngun låïn nháút Âiãưn vo chäù cn thiãúu (cọ âàût dáúu ) âënh nghéa hm dỉåïi âáy cho phẹp kiãøm tra mäüt säú tỉû nhiãn â cho cọ l chàơn khäng : is_even : Nat → Bool is_even(n) ≡ ÂÃƯ ÂÃƯC3 C3 Näüp lải âãư thi cn g bi lm ÂÃƯ THI LÁƯN Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 − Khäng sỉí dủn g ti liãûu Ngy 14/12/1999 I Âàûc t (Specification) Viãút âàûc t thãø hiãûn phẹp cäüng v phẹp nhán hai âa thỉïc cọ báûc n v m l P n(x) v Qm(x) Cho biãút cạch chuøn thnh mäüt th tủc Pascal (hồûc C) II Ngän ngỉỵ âàûc t RAISE (RSL) Sỉí dủng RSL âãø viãút mäüt âån thãø cọ tãn CIRCLE gäưm cạc âënh nghéa hm diãûn têch Area v chu vi Circumference ca mäüt âỉåìng trn tám O cọ toả âäü (x, y) v bạn kênh r Cọ thãø viãút âënh nghéa hm theo nhỉỵng cạch khạc ? Näüp lải âãư thi cn g bi lm TS Phan Huy Khạnh ÂÃƯ ÂÃƯD4 D4 I 08/05/2017 ÂÃƯ THI LÁƯN Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 − Khäng sỉí dủn g ti liãûu Âàûc tí (Specification) Mäüt xáu (string) w âỉåüc gi l palindrome nãúu w = wR (wR l xáu âo ngỉåüc ca w) TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Ngy 14/12/1999 Âải hc  Nàơng, trỉåìng Âải hc K thût Vê dủ xáu madam l palindrome Khoa CNTT−ÂTVT Viãút âàûc t thãø hiãûn cạc xáu palindrome, tỉì âọ chuøn thnh mäüt th tủc Pascal (hồûc C) II Ngän ngỉỵ âàûc t RAISE (RSL) Sỉí dủng cạc lãûnh gạn v lãûnh làûp RSL âãø viãút mäüt âån thãø cọ tãn EXPONENT hm m e x ? Thê sinh khäng âỉåüc sỉí dủn g ti liãûu , ghi säú âãư thi vo bi lm v näüp lải âãư thi cn g bi lm I Âãư thi láưn Låïp 97T1,2CÂCN, ngy 21/01/2000 Âãư Âãư Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM − Thåìi gian lm bi 60 1205 1205 Âàûc t (Specification) Mäüt xáu (string) l âäúi xỉïng nãúu cạc k tỉû cạch âãưu âáưu v cúi xáu l giäúng Vê dủ xáu 1234321 l âäúi xỉïng Viãút âàûc t thãø hiãûn cạc xáu âäúi xỉïng II Láûp trçnh cáúu trục (Structured programming) Viãút cạc cáu lãûnh Pascal (hồûc C) theo så âäư khäúi bãn âáy Âụn Sai g S1 C1 III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l mäüt âån thãø gi âãún cạc âån thãø S1 v S2 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi C2 Âụng S2 Sai Thê sinh khäng âỉåüc sỉí dủn g ti liãûu , ghi säú âãư thi vo bi lm v näüp lải âãư thi cn g bi lm ÂẢI HC  NÀƠNG TRỈÅÌNG ÂẢI HC K THÛT I Âãư Âãư 1207 1207 KHOA CÄNG NGHÃÛ THÄNG TIN Âãư thi láưn Låïp 97T1,2CÂCN, ngy 21/01/2000 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM − Thåìi gian lm bi 60 Âàûc t (Specification) Mäüt xáu (string) w âỉåüc gi l palindrome nãúu w = wR R (w l xáu âo ngỉåüc ca w) Vê dủ xáu madam l palindrome Viãút âàûc t thãø hiãûn cạc xáu palindrome S1 II Láûp trçnh cáúu trục (Structured programming) Viãút cạc cáu lãûnh Pascal (hồûc C) theo så âäư khäúi bãn âáy C1 III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l mäüt âån thãø gi âãún cạc âån thãø S1 v S2 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi Sai Âụng S2 C2 Sai Âụn g Thê sinh khäng âỉåüc sỉí dủn g ti liãûu , ghi säú âãư thi vo bi lm v näüp lải âãư thi cn g bi lm Âãư A Âãư thi láưn Låïp 96T1,2, ngy 23/01/1999 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 Khäng mang ti liãûu vo phng thi TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût I Âàûc t (Specification) Khoa CNTT−ÂTVT Mäüt xáu (string) l âäúi xỉïng nãúu cạc k tỉû cạch âãưu âáưu v cúi xáu l giäúng Vê dủ xáu 1234321 l âäúi xỉïng Viãút âàûc t thãø hiãûn cạc xáu âäúi xỉïng II Láûp trçnh cáúu trục (Structured programming) u cáưu viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy Sai C1 Âụn g III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l mäüt âån thãø gi âãún cạc âån thãø S1, S2 v S3 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi S2 S1 Sai C3 Sai C2 Âụng Âụng S3 TS Phan Huy Khạnh ÂẢI HC  NÀƠNG TRỈÅÌNG ÂẢI HC K THÛT Âãư Âãư I B B KHOA CÄNG NGHÃÛ THÄNG TIN Âãư thi láưn Låïp 96T1,2, ngy 23/01/1999 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 Khäng mang ti liãûu vo phng thi Âàûc t (Specification) Mäüt xáu (string) w âỉåüc gi l palindrome nãúu w = wR (wR l xáu âo ngỉåüc ca w) Vê dủ xáu madam l palindrome Viãút âàûc t thãø hiãûn cạc xáu palindrome Âụn g II Láûp trçnh cáúu trục (Structured programming) u cáưu viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy III Thỉí nghiãûm chỉång trçnh (Testing) Gi sỉí chỉång trçnh cho cáu II l mäüt âån thãø gi âãún cạc âån thãø S1, S2 v S3 Trçnh by mäüt phỉång phạp âãø thỉí nghiãûm âån thãø gi 90 90Phụt Phụt ÂÃƯ ÂÃƯ A A I Sai C1 Sai S2 S1 C2 C3 Âụng Âụng Sai S3 Låïp 94T, ngy 23/07/1998 Âãư thi láưn Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Âàûc t (Specification) Âa thỉïc cáúp n âỉåüc viãút dỉåïi dảng Toạn hc l Pn(x) a0 + a1x1 + a2x2 + + anxn Viãút âàûc t thãø hiãûn phẹp cäüng v phẹp nhán hai âa thỉïc Pn(x) v Qm(x) II Láûp trçnh cáúu trục (Structured programming) u cáưu viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy C1 Âụn g Sai S1 Sai S2 C3 C2 Sai Âụng S3 Âụng Phan Huy Khạnh KHOA CÄNG NGHÃÛ THÄNG TIN 90 90Phụt Phụt TRỈÅÌNG ÂẢI HC K THÛT - ÂẢI HC  NÀƠNG TS.Phan ÂÃƯHuyAKhánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com ÂÃƯ A Âải hc  Nàơng, trỉåìng Âải hc K thût Âãư thi láưn Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM I Khoa CNTT−ÂTVT Låïp 94T, ngy 23/07/1998 Âàûc t (Specification) Âa thỉïc cáúp n âỉåüc viãút dỉåïi dảng Toạn hc l Pn(x) = a0 + a1x1 + a2x2 + + anxn Viãút âàûc t thãø hiãûn phẹp cäüng v phẹp nhán hai âa thỉïc Pn(x) v Qm(x) II Láûp trçnh cáúu trục (Structured programming) u cáưu viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy Sai C1 Âụn g Sai S2 S1 Sai C3 C2 Âụng S3 Âụng 90 90Phụt Phụt ÂÃƯ ÂÃƯ A A ÂÃƯ THI KÃÚT THỤC MÄN HC CÄNG NGHÃÛ PHÁƯN MÃƯM I Âàûc t (Specification) Cho ma tráûn vng A cáúp NxN gäưm cạc säú thỉûc Viãút âàûc t thãø hiãûn mäùi pháưn tỉí trãn âỉåìng chẹo phủ ca ma tráûn A chênh l têch ca táút c cạc pháưn tỉí trãn hng v trãn cäüt âi qua pháưn tỉí âọ nhỉng khäng nhán pháưn tỉí âọ II Láûp trçnh cáúu trục (Structured programming) u cáưu : Viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy Chuøn vãư dảng chè sỉí dủng hai cáúu trục tưn tỉû v làûp kiãøm tra âiãưu kiãûn trỉåïc (while) theo âënh l Bolm v Jacopini Sai C1 Âụn g S1 Sai C2 S2 Sai C3 Âụng Âụng Phan Huy Khạnh 5/8/2017 KHOA CÄNG NGHÃÛ THÄNG TIN TRỈÅÌNG ÂẢI HC K THÛT - ÂẢI HC  NÀƠNG 90 90Phụt Phụt ÂÃƯ ÂÃƯ B B ÂÃƯ THI KÃÚT THỤC MÄN HC CÄNG NGHÃÛ PHÁƯN MÃƯM I Âàûc t (Specification) Cho ma tráûn vng A cáúp NxN gäưm cạc säú ngun Viãút âàûc t thãø hiãûn mäùi pháưn tỉí trãn âỉåìng chẹo chênh ca ma tráûn A thç täøng táút c cạc pháưn tỉí trãn hng âụng bàòng täøng táút c cạc pháưn tỉí trãn cäüt âi qua pháưn tỉí âọ TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût II Láûp trçnh cáúu trục (Structured programming) u cáưu : Viãút cạc cáu lãûnh Pascal theo så âäư khäúi bãn âáy Chuøn vãư dảng chè sỉí dủng hai cáúu trục tưn tỉû v làûp kiãøm tra âiãưu kiãûn trỉåïc (while) theo âënh l Bolm v Jacopini Khoa CNTT−ÂTVT S1 Sai C1 Âụng S2 Sai C2 TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âụng Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT Âãư thi kãút thủc Män hc ÂÃƯ ÂÃƯA A CÄNG NGHÃÛ PHÁƯN MÃƯM 150 (khäng âỉåüc mang ti liãûu vo phng thi) I Phỉång phạp tinh chãú tỉìng bỉåïc Trong viãûc qun l danh bả âiãûn thoải cho khạch hng, ngỉåìi ta cáưn mäüt th tủc nàõn lải (correcting) cạc säú âiãûn thoải âỉa vo âãø thäúng nháút cạch lỉu trỉỵ v in Gi sỉí säú âiãûn thoải gäưm hai pháưn, pháưn m vng (regional code) v pháưn säú (number) Khi ngỉåìi sỉí dủng nháûp vo mạy mäüt häư så khạch hng tải mủc Säú Âiãûn Thoải cọ chỉïa mäüt säú no âọ, vê dủ 0(51) 892.992, hồûc 051-892-992, hồûc 051.892.992, v.v , mạy phi lỉu trỉỵ 051.892992 v in dảng 051.892.992 (Chụ âäúi våïi cạc m vng l mäüt säú H näüi 4, Tp HCM , chuøn säú ca pháưn säú qua âãø váùn cọ dảng nn.nnnnnn) Trçnh by låìi gii bàòng phỉång phạp tinh chãú tỉìng bỉåïc Láûp trçnh theo âån vë Unit ca ngän ngỉỵ Pascal II Âàûc t Cho ma tráûn vng A cáúp NxN Viãút âàûc t thãø hiãûn mäùi pháưn tỉí trãn âỉåìng chẹo chênh ca ma tráûn chênh l pháưn tỉí nh nháút trãn mäùi hng III Ngän ngỉỵ âàûc t RAISE Viãút trãn RSL mäüt âån thãø cọ tãn EXPONENT âãø hm m ex ? ĐỀTHI KẾT THÚC MÔN HỌC CÄNG NGHÃÛ PHÁƯN MÃƯM 150 phút (cọ thãø mang ti liãûu vo phng thi) I Phỉång phạp tinh chãú tỉìng bỉåïc Trong viãûc qun l danh bả âiãûn thoải cho khạch hng, ngỉåìi ta cáưn mäüt th tủc nàõn lải (correcting) cạc säú âiãûn thoải âỉa vo âãø thäúng nháút cạch lỉu trỉỵ v in Gi sỉí säú âiãûn thoải gäưm hai pháưn, pháưn m vng (regional code) v pháưn säú (number) Viãûc nàõn l lm nháûp vo mạy mäüt säú âiãûn thoải, vê dủ (51) 892.992, hồûc 51-892-992, hồûc 51.892.992, v.v , mạy phi lỉu trỉỵ 51.892992 v in dảng 51.892.992 Âäúi våïi cạc m vng mäüt säú (H näüi 4, Tp HCM ), chuøn säú ca pháưn säú qua âãø váùn cọ dảng xx.xxxxxx 1.Trçnh by låìi gii bàòng phỉång phạp tinh chãú tỉìng bỉåïc theo ngän ngỉỵ tỉû nhiãn 2.Láûp trçnh theo âån vë Unit ca ngän ngỉỵ Pascal (cng måí räüng bi toạn cng täút) II Ngän ngỉỵ âàûc t RAISE Viãút trãn RSL mäüt âån thãø cọ tãn CIRCLE gäưm cạc âënh nghéa hm diãûn têch area v chu vi circumference Cọ thãø viãút âënh nghéa hm theo nhỉỵng cạch khạc ? Âãư thi CÄNG NGHÃÛ PHÁƯN MÃƯM SE-112 Thåìi gian 60 Ngy thi : Láûp trçnh cáúu trục (Structured programming) Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi bãn âáy : Sai C1 Âụng S1 Sai C2 Âụng S3 S2 Thỉí nghiãûm chỉång trçnh (Testing) Hy láûp bng dỉỵ liãûu thỉí nghiãûm âãø cho biãút chỉång trçnh dỉåïi âáy in kãút qu láưn lỉåüt thãú no ? Gii thêch cå chãú gi âãû quy ? program Testing1; var x: integer; procedure Recursive1 (M: integer); begin if M =1 then writeln ('A: x = ', x:3) else begin x:=x+2; writeln ('B: x = ', x:3); Recursive1 (M-1) end; end; { Recursive1 } Begin { Testing1 } TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût x := 0; Recursive1 (5); End { Testing1 } Âàûc t (Specification) Viãút âàûc t phẹp cäüng v trỉì hai âa thỉïc báûc n>0 Khoa CNTT−ÂTVT Khäng sỉí dủn g ti liãûu Ghi säú âãư thi v näüp lải âãư thi cn g bi lm Âãư thi CÄNG NGHÃÛ PHÁƯN MÃƯM SE-113 Thåìi gian 60 Ngy thi : Láûp trçnh cáúu trục (Structured programming) Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi bãn âáy : S1 C1 Sai Âụng S2 Sai C2 Âụng S3 Thỉí nghiãûm chỉång trçnh (Testing) Hy láûp bng dỉỵ liãûu thỉí nghiãûm âãø cho biãút chỉång trçnh dỉåïi âáy in kãút qu láưn lỉåüt thãú no ? Gii thêch cå chãú gi âãû quy ? program Testing2; var y: integer; procedure Recursive2 (N: integer); begin if N =0 then writeln ('1) y = ', y:3) else begin y:=y+1; writeln ('2) y = ', y:3); Recursive2 (N-1) end; end; { Recursive2 } begin { Testing2 } y := 0; Recursive2 (4); end { Testing2 } Âàûc t (Specification) Viãút âàûc t phẹp nhán âa thỉïc báûc n>0 våïi mäüt nhë thục báûc n=1 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi v näüp lải âãư thi cn g bi lm Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM SE-100 Thåìi gian 90 Ngy thi : I Âàûc t (Specification) Cạc phán säú (hay säú hỉỵu t) âỉåüc biãøu diãùn båíi danh ( n, d), våïi n l tỉí säú v d l máùu säú, l nhỉỵng säú ngun ( d ≠ 0) Viãút âàûc t xáy dỉûng cạc hm xỉí l phán säú : rụt gn, trỉì, chia v so sạnh hai phán säú II Láûp trçnh cáúu trục Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi dỉåïi âáy : C1 Sai Âụng S1 Sai Âụng C2 S3 S2 III Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cáu II l âån thãø M gi âãún cạc âån thãø C1, C2, S1, S2 v S3 Trçnh by phỉång phạp thỉí nghiãûm tỉì dỉåïi lãn âãø thỉí nghiãûm âån thãø M So sạnh våïi phỉång phạp thỉí nghiãûm tỉì trãn xúng Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM SE-101 Thåìi gian 90 Ngy thi : I Âàûc t (Specification) Cạc phán säú (hay säú hỉỵu t) âỉåüc biãøu diãùn båíi danh ( n, d), våïi n l tỉí säú v d l máùu säú, l nhỉỵng säú ngun ( d ≠ 0) Viãút âàûc t xáy dỉûng cạc hm xỉí l phán säú : cäüng, nhán hai phán säú v chuøn âäøi phán säú thnh säú thỉûc II Láûp trçnh cáúu trục Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi dỉåïi âáy : S1 Âụng C1 S2 Âụng C2 Sai Sai S3 III Thỉí nghiãûm chỉång trçnh (Testing) Chỉång trçnh cho cáu II l âån thãø M gi âãún cạc âån thãø C1, C2, S1, S2 v S3 Trçnh by phỉång phạp thỉí nghiãûm tỉì trãn xúng âãø thỉí nghiãûm âån thãø M So sạnh våïi phỉång phạp thỉí nghiãûm tỉì dỉåïi lãn Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi program Testing1; { SE-112 } var x: integer; procedure Recursive1 (M: integer); begin if M =1 then writeln ('A: x = ', x:3) else begin x:=x+2; writeln ('B: x = ', x:3); Recursive1 (M-1) end; end; { Recursive1 } begin { Testing1 } x := 0; Recursive1 (5); end { Testing1 } Result: B: x = B: x = B: x = B: x = A: x = 8 TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Khoa CNTT−ÂTVT Âải hc  Nàơng, trỉåìng Âải hc K thût program Testing2; { SE-113 } var y: integer; procedure Recursive2 (N: integer); begin if N =0 then writeln ('1) y = ', y:3) else begin y:=y+1; writeln ('2) y = ', y:3); Recursive2 (N-1) end; end; { Recursive2 } begin { Testing2 } y := 0; Recursive2 (4); end { Testing2 } Result: 2) y = 2) y = 2) y = 2) y = 1) y = 4 Âãư thi CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian 60 Láûp trçnh cáúu trục (Structured programming) Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi bãn âáy : Ngy thi : C2 Âụng Âụng C1 S1 SE-102 Sai Sai S2 Thỉí nghiãûm chỉång trçnh (Testing) Hy láûp bng dỉỵ liãûu thỉí nghiãûm âãø cho biãút chỉång trçnh dỉåïi âáy in kãút qu thãú no ? program Testing1; var x: integer; procedure Recursive (M: integer); begin if M =1 then writeln ('A: x = ', x:3) else begin x:=x+2; writeln ('B: x = ', x:3); Recursive (M-1) end; end; { Recursive } begin { Testing1 } x := 0; Recursive (5); end { Testing1 } Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âãư thi CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian 60 Láûp trçnh cáúu trục (Structured programming) Ngy thi : SE-103 TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Bàòng cạch chè sỉí dủng täúi âa ba cáúu trục tưn tỉû, âiãưu kiãûn (if then) v làûp (whilerepeat), hy viãút âoản lãûnh bàòng gi ngỉỵ (phng Pascal) thỉûc hiãûn chỉång trçnh cho så âäư khäúi bãn âáy : Khoa CNTT−ÂTVT S1 C1 Âụng Sai S2 Âụng Sai C2 Thỉí nghiãûm chỉång trçnh (Testing) Hy láûp bng dỉỵ liãûu thỉí nghiãûm âãø cho biãút chỉång trçnh dỉåïi âáy in kãút qu thãú no ? program Testing2; var y: integer; procedure Recursive (N: integer); begin if N =0 then writeln ('1) y = ', y:3) else begin y:=y+1; writeln ('2) y = ', y:3); Recursive (N-1) end; end; { Recursive } begin { Testing2 } y := 0; Recursive (4); end { Testing2 } Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âạp ạn Âãư thi SE-100 While C1 begin S1 if C2 then S2 else S3 end q:= false repeat if not C1 then q:= true else begin S1 if C2 then S2 else S3 end until q Âạp ạn Âãư thi SE-101 q:= false repeat S1 if not C1 then q:= true else begin S2 if not C2 then S3 end until q B: x = B: x = B: x = B: x = A: x = 2) y = 2) y = 2) y = 2) y = 1) y = 4 Âàûc t danh sạc h tuún (Linear List) viãú t tàõt DSTT) DSTT l mäüt dy cọ thãø räùng hồûc cọ hỉỵu hản cạc pháưn tỉí, k hiãûu = Thỉï tỉû cạc pháưn tỉí mäüt DSTT l thỉï tỉû ca cạc vë trê (place) ca chụng, âỉåüc xạc âënh båíi hm Succ Nghéa l våïi mi vë trê p ca mäüt DSTT ≠ φ, ta cọ : ∃ k ≥ cho p = Succk (Head (Trong âọHead () chè vë trê âáưu tiãn ca TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT Mäùi vë trê cọ mäüt näüi dung (content) chênh l pháưn tỉí åí vë trê âọ Säú pháưn tỉí hay säú vë trê ca âỉåüc gi l âäü di (length) ca Nãúu n = 0, thç = φ Màût khạc hm Succ khäng xạc âënh åí vë trê thỉï n hay Succn (Head ()) khäng xạc âënh Âäúi våïi cạc DSTT, ngỉåìi ta xáy dỉûng ba phẹp xỉí l tưn tỉû trãn cạc pháưn tỉí : • Tiãúp cáûn (access) âãún pháưn tỉí thỉï k ca DSTT • Loải b (delete) pháưn tỉí thỉï k ca DSTT • Chn (insert) mäüt pháưn tỉí måïi tải vë trê thỉï k ca DSTT Gi sỉí Element l mäüt kiãøu pháưn tỉí â âỉåüc âënh nghéa trỉåïc âọ Kiãøu trỉìu tỉåüng List âỉåüc âënh nghéa sau : Type List, Place Functions EmptyList : → List Length : List → Int Succ : Place → Place Access : List × Int → Place Content : Place → Element Delete : List × Int → List Insert : List × Int × Element → List Preconditions Pre Access (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Delete (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Insert (: List, k : Int, e : Element) = (1 ≤ k ≤ Length () + 1) /* k = Length () tỉång ỉïng våïi viãûc thãm mäüt pháưn tỉí vo cúi DSTT */ Axioms ForAll : List, k : Int, e : Element : Length (EmptyList) = ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) ⇒ Length (Delete (, k)) = Length () (1 ≤ k ≤ Length ()) ⇒ Length (Insert (, k, e)) = Length () + ( ≠ EmptyList) and (1 ≤ k < Length ()) ⇒ Succ (Access (, k)) = Access (, k + 1) ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) and (1 ≤ i ≤ k1) ⇒ Content (Access (Delete (, k), i)) = Content (Access (i) ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) and (k ≤ i ≤ Length () 1) ⇒ Content (Access (Delete (, k), i)) = Content (Access (i 1) (1 ≤ k ≤ Length ()) and (1 ≤ i ≤ k1) ⇒ Content (Access (Insert (, k, e), i)) = Content (Access (i) (1 ≤ k ≤ Length ()1) and (i k) ⇒ Content (Access (Insert (, k, e), i)) = e (1 ≤ k ≤ Length ()1) and (k1 ≤ i ≤ Length ()1) ⇒ Content (Access (Insert (, k, e), i)) = Content (Access (, i 1)) Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 106 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t säú hỉỵu t (Rational Number) Låïp cạc säú hỉỵu t âỉåüc biãøu diãùn båíi hai thnh pháưn tỉí säú n v máùu säú d l nhỉỵng säú ngun Ngỉåìi ta cáưn xáy dỉûng cạc hm xỉí l säú hỉỵu t : tảo måïi, rụt gn, cäüng, trỉì, nhán, chia, so sạnh v chuøn âäøi thnh säú thỉûc Gi sỉí kiãøu trỉìu tỉåüng Rational âỉåüc âënh nghéa sau (cäüt bãn phi âàût trỉåïc båíi mäüt dáúu ; âãø gii thêch) : Type Rational Functions Create-rat Reduction Numer Denom +rat -rat *rat /rat =rat Rat-Real : : : : : : : : : : Int × Int Rational Rational Rational Rational × Rational Rational × Rational Rational × Rational Rational × Rational Rational × Rational Rational Preconditions Pre Create-rat (n, d : Int) → → → → → → → → → → Rational Rational Int Int Rational Rational Rational Rational Bool Real = ; ; ; ; ; ; ; ; ; ; tảo säú hỉỵu t tỉì hai säú ngun rụt gn säú hỉỵu t tr vãư tỉí säú (numerator) tr vãư máùu säú (denominator) cäüng hai säú hỉỵu t trỉì hai säú hỉỵu t nhán hai säú hỉỵu t chia hai säú hỉỵu t so sạnh hai säú hỉỵu t chuøn mäüt säú hỉỵu t thnh säú thỉûc d≠0 Axioms ForAll n, d, n1, d1, n2, d2 : Int , r, r1, r2 : Rational : r=create-rat(n, d) ⇒ numer(r) * d=denom(r) * n and denom(r) ≠ ; Nghéa l, nãúu r l mäüt säú hỉỵu t, r=n/d, thç tỉí säú ca r l n v máùu säú l d≠0 =rat(create-rat(n1, d1), create-rat(n2, d2) ⇔ n1*d2 = n2*d1 ; Hai säú hỉỵu t r1=n1/d1 v r2=n2/d2 bàòng v chè n1*d2 =n2*d1 +rat(create-rat(n1, d1), create-rat(n2, d2) ⇔ Reduction(create-rat(n1*d2 + n2*d1, d1*d2)) TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT u cáưu : Dỉûa theo cạc tiãn âãư â cho gåüi , hy tiãúp tủc tảo måïi cạc tiãn âãư cho phẹp thỉûc hiãûn cạc phẹp toạn xỉí l säú hỉỵu t âỉåüc âënh nghéa pháưn Functions Láûp trçnh bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) cạc hm xỉí l säú hỉỵu t mä t trãn âáy Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 105 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t cáy nhë phán Binary Tree) Kiãøu cáy nhë phán kiãøu T, våïi T l mäüt kiãøu báút k no âọ, âỉåüc âënh nghéa âãû quy sau : ∅ l mäüt cáy nhë phán kiãøu T, âỉåüc gi l cáy räùng (empty tree) Nãúu E l mäüt pháưn tỉí kiãøu T, A1 v A2 l nhỉỵng cáy nhë phán kiãøu T, thç bäü ba (E, A1, A2) cng l nhỉỵng cáy nhë phán kiãøu T Chè nhỉỵng âäúi tỉåüng âỉåüc âënh nghéa båíi hai quy tàõc trãn âáy måïi l cạc cáy nhë phán kiãøu T Nãúu A=(E, A1, A2) l cáy nhë phán, thç E l nụt gäúc, A1 l cáy (subtree) bãn trại, A2 l cáy bãn phi ca A Nãúu A l cáy suy biãún chè gäưm mäüt nụt, thç nụt âọ ln ln l nụt gäúc ca mäüt cáy Ngỉåìi ta cn gi A l cáy âỉåüc gàõn nhn (labelled tree, hay tag tree) båíi cạc giạ trë T Chụ sỉû lãûch âäúi xỉïng ca âënh nghéa : nãúu A khäng phi l cáy räùng, thç cáy (E, A, ∅) khạc våïi cáy (E, ∅, A) Cáưn phán biãût mäüt nụt våïi mäüt giạ trë gàõn cho nụt âọ Cạc nụt ln ln råìi (phán biãût) nhau, cn cạc giạ trë thç cọ thãø giäúng Kiãøu trỉìu tỉåüng ca cáy nhë phán âỉåüc âënh nghéa sau (cäüt bãn phi âàût trỉåïc båíi mäüt dáúu ; âãø gii thêch) : Type BinTree(T) Functions emptytree : BinTree(T) ; tảo måïi cáy räùng emptytree? : BinTree(T) Boolean ; kiãøm tra cáy räùng createtree : T BinTree(T) BinTree(T) BinTree(T) ; tảo cáy nhë phán root : BinTree(T) T ; truy cáûp nụt gäúc left : BinTree(T) BinTree(T) ; truy cáûp cáy trại right : BinTree(T) BinTree(T) ; truy cáûp cáy phi leaf? : BinTree(T) Bool ; kiãøm tra nụt lạ Preconditions root(A) left(A) right(A) leaf?(A) âỉåüc xạc âënh nãúu v chè nãúu âỉåüc xạc âënh nãúu v chè nãúu âỉåüc xạc âënh nãúu v chè nãúu âỉåüc xạc âënh nãúu v chè nãúu Axioms ForAll E : T ; A, A1, A2 : BinTree(T) : emptytree?(emptytree()) emptytree?(createtree(E, A1, A2)) root(createtree(E, A1, A2)) A ≠ emptytree A ≠ emptytree A ≠ emptytree A ≠ emptytree = true = false =E u cáưu : Dỉûa theo cạc tiãn âãư â cho gåüi , hy tiãúp tủc tảo måïi cạc tiãn âãư cho phẹp thỉûc hiãûn cạc phẹp toạn xỉí l cáy nhë phán âỉåüc âënh nghéa pháưn Functions Láûp trçnh bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) cạc hm xỉí l cáy nhë phán mä t trãn âáy Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 104 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t táûp håüp (Collection Specification) Cho trỉåïc mäüt táûp håüp (collection) C cạc pháưn tỉí (elements) e Ngỉåìi ta cáưn thỉûc hiãûn cạc phẹp tçm kiãúm, bäø sung (Add) v loải b (Delete) mäüt pháưn tỉí e cọ khoạ (key) l k C Ngoi ra, ngỉåìi ta cọ hai phẹp toạn bäø sung l kiãøm tra mäüt pháưn tỉí cọ thüc (in) mäüt táûp håüp cho trỉåïc hay khäng v âãúm säú pháưn tỉí (number of occurrences) cọ khoạ âụng bàòng mäüt khoạ k â cho Gi sỉí Element l kiãøu pháưn tỉí cọ khoạ kiãøu Key â âỉåüc âënh nghéa trỉåïc âọ Kiãøu trỉìu tỉåüng Collection âỉåüc âënh nghéa sau : Type Collection Functions Key-of : Element → Key EmptyCollection : → Collection Add : Element × Collection → Collection Delete : Key × Collection → Collection Search : Key × Collection → Element in : Element × Collection → Bool NbOccurrences : Key × Collection → Int Preconditions Pre Search (k: Key, C: Collection) ≡ NbOccurrences(k, C) ≥ Axioms ForAll C: Collection, k, k’: Key e, e’ : Element : (e in EmptyCollection) = false (e = e’) ⇒ (e in Add (e’, C)) = true (e ≠ e’) ⇒ (e in Add (e’, C)) = (e in C) TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Khoa CNTT−ÂTVT NbOccurrences (k, EmptyCollection) = Key-of (e) = k ⇒NbOccurrences (k, Add (e, C)) = NbOccurrences (k, C) (k = k’) and NbOccurrences (k, C) = ⇒ NbOccurrences (k, Delete (k’, C)) = Key-of (Search (k, C)) = k (Search (k, C) in C) = true e = Search (k, C) ⇒( e in Delete (k, C)) = false u cáưu : Dỉûa theo cạc tiãn âãư â cho, hon chènh (âiãưn vo dáúu ?) cạc tiãn âãư sau âáy : (k ≠ k’) ⇒? e ≠ Search (k, C) ⇒? Cho S l táûp håüp cạc säú tỉû nhiãn gäưm giỉỵa v N Viãút bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) th tủc xáy dỉûng mäüt táûp håüp S’ ⊆ S cho S’ gäưm cạc säú chàơn Viãút th tủc xáy dỉûng mäüt táûp håüp S’ ⊆ S cho S’ gäưm cạc pháưn tỉí ca S tho mn mäüt cháút â cho no âọ Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 103 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t danh sạc h tuún (Linear List) viãú t tàõt DSTT) DSTT l mäüt dy cọ thãø räùng hồûc cọ hỉỵu hản cạc pháưn tỉí, k hiãûu = Thỉï tỉû cạc pháưn tỉí mäüt DSTT l thỉï tỉû ca cạc vë trê (place) ca chụng, âỉåüc xạc âënh båíi hm Succ Nghéa l våïi mi vë trê p ca mäüt DSTT ≠ φ, ta cọ : ∃ k ≥ cho p = Succk (Head (Trong âọHead () chè vë trê âáưu tiãn ca Mäùi vë trê cọ mäüt näüi dung (content) chênh l pháưn tỉí åí vë trê âọ Säú pháưn tỉí hay säú vë trê ca âỉåüc gi l âäü di (length) ca Nãúu n = 0, thç = φ Màût khạc hm Succ khäng xạc âënh åí vë trê thỉï n hay Succn (Head ()) khäng xạc âënh Âäúi våïi cạc DSTT, ngỉåìi ta xáy dỉûng ba phẹp xỉí l tưn tỉû trãn cạc pháưn tỉí : • Tiãúp cáûn (access) âãún pháưn tỉí thỉï k ca DSTT • Loải b (delete) pháưn tỉí thỉï k ca DSTT • Chn (insert) mäüt pháưn tỉí måïi tải vë trê thỉï k ca DSTT Gi sỉí Element l mäüt pháưn tỉí cọ kiãøu â âỉåüc âënh nghéa trỉåïc âọ Kiãøu trỉìu tỉåüng List âỉåüc âënh nghéa sau : Type List, Place Functions EmptyList : → List Length : List → Int Succ : Place → Place Access : List × Int → Place Content : Place → Element Delete : List × Int → List Insert : List × Int × Element → List Preconditions Pre Access (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Delete (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Insert (: List, k : Int, e : Element) = (1 ≤ k ≤ Length () + 1) /* k = Length () tỉång ỉïng våïi viãûc thãm mäüt pháưn tỉí vo cúi DSTT */ Axioms ForAll : List, k : Int, e : Element : Length (EmptyList) = ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) ⇒ Length (Delete (, k)) = Length () (1 ≤ k ≤ Length ()) ⇒ Length (Insert (, k, e)) = Length () + ( ≠ EmptyList) and (1 ≤ k < Length ()) ⇒ Succ (Access (, k)) = Access (, k + 1) ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) and (1 ≤ i ≤ k1) ⇒ Content (Access (Delete (, k), i)) = Content (Access (i) u cáưu : Dỉûa theo cạc tiãn âãư â cho, hon chènh (âiãưn vo dáúu ?) cạc tiãn âãư sau âáy : (1 ≤ k ≤ Length ()1) and (i k) ⇒? (1 ≤ k ≤ Length ()) and (1 ≤ i ≤ k1) ⇒? Viãút bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) cạc th tủc chn (Insert) mäüt pháưn tỉí vo DSTT v tçm kiãúm nhë phán (Binsearch) våïi gi thiãút DSTT â âỉåüc sàõp xãúp trỉåïc Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 102 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t táûp håüp (Collection Specification) Cho trỉåïc mäüt táûp håüp (collection) C cạc pháưn tỉí (elements) e Ngỉåìi ta cáưn thỉûc hiãûn cạc phẹp tçm kiãúm, bäø sung (Add) v loải b (Delete) mäüt pháưn tỉí e cọ khoạ (key) l k C Ngoi ra, ngỉåìi ta cọ hai phẹp toạn bäø sung l kiãøm tra mäüt pháưn tỉí cọ thüc (in) mäüt táûp håüp cho trỉåïc hay khäng v âãúm säú pháưn tỉí (number of occurrences) cọ khoạ âụng bàòng mäüt khoạ k â cho Gi sỉí Element l kiãøu pháưn tỉí cọ khoạ kiãøu Key â âỉåüc âënh nghéa trỉåïc âọ Kiãøu trỉìu tỉåüng Collection âỉåüc âënh nghéa sau : Type Collection TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com Âải hc  Nàơng, trỉåìng Âải hc K thût Functions Key-of EmptyCollection Add Delete Search in NbOccurrences : : : : : : : Khoa CNTT−ÂTVT Element → Key → Collection Element × Collection → Collection Key × Collection → Collection Key × Collection → Element Element × Collection → Bool Key × Collection → Int Preconditions Pre Search (k: Key, C: Collection) ≡ NbOccurrences(k, C) ≥ Axioms ForAll C: Collection, k, k’: Key e, e’ : Element : (e in EmptyCollection) = false (e = e’) ⇒ (e in Add (e’, C)) = true (e ≠ e’) ⇒ (e in Add (e’, C)) = (e in C) NbOccurrences (k, EmptyCollection) = Key-of (e) = k ⇒NbOccurrences (k, Add (e, C)) = NbOccurrences (k, C) (k = k’) and NbOccurrences (k, C) = ⇒ NbOccurrences (k, Delete (k’, C)) = Key-of (Search (k, C)) = k (Search (k, C) in C) = true e = Search (k, C) ⇒( e in Delete (k, C)) = false u cáưu : Dỉûa theo cạc tiãn âãư â cho, hon chènh (âiãưn vo dáúu ?) cạc tiãn âãư sau âáy : Key-of (e) ≠ k ⇒? (k = k’) and NbOccurrences (k, C) ≥ ⇒? Cho S l táûp håüp cạc säú tỉû nhiãn gäưm giỉỵa v N Viãút bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) th tủc xáy dỉûng mäüt táûp håüp S’ ⊆ S cho S’ gäưm cạc säú l Viãút th tủc cho phẹp xỉí l (duût) táút c cạc pháưn tỉí ca mäüt táûp håüp â cho Âãư thi Män CÄNG NGHÃÛ PHÁƯN MÃƯM Âãư säú 101 Thåìi gian lm bi 90 Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Âàûc t danh sạc h tuún (Linear List) viãú t tàõt DSTT) DSTT l mäüt dy cọ thãø räùng hồûc cọ hỉỵu hản cạc pháưn tỉí, k hiãûu = Thỉï tỉû cạc pháưn tỉí mäüt DSTT l thỉï tỉû ca cạc vë trê (place) ca chụng, âỉåüc xạc âënh båíi hm Succ Nghéa l våïi mi vë trê p ca mäüt DSTT ≠ φ, ta cọ : ∃ k ≥ cho p = Succk (Head (Trong âọHead () chè vë trê âáưu tiãn ca Mäùi vë trê cọ mäüt näüi dung (content) chênh l pháưn tỉí åí vë trê âọ Säú pháưn tỉí hay säú vë trê ca âỉåüc gi l âäü di (length) ca Nãúu n = 0, thç = φ Màût khạc hm Succ khäng xạc âënh åí vë trê thỉï n hay Succn (Head ()) khäng xạc âënh Âäúi våïi cạc DSTT, ngỉåìi ta xáy dỉûng ba phẹp xỉí l tưn tỉû trãn cạc pháưn tỉí : • Tiãúp cáûn (access) âãún pháưn tỉí thỉï k ca DSTT • Loải b (delete) pháưn tỉí thỉï k ca DSTT • Chn (insert) mäüt pháưn tỉí måïi tải vë trê thỉï k ca DSTT Gi sỉí Element l mäüt pháưn tỉí cọ kiãøu â âỉåüc âënh nghéa trỉåïc âọ Kiãøu trỉìu tỉåüng List âỉåüc âënh nghéa sau : Type List, Place Functions EmptyList : → List Length : List → Int Succ : Place → Place Access : List × Int → Place Content : Place → Element Delete : List × Int → List Insert : List × Int × Element → List Preconditions Pre Access (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Delete (: List, k : Int) = (1 ≤ k ≤ Length ()) Pre Insert (: List, k : Int, e : Element) = (1 ≤ k ≤ Length () + 1) /* k = Length () tỉång ỉïng våïi viãûc thãm mäüt pháưn tỉí vo cúi DSTT */ Axioms ForAll : List, k : Int, e : Element : Length (EmptyList) = ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) ⇒ Length (Delete (, k)) = Length () (1 ≤ k ≤ Length ()) ⇒ Length (Insert (, k, e)) = Length () + ( ≠ EmptyList) and (1 ≤ k < Length ()) ⇒ Succ (Access (, k)) = Access (, k + 1) ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) and (1 ≤ i ≤ k1) ⇒ Content (Access (Delete (, k), i)) = Content (Access (i) u cáưu : Dỉûa theo cạc tiãn âãư â cho, hon chènh (âiãưn vo dáúu ?) cạc tiãn âãư sau âáy : ( ≠ EmptyList) and (1 ≤ k ≤ Length ()) and (k ≤ i ≤ Length () 1) ⇒? (1 ≤ k ≤ Length ()1) and (k1 ≤ i ≤ Length ()1) ⇒? Viãút bàòng ngän ngỉỵ gi (tỉång tỉû Pascal) cạc th tủc duût (Scan) v âäü di (Length) ca mäüt DSTT TS.Phan Huy Khánh, Tuyển chọn In : nguyen_lanit@yahoo.com, nguyenlant5bkdn@yahoo.com ... nghiãûm âån thãø Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Thåìi gian 90 I Âãư thi säú SE95 Âàûc t (Specification) Cạc phán säú (hay... Khäng sỉí dủn g ti liãûu Ghi säú âãư thi vo bi lm Näüp lải âãư thi C1 Thåìi gian 90 I Âàûc t (Specification) Sai Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Ngy thi : Âãư thi säú SE94 S1 Saisạch ( n, d), våïi... ghi säú âãư thi vo bi lm v näüp lải âãư thi cn g bi lm Âãư A Âãư thi láưn Låïp 96T1,2, ngy 23/01/1999 Män hc CÄNG NGHÃÛ PHÁƯN MÃƯM Thåìi gian lm bi 90 Khäng mang ti liãûu vo phng thi TS.Phan