Bai Tap Pascal

  • Uploaded by: chihieu
  • 0
  • 0
  • May 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Bai Tap Pascal as PDF for free.

More details

  • Words: 5,025
  • Pages: 24
môc lôc Bµi 1

ChuÈn bÞ lËp tr×nh b»ng Turbo Pascal.............................2

Bµi 2

C¸c kiÓu d÷ liÖu trong Turbo Pascal..................................2

Bµi 3

Mét sè c©u lÖnh – Hµm trong Turbo Pascal......................3

Bµi 4

C©u lÖnh lÆp trong turbo pascal......................................3

Bµi 5

Ch¬ng tr×nh con trong Pascal..........................................5

Bµi 6

D÷ liÖu cã cÊu tróc - kiÓu m¶ng.......................................6

Bµi 7

D÷ liÖu kiÓu x©u ký tù.....................................................7

Bµi 8

D÷ liÖu kiÓu b¶n ghi.......................................................14

Bµi 9

D÷ liÖu kiÓu tÖp (File)....................................................19

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809

Bµi 1

ChuÈn bÞ lËp tr×nh b»ng Turbo Pascal

Nªu thuËt to¸n ®Ó thùc hiÖn c¸c c«ng viÖc sau: - T×m nghiÖm cña ph¬ng tr×nh bËc nhÊt; t×m nghiÖm cña ph¬ng tr×nh bËc II - In ra c¸c íc sè cña mét sè nguyªn cho tríc - X¸c ®Þnh mét sè cã ph¶i lµ nguyªn tè hay kh«ng? - X¸c ®Þnh bé ba sè thùc a,b,c cã ph¶i lµ ®é dµi ba c¹nh cña tam gi¸c hay kh«ng?

Bµi 2

C¸c kiÓu d÷ liÖu trong Turbo Pascal

1. C¸c c©u lÖnh sau, c©u nµo sai cau nµo ®óng? Write(‘Hoi Tin Hoc Viet Nam’); Write(‘Co so Tin hoc Hai Quang’); Wirte(‘Xin Chao Cac Ban’); Realn(m); 2. KiÓm tra l¹i ch¬ng tr×nh sau sai chç nµo? Söa l¹i cho ®óng. Var a,b,c:Integer; cc:Char; tong:Real; Begin Writeln(‘CHUONG TRINH KIEM TRA KIEN THUC BAI CU’) Write(‘Moi ban nhap so a: ’); Readln(a); Write(‘Moi ban nhap so d: ’); Readln(tong); c:=a+tong; cc:=a; c:=5; Write(‘Tong hai so tren la: ’,c); Readln; Trang 2

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 End.

Bµi 3

Mét sè c©u lÖnh – Hµm trong Turbo Pascal

1. KiÓm tra l¹i ch¬ng tr×nh sau sai chç nµo? Söa l¹i cho ®óng. Var a,b,c:Integer; Begin Writeln(‘CHUONG TRINH KIEM TRA KIEN THUC BAI CU’) Write(‘Moi ban nhap so a: ’); Readln(a); Write(‘Moi ban nhap so d: ’); Readln(d); c:=a+b; Write(‘Tong hai so tren la: ,c:8:4); Readln; End. 2. NhËp vµo ba sè thùc, kiÓm tra ®ã cã ph¶i lµ ®é dµi ba c¹nh cña tam gi¸c hay kh«ng. NÕu ®óng, thùc hiÖn c¸c c«ng viÖc sau: - TÝnh chu vÞ, diÖn tÝch cña tam gi¸c ®ã. - KiÓm tra xem ®ã lµ tam gi¸c c©n hay ®Òu hay vu«ng hay tam gi¸c thêng. 3. LËp ch¬ng tr×nh gi¶i ph¬ng tr×nh bËc nhÊt. 4. LËp ch¬ng tr×nh t×m nghiÖm cña ph¬ng tr×nh bËc hai. Bµi 4

C©u lÖnh lÆp trong turbo pascal

1. LËp ch¬ng tr×nh tÝnh c¸c tæng sau: s1 = 1+2+3+ . . . +n s2=1+1/2+1/3+ . . . +1/n Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trang 3

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 s3= 1-1/2+1/3-1/4 . . . -1/(2n) s4=1+1/2!+1/3!+ . . . +1/n! 2. LËp ch¬ng tr×nh nhËp vµo mét d·y sè nguyªn d¬ng, tÝnh tæng c¸c sè ®ã. 3. TÝnh c¸c tæng trong bµi tËp 3 (bµi häc sè 3) víi sai sè epxilon cho tríc. (0<epxilon<1). Cã kiÓm tra ®iÒu kiÖn nhËp. 4. Dïng cÊu tróc lÆp Repeat . . . Until ®Ó x¸c ®Þnh mét sè nguyªn nhËp vµo tõ bµn phÝm cã ph¶i lµ sè nguyªn tè hay kh«ng. 5. LËp ch¬ng tr×nh t×m íc chung lín nhÊt vµ béi chung nhá nhÊt cña hai sè nguyªn d¬ng nhËp vµo tõ bµn phÝm. 6. Mét sè nguyªn d¬ng ®îc gäi lµ sè hoµn h¶o nÕu tæng tÊt c¶ c¸c íc cña nã (trõ nã) b»ng chÝnh nã. ViÕt ch¬ng tr×nh kiÓm tra mét sè nhËp vµo tõ bµn phÝm cã ph¶i lµ sè hoµn h¶o hay kh«ng? 7. LËp ch¬ng tr×nh in ra mµn h×nh tÊt c¶ c¸c sè nguyªn tè nhá h¬n mét sè n cho tríc. 8. LËp ch¬ng tr×nh in ra mµn h×nh tÊt c¶ c¸c sè hoµn h¶o nhá h¬n mét sè n cho tríc. 9. LËp ch¬ng tr×nh nhËp vµo mét sè nguyªn. KiÓm ta xem sè ®ã cã bao nhiªu ch÷ sè, In c¸c ch÷ sè ®ã ra mµn h×nh, mçi ch÷ sè trªn mét dßng. 10. LËp ch¬ng nhËp vµo mét sè tõ 1 ®Õn 7. Cho biÕt thêi kho¸ biÓu cña ngµy ®ã. 11. ViÕt ch¬ng tr×nh tÝnh gi¸ trÞ cña Cos(x) theo c«ng thøc: Cos(x) = 1 −

x 2 x 4 x 6 x8 + − + −  2! 4! 6! 8!

12. LËp ch¬ng tr×nh gi¶i hÖ ph¬ng tr×nh:

Trang 4

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 a1 x + b1 y + c1 = 0  a 2 x + b 2 y + c 2 = 0

13. ViÕt ch¬ng tr×nh nhËp vµo mét sè nguyªn n tõ bµn phÝm (0
14. TÝnh tæ hîp chËp k cña n ( C n ). 15. In ra mµn h×nh 100 sè ®Çu tiªn cña d· sè Fib«naci.

Bµi 5

Ch¬ng tr×nh con trong Pascal

1. X©y dùng c¸c ch¬ng tr×nh con ®Ó thùc hiÖn c¸c viÖc sau: - TÝnh giai thõa cña mét sè nguyªn. - X¸c ®Þnh mét sè cã ph¶i lµ nguyªn tè hay kh«ng? - X¸c ®Þnh mét sè cã ph¶i lµ sè hoµn h¶o hay kh«ng? 2. Sö dông c¸c ch¬ng tr×nh con ë bµi 1, thùc hiÖn c¸c viÖc sau: - NhËp vµo mét d·y c¸c sè nguyªn, x¸c ®Þnh sè nµo lµ sè hoµn h¶o, sè nµo lµ sè nguyªn tè, sè nµo kh«ng ph¶i lµ hoµn h¶o vµ nguyªn tè. 3. Gi¶i ph¬ng tr×nh bËc hai b»ng c¸ch sö dông ch¬ng tr×nh con. 4. Sö dông ch¬ng tr×nh con ®· t¹o ë bµi 1, thùc hiÖn c¸c phÐp tÝnh sau:  S = 1 + 2! + 3! + 4! . . . +n! (n<=13)  S = 1 + 1/(2*2!) + 1/(3*3!) + . . . + 1/(n*n!) (n<=13)  In ra c¸c sè nguyªn tè nhá h¬n 1000  In ra c¸c sè hoµn h¶o trong kho¶ng 100 ®Õn 1000  TÝnh tæng c¸c sè nguyªn tè trong kho¶ng 100 ®Õn 500. Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trang 5

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809  NhËp vµo mét sè nguyªn trong kho¶ng 10 ®Õn 10000. TÝnh tæng c¸c ch÷ sè cña sè ®ã. (Sè 9203 cã tæng c¸c ch÷ sè lµ14).  TÝnh Sin cña x (®¬n vÞ Radian) theo c«ng thøc: Sinx = x – x3/3! + x5/5! - . . . . . . . +(-1)n+1x2n+1/(2n+1)!

Bµi 6

D÷ liÖu cã cÊu tróc - kiÓu m¶ng

1. NhËp vµo mét m¶ng mét chiÒu c¸c sè nguyªn. In ra c¸c phÇn tö cña m¶ng ®ã. 2. NhËp vµo mét m¶ng mét chiÒu c¸c sè nguyªn vµ thùc hiÖn c¸c c«ng viÖc sau: - In ra tÊt c¶ c¸c sè nguyªn tè cña m¶ng. - In ra tÊt c¶ c¸c sè hoµn h¶o cña m¶ng - TÝnh tæng c¸c phÇn tö cña m¶ng - TÝnh trung b×nh céng c¶ c¸c phÇn tö lµ sè ch½n - TÝnh tæng c¸c phÇn tö t¹i vÞ trÝ lÎ 3. NhËp vµo mét m¶ng hai chiÒu c¸c sè thùc, in ra c¸c phÇn tö cña m¶ng vµ thùc hiÖn c¸c viÖc sau: - TÝnh tæng c¸c phÇn tö cña m¶ng - TÝnh tæng c¸c phÇn tö trªn dßng 3 - TÝnh trung b×nh céng c¸c phÇn tö trªn cét 4 4. NhËp vµo hai ma trËn cÊp MxN, tÝnh tæng hai ma trËn ®ã vµ in ra c¸c phÇn tö cña ba ma trËn trªn.

Trang 6

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 5. NhËp vµo mét ma trËn vu«ng cÊp m c¸c phÇn tö nguyªn. Vµ thùc hiÖn c¸c c«ng viÖc sau: - In ra m¶ng míi víi c¸c phÇn tö lµ c¸c sè ®¶o t¬ng øng cña m¶ng ban ®Çu. - TÝnh tæng b×nh ph¬ng c¸c phÇn tö trªn ®êng chÐo chÝnh. - TÝnh tæng nghÞch ®¶o cña c¸c phÇn tö trªn ®êng chÐo phô. - TÝnh tæng tÊt c¶ c¸c sè hoµn h¶o cña ma trËn - TÝnh b×nh qu©n c¸c sè nguyªn tè cña ma trËn 6. NhËp vµo m¶ng mét chiÒu c¸c sè nguyªn, thùc hiÖn c¸c c«ng viÖc sau: - TÝnh c¨n bËc hai cña tæng c¸c phÇn tö cã chØ sè chia cho 3 d 2. (m¶ng cã >10 phÇn tö) - TÝnh tæng c¨n bËc hai cña c¸c phÇn tö cã chØ sè chia cho 4 d 3. 7. NhËp vµo hai tËp hîp c¸c sè thùc (gäi lµ tËp A vµ tËp B), mçi tËp hîp cã Ýt nhÊt lµ 5 phÇn tö. - X¸c ®Þnh giao cña hai tËp hîp A vµ B - X¸c ®Þnh hîp cña hai tËp hîp trªn. - X¸c ®Þnh phÇn bï cña B trong A (HoÆc A trong B)

Bµi 7

D÷ liÖu kiÓu x©u ký tù

1. Kh¸i niÖm: D÷ liÖu kiÓu x©u ký tù (chuçi) lµ mét m¶ng bao gåm mét sè (kh«ng qu¸ 255) c¸c ký tù (Character). Sè ký tù tèi ®a cña mét chuçi do ngêi lËp tr×nh ®Þnh nghÜa (Khai b¸o). Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trang 7

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 1.1 C¸ch khai b¸o + Khai b¸o gi¸n tiÕp: Type Tenkhieu = String[n]; Var Tenbien: Tenkieu; Trong ®ã, String lµ tõ kho¸; n lµ ®é dµi tèi ®a cña chuçi stn; 1<=n<=255. Trêng hîp n=255 ta kh«ng cÇn ph¶i khai b¸omµ ta chØ cÇn khai b¸o víi tõ kho¸ String; + Khai b¸o trùc tiÕp: Var st:String[n]. Khi gÆp khai b¸o nh trªn, ta ®îc chuçi st, cã ®é dµi tèi ®a lµ n ký tù. NÕu nhËp d÷ liÖu cho chuçi st mµ nhiÒu h¬n n ký tù, Pascal sÏ tù ®éng c¾t bá c¸c ký tù ë vÞ trÝ n+1. 1.2 Truy xuÊt vµ truy nhËp d÷ liÖu kiÓu chuçi V× chuçi ký tù lµ lµ mét m¶ng bao gåm mét sè ký tù nªn ta cã thÓ coi ®©y lµ mét m¶ng c¸c phÇn tö kiÓu Character ®Ó truy nhËp ®Õn tõng ký tù cña chuçi nh c¸ch truy nhËp, truy xuÊt cña m¶ng mét chiÒu. Ngoµi ra, th«ng thêng ta truy nhËp, truy xuÊt biÕn kiÓu chuçi ký tù th«ng qua tªn biÕn. VÝ dô: Var st:String[100];{st:array[1..100] Of Char;} {Var st:array[1..100] of char} Begin St:= ‘Cong hoa’; Write(‘Chuoi st cua ban la:’ ,st); Write(‘Ky tu thu ba cua chuoi do la: ‘,st[3]); St[2]:=’a’; Write(‘Chuoi st moi la: ‘,st); Trang 8

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 Readln; End. 2. C¸c phÐp to¸n trªn chuçi ký tù 2.1 PhÐp g¸n Ta cã thÓ thùc hiÖn phÐp g¸n trong chuçi ký tù nh c¸c kiÓu d÷ liÖu kh¸c. VÝ dô: st:=‘Hello’;st1:=‘Pascal’; st2:=’I’’ m a teacher’; Chó ý: H»ng chuçi ký tù ®îc ®Æt gi÷a cÆp dÊu nh¸y (‘’). DÊu nh¸y trong chuçi h»ng ®îc ký hiÖu b»ng hai dÊu nh¸y (‘’); Trong vÝ dô trªn, chuçi st2 cã gi¸ trÞ lµ: I’ m a teacher. 2.2 PhÐp ghÐp nèi chuçi Pascal cho phÐp ngêi lËp tr×nh cã thÓ ghÐp nãi c¸c chuçi ng¾n thµnh mét chuçi dµi theo thø tù c¸c chuçi ghÐp nèi. VÝ dô: St1:= ‘Hello’;st2:= ‘How are you?’ St:=st1+ ‘ ’+st2; Khi ®ã, chuçi st cã gi¸ trÞ lµ: ‘Hello How are you?’ (§Ó ghÐp nèi chuçi, Pascal dïng to¸n tö + ).

2.3 PhÐp so s¸nh chuçi Pascal dïng b¶ng m· ASCII ®Ó so s¸nh c¸c ký tù cïng vÞ trÝ trong hai chuçi víi nhau. VÝ dô: St:=’ABCD’; st2:=’ABCD’ th× st=st2. Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan

ChÝ HiÕu

Trang 9

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 St:=’ABCD’;st1:=’ABDC’ th× st<st1. St=’ABCD’; st1=’ABCDA’ Th× st<st1. St:=’ABCD’;st1:=’aBCD’ th× st<st1. 3. Mét sè thñ tôc, hµm trªn chuçi ký tù. 3.1 Hµm x¸c ®Þnh ®é dµi chña chuçi Tªn hµm: Length D¹ng hµm: Length(st); KÕt qu¶: Cho ®é dµi thùc cña chuçi st. 3.2 Hµm sao chÐp chuçi ký tù Tªnhµm: Copy D¹ng hµm: Copy(st,m,n); KÕt qu¶: Cho mét chuçi cã n ký tù, lÊy tõ ký tù thø m chña chuçi st. VÝ dô: Var st,st1:=string[200]; Begin St:=’ABCDEF’; Write(‘Do dai cua chuoi st la: ’, Length(st)); St1:=Copy(st,3,2); Write(‘Chuoi s1 co gia tri la: ‘,st1); Readln; End. 3.3 Thñ tôc xo¸ mét sè ký tù trong chuçi Tªn thñ tôc: DELETE Trang 10 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 D¹ng thñ tôc: Delete(st,m,n); KÕt qu¶: Xo¸ ®i n ký tù cña chuçi st, tõ vÞ trÝ thø m. VÝ dô: st:=’ABCDEFGH’; Delete(st,3,4); Write(st); 3.4 Thñ tôc chÌn thªm mét sè ký tù vµo chuçi Tªn thñ tôc: INSERT D¹ng thñ tôc: Insert (st1,st2,n); KÕt qu¶: ChÌn chuçi st2 vµo chuçi st1, t¹i vÞ trÝ n (cña chuçi st1) VÝ dô: St1:= ‘ABCGH’; st2:= ‘DEF’; Insert(st1,st2,4); Write(st1); 3.5 Thñ tôc ®æi sè thµnh chuçi Tªn thñ tôc: STR D¹ng thñ tôc: Str(n,st); KÕt qu¶: §æi sè n thµnh chuçi st víi c¸c ký tù cña chuçi nµy lµ tÊt c¶ c¸c ch÷ sè cña sè n. VÝ dô: N:=12345; Str(n,st);{12345=>’12345’} Write(st);{st=’12345’} Write(st[3]);

3.6 Thñ tôc ®æi chuçi sè thµnh sè Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 11

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 Tªn thñ tôc: VAL D¹ng thñ tôc: Val(st,n,code); KÕt qu¶: §æi chuçi sè st thµnh sè n. NÕu ®æi ®îc, Code cã gi¸ trÞ b»ng 0. NÕu kh«ng ®æi ®îc, Code cã gi¸ trÞ b»ng vÞ trÝ cña ký tù sai trong chuçi st; n b»ng 0. VÝ dô: Val(‘123.45’,m,n);{m=123.45} K:=m+15;{k=138.45} Write(m:8:2, k:8:2);{In ra sè 123.45

vµ 138.45}

Val(‘123.34.45’,m,n); {cho: n=7; m=0) K:=m+10;{k=10;} Write(k); Lu ý: - NÕu sö dông khai b¸o chuçi ký tù trong danh s¸ch ®èi sè cña CTC th× ta phai khai b¸o b»ng ®Þnh nghÜa kiÓu cho chuçi ký tù cÇn sö dông ë ch¬ng tr×nh chÝnh bëi tõ kho¸ TYPE. VÝ dô: Type ht20=String[20]; Var st,st1:ht20; Procedure Thutc( var xau:ht20;m,n:integer); ...... (C¸ch



dông:

Procedure

Thutuc(Var

xau:string[20];m,n:Integer); lµ sai)

Bµi tËp Trang 12 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 1. ViÕt ch¬ng tr×nh nhËp vµo mét x©u ký tù. KiÓm tra xem ®ã cã ph¶i lµ x©u sè hay kh«ng? 2. Mét chuçi ®îc gäi lµ Paladom nÕu chuçi ®ã ®èi xøng qua g¬ng. LËp ch¬ng tr×nh nhËp vµo mét chuçi ký tù, kiÓm tra xem chuçi ®ã cã ph¶i lµ chuçi Paladom hay kh«ng? 3. NhËp vµo danh s¸ch tªn cña mét líp häc sinh. S¾p xÕp danh s¸ch ®ã theo Alfabet cña tªn. 4. NhËp vµo mét sè nguyªn trong kho¶ng 10 ®Õn 1000. §äc sè ®ã. VÝ dô: NhËp sè 9203 th× ®äc ra lµ sè ChÝn ngh×n hai tr¨m linh ba. TÝnh tæng c¸c ch÷ sè cña sè ®ã ( sè 9203 cã tæng c¸c ch÷ sè lµ 14). 5. ViÕt ch¬ng tr×nh nhËp vµo mét x©u ký tù gåm c¸c tõ. LËp mét thñ tôc ®Ó lo¹i bá c¸c ký tù trèng v« nghÜa. 6. ViÕt ch¬ng tr×nh nhËp vµo mét x©u tõ bµn phÝm. H·y ®Õm trong x©u ®ã cã bao nhiªu tõ? (Tõ lµ mét d·y liªn tôc c¸c ký tù kho¸c kho¶ng tr¾ng). 7. ViÕt ch¬ng tr×nh In ra mµn h×nh mét dßng ch÷ ch¹y liªn tôc tõ ph¶i qua tr¸i mµn h×nh cho ®Õn khi gâ mét phÝm bÊt kú. 8. NhËp mét x©u S tõ bµn phÝm. X©u S gåm n sè thùc ®îc viÕt c¸ch nhau bëi dÊu phÈy, vÝ dô S= ‘1.23,3.45,-0.85,9.098,-5.78’. H·y chuyÓn c¸c sè tõ x©u S vµo m¶ng sè thùc A[n]. 9. NhËp tõ bµn phÝm mét x©u ký tù S. XÐt xem cã hay kh«ng mét x©u X (cã ®é dµi nhá nhÊt) sao cho S lµ ghÐp cña mét sè lÇn liªn tiÕp tõ X. VÝ dô: S = ‘abcabcabcabc’ th× X = ‘abc’; cßn nÕu S = ‘abcac’ th× kh«ng cã x©u X. Th«ng b¸o kÕt qu¶ ra mµn h×nh. Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 13

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 10. NhËp tõ bµn phÝm hai x©u S1 vµ S2. XÐt xem cã hay kh«ng mét x©u X sao cho c¶ S1 vµ S2 ®Òu lµ ghÐp cña mét sè lÇn liªn tôc tõ x©u X (cã ®é dµi nhá nhÊt). Thån b¸o kÕt qu¶. 11. NhËp vµo tõ bµn phÝm hai x©u S1 vµ S2. H·y xÐt xem cã hay kh«ng S1 (S2) cã ®îc nhËn tõ S2 (S1) b»ng c¸ch g¹ch ®i mét sè ký tù hay kh«ng? Bµi 8

D÷ liÖu kiÓu b¶n ghi

1. Kh¸i niÖm - ®Þnh nghÜa C¸c kiÓu d÷ liÖu cã cÊu tróc ta ®· ®îc häc (M¶ng, x©u) ®Òu ®îc t¹o b»ng tËp hîp c¸c phÇn tö cã cïng kiÓu chuÈn. Trong thùc tÕ chóng ta cÇn c¸c cÊu tróc mµ trong ®ã, c¸c phÇn tö cña nã thÓ cã kiÓu d÷ liÖu kh¸c nhau nhng cã liªn kÕt víi nhau. §Ó t¹o ®îc kiÓu cÊu tróc ®ã, Turbo Pascal ®Þnh nghÜa cho ta B¶n ghi (hay cßn gäi lµ thÎ ghi - RECORD). Nãi c¸ch kh¸c, ®Ó m« t¶ mét ®èi tîng mµ c¸c phÇn tö d÷ liÖu cã m« t¶ kiÓu kh¸c nhau trong Turbo Pascal, ta dïng cÊu tróc kiÓu RECORD. Nh vËy RECORD lµ mét ph¬ng tiÖn linh ho¹t nhÊt ®Ó x©y dùng c¸c kiÓu d÷ liÖu míi. 2. M« t¶ - khai b¸o §Ó m« t¶ kiÓu B¶n ghi trong Turbo Pascal, ta dïng tõ kho¸ RECORD, tiÕp theo lµ danh s¸ch m« t¶ c¸c phÈn tö d÷ liÖu (sau nµy ®îc gäi lµ Trêng (Field)). M« t¶ kiÓu RECORD bao giê còng ®îc kÕt thóc b»ng tõ kho¸ END; §Ó khai b¸o mét kiÓu T, cã cÊu tróc RECORD víi danh s¸ch c¸c trêng cã tªn lµ t1,t2,t3, . . ., tn vµ cã m« t¶ kiÓu t¬ng øng lµ K1, K2, K3, . . ., Kn, ta cã c¸ch viÕt tæng qu¸t sau: TYPE T = RECORD Trang 14 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 t1: K1; t2: K2; t3: K3; ....... tn: Kn; END; VÝ dô: Mét ®Þa chØ nhµ bao gåm c¸c d÷ liÖu: Sè nhµ, tªn phè, tªn thµnh phè, tªn TØnh; ta m« t¶ mét kiÓu RECORD cã tªn lµ Dia_chi nh sau:

TYPE Dia_chi =

RECORD

So_nha: Integer; Ten_Pho: String[30]; Ten_TPho: String[15]; Ten_Tinh: String[20]; END; §Ó m« t¶ thêi gian (DATE), ta cã 3 trêng: Ngµy, Th¸ng vµ n¨m, ta m« t¶ nh sau: TYPE DATE =

RECORD Ngay: 1 . . 31; Thang: 1 . . 12; Nam: Integer;

END;

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 15

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 TYPE Nhansu = RECORD Hoten: String[35]; Ngaysinh: DATE; Diachi: Dia_chi; Heso,lc: Real; END; 3. Truy xuÊt – truy nhËp §Ó truy xuÊt – truy nhËp ®Õn tõng trêng cña mét RECORD, ta dïng tªn biÕn B¶n ghi, sau ®ã ®Õn dÊu chÊm (.) vµ tªn trêng.

VÝ dô: VAR Nguoi, nguoi1: Nhansu; BEGIN Write(‘Mêi nhËp Hä vµ tªn : ’);Readln(Nguoi.Hoten); Write(‘Mêi nhËp N¨m sinh: ’); Readln(Nguoi.Ngaysinh.nam); Writeln(‘Mêi nhËp ®Þa chØ: ’); Write(‘ Sè nhµ: ’); Readln(Nguoi.Diachi.So_nha); Write(‘ Tªn phè: ’); Readln(Nguoi.Diachi.Ten_pho); Write(‘ Thµnh phè: ’); Readln(Nguoi.Diachi.Ten_Tpho); Write(‘ TØnh: ’); Readln(Nguoi.Diachi.Ten_Tinh); Write(‘Mêi nhËp hÖ sè l¬ng: ’);Readln(Nguoi.heso); Nguoi.lc:=Nguoi.heso*290000; Nguoi1:=Nguoi; Trang 16 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 ............................................... END. 4. C©u lÖnh With D¹ng lÖnh: With Do ; VÝ dô: VAR Nguoi, nguoi1: Nhansu; BEGIN With Nguoi Do Begin Write(‘Mêi nhËp Hä vµ tªn : ’);Readln(Hoten); With Ngaysinh Do Begin Write(‘Mêi nhËp N¨m sinh: ’); Readln(nam); End; With Diachi Do Begin Writeln(‘Mêi nhËp ®Þa chØ: ’); Write(‘ Sè nhµ: ’); Readln(So_nha); Write(‘ Tªn phè: ’); Readln(Ten_pho); Write(‘ Thµnh phè: ’); Readln(Ten_Tpho); Write(‘ TØnh: ’); Readln(Ten_Tinh); End; Write(‘Mêi nhËp hÖ sè l¬ng: ’);Readln(heso); Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 17

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 lc:=heso*290000; End; Nguoi1:=Nguoi;

With Nguoi, Ngaysinh Do Begin Ngay:=15; Thang:=10; Nam:=1980; End; ............................................... END.

Bµi tËp 1.

ViÕt ch¬ng tr×nh nhËp vµo hä tªn, §iÓm To¸n, Lý, Ho¸ vµ trung b×nh cña häc sinh mét líp. Trong ®ã trung b×nh = (§iÓm to¸n + ®iÓm lý + ®iÓm ho¸)/3.

a) In danh s¸ch theo thø tù t¨ng dÇn cña ®iÓm trung b×nh. b) In danh s¸ch theo thø tù t¨ng dÇn cña Tªn. c) In danh s¸ch häc sinh cã ®iÓm trung b×nh tõ 5 trë lªn. d) In danh s¸ch häc sinh giái. Häc sinh giái lµ häc sinh cã ®iÓm trung b×nh trªn 8 vµ ®iÓm c¸c m«n ph¶i tõ 7 trë lªn. e) In danh s¸ch häc sinh ph¶i kiÓm tra l¹i tõng m«n. Ghi chó: Mçi häc sinh ph¶i ®îc in trªn mét dßng víi ®Çy ®ñ c¸c trêng. C¸c gi¸ trÞ cïng mét trêng ph¶i th¼ng trong mét cét.

Trang 18 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809

D÷ liÖu kiÓu tÖp (File)

Bµi 9 1. Khai b¸o

• Khai b¸o b»ng m« t¶ kiÓu: Type Kieu_TepT = FILE OF KPT; Var Biªntep: Kieu_TepT; • Khai b¸o trùc tiÕp: Var Biªntep: FILE OF KPT; VÝ dô: TYPE Nhansu = RECORD Hoten:String[35]; Namsinh: Integer; Quequan: String[50]; End; Var

f1: FILE OF Integer; f3: FILE OF Boolean;

f5: FILE OF Char;

f2: FILE OF Real; f4: FILE OF Nhansu;

f6: FILE OF Array[1..30] Of Real;

2. CÊu tróc vµ ph©n lo¹i tÖp CÊu tróc cña mét tÖp phô thuéc vµo kiÓu phÇn tö cña tÖp (TÊt c¶ c¸c phÇn tö cña tÖp ph¶i cã cïng mét kiÓu phÇn tö). C¸c phÇn tö ®îc s¾p xÕp thµnh mét d·y (nh cuén phim mµ mçi ¶nh lµ mét phÇn tö). Mçi tÖp ®Òu ®îc kÕt thóc bëi mét dÊu hiÖu ®Ó b¸o hÕt tÖp lµ EOF(F) (End Of File). Pascal cã hµm chuÈn kiÓu Boolean (Hµm EOF) víi tham sè lµ biÕn tÖp ®Ó kiÓm tra xemm con trá tÖp ®· ë

Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 19

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 vÞ trÝ cuèi cïng hay cha. NÕu con trá cha ë cuèi th× hµm cã gi¸ trÞ lµ FALSE. ViÖc ph©n lo¹i tÖp ®îc dùa trªn viÖc bè trÝ c¸c phÇn tö cña tÖp trong bé nhí ngoµi vµ c¸ch truy cËp vµo tÖp: TÖp truy cËp tuÇn tù (B¨ng tõ)vµ TÖp truy cËp ngÉu nhiªn (§Üa tõ, ®Üa quang). 3. Më tÖp míi ®Ó lu d÷ liÖu §Ó t¹o mét tÖp ®Ó lu d÷ liÖu, Pascal dïng 02 thñ tôc ®i liÒn nhau theo thø tù: ASSIGN(Bien_Tep, Ten_Tep); REWRITE(Bien_Tep); §Ó ghi d÷ liÖu vµo tÖp, ta dïng lÖnh WRITE, víi có ph¸p nh sau: Write(Bien_Tep, Danh s¸ch c¸c gi¸ trÞ cÇn ghi vµo); Bíc cuèi cïng cña viÖc ghi d÷ liÖu vµo tÖp lµ ph¶i ®ãng tËp b»ng thñ tôc

CLOSE(Bien_Tep);

Chó ý: C¸c gi¸ trÞ ®îc ghi vµo ph¶i cã cïng kiÓu víi kiÓu phÇn tö cña tÖp. Khi mét tÖp ®îc më ®Ó ghi th× tÖp ®ã lµ tÖp rçng, nÕu tÖp ®ã ®· tån t¹i th× tÖp cò sÏ bÞ xo¸. V× vËy, cÇn kiÓm tra sù tån t¹i cña mét tÖp tríc khi më ®Ó ghi. VÝ dô: §Ó ghi c¸c sè nguyªn tõ 10 ®Õn 100 vµo mét tÖp cã tªn lµ SONGUYEN.DAT, ta dïng ®o¹n ch¬ng tr×nh nh sau: PROGRAM TAO_TEP; VAR

i:Integer; f: FILE OF Integer;

BEGIN ASSIGN(f, “SONGUYEN.DAT”); REWRITE(f); Trang 20 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 For i:=10 to 1000 do Write(f,i); CLOSE(f); End. Mét tÖp cã thÓ lµm tham sè cña CTC víi lêi khai b¸o b¾t buéc ph¶i sau tö kho¸ Var. Tøc lµ tÖp ®îc dïng lµm tham biÕn. 4. §äc d÷ liÖu tõ tÖp ®· cã §Ó ®äc d÷ liÖu tõ mét tÖp, Pascal dïng 02 thñ tôc ®i liÒn nhau theo thø tù: ASSIGN(Bien_Tep, Ten_Tep); RESET(Bien_Tep); §Ó ®äc d÷ liÖu tõ tÖp, ta dïng lÖnh READ, víi có ph¸p nh sau: Read(Bien_Tep, Danh s¸ch c¸c biÕn cÇn lÊy gi¸ trÞ); Chó ý: C¸c biÕn ®îc lÊy gi¸ trÞ ph¶i cã cïng kiÓu víi kiÓu phÇn tö cña tÖp. Ta chØ cã thÓ ®äc gi¸ trÞ cña tÖp ®Ó g¸n vµo c¸c biÕn vµ chØ cho c¸c biÕn mµ th«i. Tríc khi ®äc d÷ liÖu ph¶i kiÓm tra xem con trá tÖp ®· ë cuèi tÖp hay cha. NÕu cha ë cuèi tÖp th× míi ®äc ®îc. NÕu trá tÖp ®· ë cuèi tÖp mµ vÉn cè t×nh ®äc th× sÏ g©y ra lçi. Sau khi ®äc tÖp xong nªn ®ãng tÖp l¹i nh viÖc ghi d÷ liÖu vµo tÖp b»ng thñ tôc CLOSE(Biªn_Tep). VÝ dô: §Ó ®äc c¸c sè nguyªn vµ in ra mµn h×nh c¸c gÝ trÞ cña nã tõ tÖp cã tªn lµ SONGUYEN.DAT, ta dïng ®o¹n ch¬ng tr×nh nh sau: PROGRAM TAO_TEP; VAR

i:Integer; f: FILE OF Integer; Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 21

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 BEGIN ASSIGN(f, “SONGUYEN.DAT”); RESET(f); While NOT EOF(f) do Begin Read(f,i); Write(i:8); End; CLOSE(f); End. 5. TÖp truy cËp trùc tiÕp Ta cã thÓ dïng lÖnh

SEEK(Bien_Tep,No), víi No lµ sè thø tù cña

phÇn tö trong tÖp (PhÇn tö ®Çu tiªn cña tÖp ®îc ®¸nh sè lµ 0). 6. C¸c CTC xö lý tÖp trong Pascal FileSize (Bien_Tep): Hµm cho biÕt sè phÇn tö cña tÖp. FilePos(Bien_Tep): Hµm cho biÕt vÞ trÝ hiÖn thêi cña con trá tÖp. Erase(Bien_Tep): Thñ tôc xo¸ tÖp trªn ®Üa ®îc Ên ®Þnh víi Bien_Tep. Rename(Bien_Tep,Ten_Tep): Thñ tôc ®æi tªn tÖp ®îc Ên ®Þnh víi Bien_Tep thµnh tÖp míi cã tªn lag Ten_Tep. 7. TÖp v¨n b¶n Trong Pascal cã mét kiÓu tÖp ®· ®îc ®Þnh nghÜa tríc, ®ã lµ tÖp v¨n b¶n ®îc ®Þnh nghÜa víi tõ kho¸ TEXT. Khai b¸o: Var f,f1,f2: TEXT; •

§Ó ghi d÷ liÖu vµo tÖp v¨n b¶n ta cã thÓ sö dông mét trong ba c¸ch sau:

Write(Bien_Tep, Danh s¸ch c¸c gi¸ trÞ); Trang 22 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 Writeln(Bien_Tep, Danh s¸ch c¸c gi¸ trÞ); Writeln(Bien_Tep); Lu ý: Trong danh s¸ch c¸c gi¸ trÞ ®ã kh«ng ®îc cã biÕn kiÓu cÊu tróc. •

§Ó ®äc d÷ liÖu tõ tÖp v¨n b¶n ta cã thÓ sö dông mét trong ba c¸ch sau:

Read(Bien_Tep, Danh s¸ch c¸c BiÕn); Readln(Bien_Tep, Danh s¸ch c¸c BiÕn); Readln(Bien_Tep); 8. C¸ch kiÓm tra tÖp khi më §Ó biÕt ®îc mét tÖp khi më ®· tån t¹i hay cha, ta dïng ®o¹ ch¬ng tr×nh sau: ASSIGN(Bien_Tep,Ten_Tep); {$I-}

{ChuyÓn viÖc kiÓm tra Vµo/Ra cho ngêi dïng}

Reset(Bien_Tep); If (IOResult=0) then Write(‘TÖp nµy ®· tån t¹i’); {$I+}

Bµi tËp 1. ViÕt ch¬ng tr×nh ghi vµo mét tÖp c¸c sè nguyªn ®îc nhËp tõ bµn phÝm. 2. ViÕt ch¬ng tr×nh ghi d÷ liÖu vµo mét tÖp T3 chøa c¸c sè nguyªn b»ng c¸ch ghÐp nèi hai tÖp sè nguyªn T1 vµ T2. 3. ViÕt ch¬ng tr×nh ®Õm sè ch÷ c¸i trong mét tÖp v¨n b¶n. 4. ViÕt ch¬ng tr×nh ®Õm sè tõ trong mét tÖp v¨n b¶n Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan Trang 23

ChÝ HiÕu

Trung t©m tin häc minh trÝ

 75 B¹ch liªu -

Vinh  038 3556012 - 0904 778809 5. Cho mét tÖp v¨n b¶n ®· cã s½n. ViÕt ch¬ng tr×nh ®Õm sè lÇn xuÊt hiÖn cña mét ch÷ c¸i trong tÖp v¨n b¶n ®ã. 6. ViÕt ch¬ng tr×nh qu¶n lý c¸n bé trong mét c¬ quan. Trong ®ã, ch¬ng tr×nh cho phÐp thªm c¸n bé, cËp nhËt d÷ liÖu cña mét c¸n bé nµo ®ã vµ cã thÓ In ra danh s¸ch c¸n bé. Híng dÉn: Ch¬ng tr×nh qu¶n lý c¸n bé gåm c¸c th«ng tin sau: Thø tù, hä tªn, n¨m sinh, hÖ sè l¬ng. Sö dông c¸c Modul ch¬ng tr×nh (CTC) ®Ó thùc hiÖn c¸c c«ng viÖc: Thªm, bít, CËp nhËt, In danh s¸ch.

Trang 24 Ng«n ng÷ lËp tr×nh Turbo PASCAL - Biªn so¹n: Phan ChÝ HiÕu

Related Documents

Bai Tap Pascal
May 2020 3
Bai Tap Pascal Co Ban
November 2019 17
Giao Trinh Bai Tap Pascal
October 2019 21
Bai Tap
October 2019 78
Bai Tap
June 2020 39

More Documents from ""

Bai Tap Pascal
May 2020 3