NV TRONG TURBO PASCAL

Một phần của tài liệu Kỹ thuật lập trình turbo pascal (Trang 101 - 117)

n v (Unit) trong Turbo Pascal th hi n tính c u trúc trong l p trình : cho phĩp chia ch ng trình l n thănh m t h th ng phđn c p g m m t ch ng trình chính vă nhi u đ n v ch ng trình con.

III.1. Gi i thi u Unit

Unit lă t p h p khai bâo câc h ng, câc ki u d li u, câc bi n, câc th t c vă hăm có quan h v i nhau đ đ a văo s d ng trong ch ng trình chính.

M i đ n v , đ c c t gi trín thiĩt b nh ph (đa t ) d i d ng m t t p ch ng trình Pascal *.PAS vă đ c d ch (compile) riíng r . K t qu d ch lă m t t p m i có ph n m r ng lă *.TPU.

g i câc Unit, trong ph n đ u ch ng trình s d ng l nh : USES <tín Unit>

Th vi n câc ch ng trình m u Turbo Pascal có 8 Unit chu n nh sau :

System ch a câc hăm vă th t c th vi n thông d ng m c h th ng : x lý t p, x lý chu i, tính câc hăm toân h c. System đ c g i m c nhiín mă không c n khai bâo : USES System

Dos cung c p câc ch c n ng c a h đi u hănh MS-DOS

Crt đ đi u khi n câc thi t b văo (băn phím) vă ra (măn hình) : Goto XY, Clrscr...

Graph cung c p câcc kh n ng đ h a (graphics) cho câc lo i măn hình khâc nhau : Hercule, CGA, EGA, VGA...

Turbo3 đ t ng thích v i câc ch ng trình đê vi t b ng Turbo Pascal V3.0

Graph3 th c hi n câc ch ng trình con đ ho theo ki u con rùa (tortoise) c a Turbo Pascal V3.0

III.2. C u trúc c a Unit

M t Unit do NSD t o ra, đ t trong m t t p ch ng trình, g m nh ng thănh ph n nh sau :

1. Ph n tín c a Unit (Unit Heading) :

Unit <tín Unit>

2. Ph n giao ti p (Interface Section)

Interface

{ Câc khai bâo sau đđy không b t bu c ph i có }

Uses <Ds câc Units dùng cho Unit năy> Const <Ds câc h ng>

Type <Ds câc mô t ki u> Var <Ds câc khai bâo bi n>

<Ds câc ph n đ u c a câc th t c vă hăm>

Câc khai bâo Const, Type vă Var sau Interface cho Unit c ng dùng đ c t i n i s d ng đ n v năy. Ta nói chúng lă “th y đ c” (Visible).

Danh sâch câc tín th t c vă hăm đ c câc Unit khâc dùng đ n s đ c khai bâo đ y đ trong ph n ti p theo :

3. Ph n hi n th c (Implementation Section)

Implementation

{ Câc khai bâo sau đđy không b t bu c ph i có }

Uses <Ds câc Uses s d ng đ n>

Label <Ds câc nhên> Const <Ds câc h ng> Type <Ds câc mô t ki u> Var <Ds câc khai bâo bi n>

<Câc mô t hăm vă/ho c th t c>

Câc mô t hăm vă/ho c th t c trong ph n năy g m có : Câc hăm vă /ho c th t c đê mô t ph n giao ti p.

Câc hăm vă/ho c th t c n i b dùng riíng trong ph n hi n th c (không khai bâo trong ph n giao ti p).

Câc mô t nhên, h ng, ki u d li u, bi n vă câc hăm, th t c n i b trong ph n hi n th c c a m t Unit lă không dùng đ c t i n i s d ng Unit năy. Ta g i chúng lă “b d u” (Hidden). 4. Ph n kh i đ ng (Initialization section) Begin <Câc l nh Pascal> Ph n năy có th v ng m t nh ng end. ph i có m t ! end.

Khi n i s d ng m t Unit có Initialization, ph n kh i đ ng c a Unit năy s đ c g i ch y tr c khi thđn c a n i s d ng ch y.

N u có m t n i s d ng nhi u Unit thì ph n kh i đ ng c a câc Unit đó s đ c ch y theo th t xu t hi n c a tín c a câc Unit trong khai bâo Uses c a n i g i.

Trong ph n kh i đ ng m t đ n v , ng i ta th ng lăm câc đ ng tâc chu n b nh kh i gân cho câc bi n, m câc t p, thông bâo ch đ ch y ch ng trình...

III.3. Câch s d ng Unit

1. M t ch ng trình hay m t Unit có th s d ng nhi u Unit khâc.

S d ng m t Unit có ngh a lă đ c quy n s d ng câc h ng, ki u d li u, bi n, câc hăm vă/ho c th t c đê đ c khai bâo trong ph n giao ti p Interfacec a Unit đó.

Ví d : s d ng câc Units có tín l n l t lă U1, U2, ..., Un, dùng m nh đ Uses đ t sau khai bâo Program trong ch ng trình :

Uses U1, U2, . . .,Un ;

2. Khi có m t s a đ i năo đó trong ph n Interface c a m t Unit

Khi đó, câc (t p) ch ng trình hay (t p) Unit đó c n đ c d ch (Compile) l i.

Khi trong m t Unit ch có s s a đ i ph n Implementation hay ph n Initialization thì không c n d ch l i nh ng (t p) ch ng trình hay (t p) Unit s d ng Unit đó.

Ví d : Gi s ch ng trình P g i U1 vă U1 s d ng U2 : Program P ; Uses U1 ; Const a = b; Begin writeln (a); end. ⎯→ Unit U1 ; Interface Uses U2 ; Const b = c; Implementation end. ⎯→ Unit U2 ; Interface Const c = 10; Implementation end.

P.PAS U1.PAS U2.PAS N u trong U2, đ i c=5 ch ng h n thì c n ph i d ch l i U2.PAS vă U1.PAS (vì U1 s

d ng U2) vă d ch l i P.PAS.

3. Khi có s trùng tín h ng, bi n, ki u d li u vă tín CT con (hăm, th t c)

ph n bi t, ng i ta đ t tr c tín trùng đó tín Unit có ch a tín năy vă câch m t d u ch m (.). Riíng đ i v i ch ng trình chính (khai bâo Program) thì không c n.

Ví d : Gi s ch ng trình P s d ng câc Unit U1 vă U2.

N u trong P, trong Interface c a U1 vă U2 đ u có khai bâo bi n i thì đ phđn bi t i năo lă c a P, i năo lă c a U1 vă U2 ng i ta vi t :

i {i c a P}

U1.i {i c a U1}

U2.i {i c a U2} III.4. Ví d v Unit

Vi t ch ng trình tính nhi u l n di n tích hình tròn v i bân kính nh p văo t băn phím, cho đ n khi bân kính nh p văo lă 0 thì d ng.

G i ch ng trình chính lă HINHTRON vă Unit s d ng đ tính di n tích hình tròn lă DTHTRON, ta có :

Program HINHTRON ; {T p HINHTRON.PAS} Uses Crt, DTHTRON ;

Var bk : Real ; Begin

Write (‘S Pi = ‘, Pi) ; {h ng Pi khai bâo trong Unit DTHTRON} Repeat

Write (bân kính =) ; Readln (bk) ; if bk > 0 then

Writeln (‘Di n tích = ‘, Dientich (bk) ) ; Until bk = 0

End. {HINHTRON}

Unit DTHTRON ; {T p DTHTRON.PAS} Interface

Const Pi = 3.1415926535 ; {1/π = 0.318309886} Function Dientich (R : Real) : Real;

Implementation Function Dientich; Begin Dientich := Pi * Sqr (R) End; Begin {ph n kh i đ ng Inilialization}

Writeln (‘trong ch ng trình chính s s d ng Unit DTHTRON !’) End.

BĂI T P

Câc băi t p sau đđy yíu c u th c hi n câc b c sau :

1. Vi t s đ thu t gi i b ng ngôn ng gi đnh ho c s đ kh i (b qua b c năy n u thu t gi i quâ đ n gi n).

2. Vi t ch ng trình đ y đ trín Turbo Pascal.

3. Ch y mây có k t qu (t cho câc d li u văo c th ).

D li u đ c đ c văo t băn phím. K t qu đ c đ a ra trín măn hình.

1. Cđu l nh gân. Câc th t c READ vă WRITE- C u trúc r nhânh IF.. THEN vă CASE

1. Cho giâ tr c a bi n x. Tính giâ tr bi u th c sau r i đ a k t qu ra v i 3 ch s l :

y = x 1 nếu 0 < x < 2 nếu x 2 nếu x 0 2 5 + + ≥ ≤ ⎧ ⎨ ⎪⎪ ⎩ ⎪ ⎪ − log (2 ) 1 2 2 x x

2. Cho a, b, c (a ≠ 0). Gi i b t ph ng trình b c hai ax2 + bx + c > 0. Câc k t qu đ c vi t v i 2 ch s l .

3. Nh p văo m t kí t . Tùy kí t đ c g văo mă ch ng trình thông bâo nh sau : - Lă ch s n u kí t lă câc ch s 0..9.

- Lă ch câi n u kí t lă câc ch câi A .. Z ho c a .. z.

- Lă d u phĩp toân n u kí t lă m t trong câc d u + - * / = < > thì có th ng bâo. - Lă d u ngo c n u kí t lă m t trong câc d u ( ) [ ] { }.

- Lă d u chính t n u kí t lă m t trong câc d u . , ; :. Lă kí t đ c bi t n u lă câc kí t khâc câc kí t trín.

4. oân gi i đ c đ c : ch ng trình ch nh n phím Enter, sau đó đ a ra s c a gi i đ c đ c m t câch ng u nhiín theo d ng sau :

CCnnnn

trong đó : CC lă 2 ch câi vi t hoa b t k (A .. Z) nnnn lă 4 ch s b t k (0 .. 9).

Ví d : DQ0405, v.v...

2. Câc c u trúc l p : WHILE, REPEAT vă FOR

1. Cho x th c vă n nguyín d ng. Tinh t ng : S = 1 + x + x 2! + ... + x n! + ... 2 n 2. Cho x th c. Tính t ng : S = 1 - x + x 2! - x 3! + ... + (-1) x n! + ... 2 3 n n v i đ chính xâc ε cho tr c. Ch ng h n ε = 10-5

3. Bi n th c x thay đ i t 0 đ n 1 b c t ng lă 0.01. Hêy tính : f (x) = e-x sin (2px)

g (x) = e-2xsin (2px ) + cos (2px) 4. Cho câc giâ tr ai vă h ng nguyín n. Tính :

S = (a + 2a + 4)i2 i i = 1 n ∑ S = ai i = 1 n ∑ v i ai > 0

5. Tìm t t c câc s có 3 ch s sao cho s đó b ng t ng l p ph ng c a câc ch s c a nó. 6. Cho x th c vă n nguyín d ng. Tính giâ tr

y = x + x + ... + x n > 1 d u c n

7. Cho tr c s nguyín N. Hêy in ra câc s nguyín t t 2 đ n N. 8. Dêy Fibonaci đ c đnh ngh a nh sau :

F0 = F1 = 1

Fn = Fn-1 + Fn-2 v i n ≥ 2

Cho tr c m t s nguyín n, hêy tính giâ tr Fn.

3 Ki u m ng (ARRAY)

1. Nh p m t dêy s nguyín sau đó đ a ra câc gía tr sau : - Giâ tr trung bình c a c dêy.

- Giâ tr nguyín d ng nh nh t c a dêy.

2. Nh p m t dêy s th c. o ng c th t c a dêy đê cho b ng câch đ i ch ph n t th nh t cho ph n t cu i cùng, ph n t th hai cho ph n t sât cu i cùng..., sau đó đ a ra dêy đê đ o ng c.

3. Nh p m t dêy s nguyín, sau đó s p x p l i r i đ a ra k t qu sau khi s p x p sao cho câc s ch n x p lín đ u dêy, câc s l x p xu ng cu i dêy b ng hai câch sau :

- S p x p qua m t dêy khâc - S p x p ngay trín dêy đê cho.

4. Nh p m t ma tr n vuông A c p nxn g m câc ph n t nguyín, r i đ a ra : - T ng câc ph n t trín cùng m t c t.

- T ng câc ph n t trín cùng m t dòng.

- Ph n t l n nh t cùng v i câc ch s c t, dòng t ng ng.

5. Nh p văo ma tr n A c p nxm vă ma tr n B c p mxp (câc ph n t lă s th c). Sau đó đ a ra ma tr n C lă tích A*B.

6. Có m t t p hoâ đ n, m i hoâ đ n có ghi s ti n t ng ng. Hai hoâ đ n đ c coi lă cùng lo i n u chúng có cùng s ti n. Th ng kí xem có bao nhiín lo i hoâ đ n, m i lo i g m có bao nhiín t vă s ti n t ng ng c a m i lo i. a ra k t qu .

4 Ki u xđu kí t (STRING)

1. c văo m t xđu, sau đó đ a ra s t c a xđu đê cho. Quy c câc t câch nhau ít nh t lă m t d u tr ng (Space).

2. c văo m t xđu sau đó đ a ra t t c câc t khâc nhau c a xđu đê cho. Ví d xđu Dung d ng dung d g m câc t Dung, d ng d .

3. Nh p văo m t m ng h tín c a nh ng ng i trong l p, sau đó tâch tín t ng ng i c t văo m t m ng riíng. Quy c tín lă t cu i cùng trong xđu h tín. Hêy s p x p l i m ng h tín đê cho theo tín (th t t đi n). a ra danh sâch lúc ch a s p x p vă danh sâch sau khi đê s p x p.

4. c văo m t xđu, sau đó thay t t c câc xđu con th c đ n (n u có) b ng xđu con l nh đ n. a ra xđu ban đ u vă xđu sau khi đê thay.

5 Ki u b n ghi (RECORD)

1. Nh p văo m t danh sâch N cân b g m h , tín, n m sinh, gi i tính. a ra danh sâch g m s th t , h tín, n m sinh c a nh ng cân b đ n n m 1997 đê đ tu i v h u (gi s tu i nam 60, n 55).

2. M t tam giâc đ c xem nh m t t p h p g m 3 đi m trín m t ph ng. Hêy t ch c d li u ki u b n ghi đ l u gi câc t a đ c a tam giâc. Sau đó nh p văo m t tam giâc. Ki m tra xem tam giâ đê cho có câc tính ch t gì trong câc tính ch t d i đđy :

- Tam giâc đ u. - Tam giâc vuông.

- Tam giâc có m t góc tù.

3. Thông tin m t quy n sâch g m : tín tâc gi , tín sâch, tín nhă xu t băn vă n m xu t b n. Nh p N quy n sâch. a ra m t danh sâch g m s th t , tín sâch th a mên m t trong câc yíu c u tìm ki m d i đđy :

- ho c theo tín tâc gi . - ho c theo tín nhă xu t băn.

- ho c theo n m xu b n : sâch có n m xu t b n ≥ giâ tr n m (ví d 1996) đ a văo.

6 Ki u t p h p (SET)

1. G i C lă t p h p câc kí t c a b ng mê ASCII (t p h p v tr ). Nh p văo hai t p h p câc kí t P vă Q b t k . K t thúc vi c nh p c a m i t p h p lă kí t ESC (có mê 27). a ra s câc ph n t c a câc t p BP, BQ, BPQ t ng ng l n l t lă t p h p bù c a P, t p h p bù c a Q, t p h p bù c a P ∩ Q.

2. Nh p m t xđu S vă m t t p h p A g m câc ch câi ‘A’ .. ‘P’ vă ‘a’ .. ‘p’. D u hi u k t thúc nh p t p h p A lă m t ch s b t k . Hêy :

- Cho bi t có bao nhiíu kí t c a S thu c A ?

- Xđy d ng t p h p AS g m câc kí t thu c S nh ng không thu c A.

3. Cho tr c m t giâ tr nguyín d ng n (n ≤ 255), sau đó xđy d ng t p h p S g m câc s t 2 đ n n. Xóa kh i S nh ng s không ph i lă nguyín t theo thu t gi i săng Eratosthỉne. Sau đó đ a ra n i dung c a t p h p S.

7 Ch ng trình con (PROCEDURE, FUNCTION)

1. Cho x th c. Xđy d ng hăm log(a, x) tính logarit c s a c a x. Dùng hăm năy tính giâ tr c a bi u th c sau : y = log ( ) log ( ) 1 2 2 2 2 1 0 1 1 1 1 − + − ⎧ ⎨ ⎪ ⎩ ⎪ < = > x x x khi x khi x khi x

2. Xđy d ng hăm UCLN (a, b) tính c ch ng l n nh t c a 2 s nguyín a, b. Dùng hăm năy đ tính c chung l n nh t c a m t dêy câc s nguyín a1, a2... an v i giâ tr n vă câc a1 đê cho.

3. L p th t c nh p m t đa th c vă th t c đ a m t đa th c ra. Dùng câc th t c năy nh p 2 đa th c t băn phím, sau đó đ a ra đa th c t ng vă đa th c tích c a 2 đa th c dê cho. 4. L p hăm UPPER(S) chuy n toăn b câc ch câi th ng trong xđu S thănh ch câi in

t ng ng vă hăm LOWER (S) chuy n toăn b câc ch câi in trong xđu S thănh ch câi th ng t ng ng.

5. Cho dêy s nguyín a0, a1,..., an,... xâc đnh b ng quy n p nh sau : a0 = 1

an = nan-1 n u n ch n (n = 2, 4, 6...) an = n + an-1 n u n l (n = 1, 3, 5...) Hêy đ a ra giâ tr an m i khi nh p văo m t só n. Ch ng trinh k t thúc khi n ≤ 0.

8 Ki u T p (FILE)

1. Ghi lín đa m t t p câc s nguyín đ c nhđp văo t băn phím. D u hi u k t thúc lă s nguyín 0. Sau khi t o xong m t s t p, hêy th đ c câc t p năy b ng l nh TYPE c a DOS.

2. c câc t p s nguyín đ c t o trong băi 1 v a r i vă đ a ra t t c câc s nguyín đ c đ c b ng m t trong hai câch :

- Dùng hăm FileSize. - Dùng hăm Eof.

3. T o t p DIEMTHI.DAT trín đa đ ch a thông tin đi m thi h c k c a m i h c sinh.

Một phần của tài liệu Kỹ thuật lập trình turbo pascal (Trang 101 - 117)

Tải bản đầy đủ (PDF)

(117 trang)