Bai Tap Turbo Pascal Lop 8- Tai Lieu Boi Duong Cho Hoc Sinh Gioi Mon Tin Hoc Danh Cho Hoc Sinh Thcs

Embed Size (px)

DESCRIPTION

Tuyen tap 100 bai tap va giao trinh hoc pascal lop 8

Citation preview

  • 100 bi tp Turbo Pascal

    U BAN NHN DN HUYN QU SNPHNG GIO DC V O TO

    *** **

    (Ti liu bi dng hc sinh gii mn tin hc dnh cho hc sinh THCS)

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 1

    Qu Sn, thng 11 nm 2010

  • 100 bi tp Turbo Pascal

    GII THIU TM TT TP TI LIU

    1. S cn thit:Cc trng THCS ang c xu hng dy mn t chn tin hc thay cho ch t

    chn khi m c s vt cht phc v cho vic dy hc mn hc ny c trang b ngy cng tt hn. Rt nhiu hc sinh, ph huynh hc sinh, lnh o cc trng mun bn thn, con mnh, hc sinh mnh tham gia cc k thi hc sinh gii mn tin hc (K thi tin hc tr, K thi hc sinh gii lp 9...) bi tnh mi m, hp dn, thit thc ca b mn. Ln u tin b mn tin hc c a vo dy hc ti cc trng THCS nn ti liu bi dng cho hc sinh gii dnh cho hc sinh THCS hu nh cha c. p ng nhu cu bi dng ti cc trng, tp ti liu bi dng hc sinh gii mn tin hc cp THCS vi tn gi 100 bi tp Turbo Pascal c b phn chuyn mn Phng GD&T Qu Sn bin son.

    2. Ni dung: Tp ti liu c bin son theo nh hng 10 x 10. Ni dung bi dng c chia lm 10 chng. Mi chng gm tm tt l thuyt v 10 bi tp xoay quanh ni dung ca chng. Mi bi tp c trnh by theo cu trc:

    a. bi.b. Hng dn, thut ton.c. M chng trnh.d. Nhn xt: Nhn mnh ni dung mi, quan trng cn nm sau khi thc hin bi

    tp, gii quyt bi ton theo thut ton khc, im c v cha c ca thut ton ...Ni dung cc bi tp cc chng c la chn theo hng k tha, tng dn

    kh. Nhiu bi ton cn gii quyt trong thc t c a vo cc bi tp nhm tng hng th hc tp ....

    Hu ht cc bi tp c kh va phi, ph hp vi ni dung bi dng cp trng. Ni dung lin quan vi mn ton v cc mn khc t lp 8 tr xung. Ni dung bi dng c chia thnh 10 chng nh sau:Lp 8:

    I. Lm quen vi chng trnh Pascal Khai bo, s dng bin Cc th tc vo ra.II. Cu trc la chn: if then else

    Case ... of ...III. Cu trc lp vi s ln lp bit: For to doIV. Cu trc lp vi s ln lp cha bit.V. D liu kiu mng (mt chiu).VI. Chng trnh con.VII. Chuyn : Tnh chia ht- S nguyn t.VIII. Chuyn dy con.IX. Chuyn ch s - h c s.X. Chuyn a thc.

    3. ngh:Chc chn tp ti liu cn hiu chnh, b sung c th a vo s dng. Rt

    mong Hi ng thm nh cho y kin c th v:- Nhng hiu chnh v cu trc ca tp ti liu.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 2

  • 100 bi tp Turbo Pascal

    - Nhng ni dung cn b sung thm, nhng ni dung cn gim bt cho ph hp vi thc t bi dng ti cc n v trng.- xut cc bi tp hay hn thay th cho cc bi tp c tp ti liu. Cc bi tp m tp ti liu cn thiu.

    CHNG I

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 3

  • 100 bi tp Turbo Pascal

    CC KIU D LIU C BNKHAI BO HNG, BIN, KIU, BIU THC V CU LNH

    A. L THUYT:I. CC KIU D LIU C BN1. Kiu logic

    - T kha: BOOLEAN- min gi tr: (TRUE, FALSE). - Cc php ton: php so snh (=, ) v cc php ton logic: AND, OR, XOR,

    NOT.Trong Pascal, khi so snh cc gi tr boolean ta tun theo qui tc: FALSE < TRUE.Gi s A v B l hai gi tr kiu Boolean. Kt qu ca cc php ton c th hin

    qua bng di y:

    A B A AND B A OR B A XOR B NOT ATRUE TRUE TRUE TRUE FALSE FALSETRUE FALSE FALSE TRUE TRUE FALSEFALSE TRUE FALSE TRUE TRUE TRUEFALSE FALSE FALSE FALSE FALSE TRUE

    2. Kiu s nguyn2.1. Cc kiu s nguyn

    Tn kiu Phm vi Dung lngShortint -128 127 1 byteByte 0 255 1 byteInteger -32768 32767 2 byteWord 0 65535 2 byteLongInt -2147483648 2147483647 4 byte

    2.2. Cc php ton trn kiu s nguyn2.2.1. Cc php ton s hc:

    +, -, *, / (php chia cho ra kt qu l s thc).Php chia ly phn nguyn: DIV (V d : 34 DIV 5 = 6).Php chia ly s d: MOD (V d: 34 MOD 5 = 4).

    3. Kiu s thc3.1. Cc kiu s thc:

    Tn kiu Phm vi Dung lngSingle 1.5 10-45 3.4 10+38 4 byteReal 2.9 10-39 1.7 10+38 6 byte

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 4

  • 100 bi tp Turbo Pascal

    Double 5.0 10-324 1.7 10+308 8 byteExtended 3.4 10-4932 1.1 10+4932 10 byte

    Ch : Cc kiu s thc Single, Double v Extended yu cu phi s dng chung vi b ng x l s hoc phi bin dich chng trnh vi ch th {$N+} lin kt b gi lp s.

    3.2. Cc php ton trn kiu s thc: +, -, *, /Ch : Trn kiu s thc khng tn ti cc php ton DIV v MOD.

    3.3. Cc hm s hc s dng cho kiu s nguyn v s thc:SQR(x): Tr v x2SQRT(x): Tr v cn bc hai ca x (x 0)ABS(x): Tr v |x|SIN(x): Tr v sin(x) theo radianCOS(x): Tr v cos(x) theo radianARCTAN(x): Tr v arctang(x) theo radianTRUNC(x): Tr v s nguyn gn vi x nht nhng b hn x.INT(x): Tr v phn nguyn ca xFRAC(x): Tr v phn thp phn ca xROUND(x): Lm trn s nguyn xPRED(n): Tr v gi tr ng trc nSUCC(n): Tr v gi tr ng sau nODD(n): Cho gi tr TRUE nu n l s l.INC(n): Tng n thm 1 n v (n:=n+1).DEC(n): Gim n i 1 n v (n:=n-1).

    4. Kiu k t- T kho: CHAR. - Kch thc: 1 byte. - biu din mt k t, ta c th s dng mt trong s cc cch sau y:

    t k t trong cp du nhy n. V d 'A', '0'. Dng hm CHR(n) (trong n l m ASCII ca k t cn biu din). V d

    CHR(65) biu din k t 'A'. Dng k hiu #n (trong n l m ASCII ca k t cn biu din). V d #65.

    - Cc php ton: =, >, >=,

  • 100 bi tp Turbo Pascal

    - SUCC(ch): cho k t ng sau k t ch. V d: SUCC('A')='B'.

    II. KHAI BO HNG- Hng l mt i lng c gi tr khng thay i trong sut chng trnh. - C php:

    CONST = ;

    III. KHAI BO BIN- Bin l mt i lng m gi tr ca n c th thay i trong qu trnh thc hin chng trnh. - C php:

    VAR [,,...] : ;V d:

    VAR x, y: Real; {Khai bo hai bin x, y c kiu l Real}a, b: Integer; {Khai bo hai bin a, b c kiu integer}

    Ch : Ta c th va khai bo bin, va gn gi tr khi u cho bin bng cch s dng c php nh sau:

    CONST : = ;V d:

    CONST x:integer = 5;Vi khai bo bin x nh trn, trong chng trnh gi tr ca bin x c th thay i. (iu ny khng ng nu chng ta khai bo x l hng).

    IV. BIU THCBiu thc (expression) l cng thc tnh ton m trong bao gm cc php ton,

    cc hng, cc bin, cc hm v cc du ngoc n.V d: (x +y)/(5-2*x) biu thc s hc

    (x+4)*2 = (8+y) biu thc logicTrong mt biu thc, th t u tin ca cc php ton c lit k theo th t sau:

    Li gi hm. Du ngoc () Php ton mt ngi (NOT, -). Php ton *, /, DIV, MOD, AND. Php ton +, -, OR, XOR Php ton so snh =, , =, , IN

    V. CU LNH6.1. Cu lnh n gin- Cu lnh gn (:=): :=;- Cc lnh xut nhp d liu: READ/READLN, WRITE/WRITELN.- Li gi hm, th tc.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 6

  • 100 bi tp Turbo Pascal

    6.2. Cu lnh c cu trc- Cu lnh ghp: BEGIN ... END;- Cc cu trc iu khin: IF.., CASE..., FOR..., REPEAT..., WHILE...

    6.3. Cc lnh xut nhp d liu6.3.1. Lnh xut d liu

    xut d liu ra mn hnh, ta s dng ba dng sau:(1) WRITE( [, ,...]);(2) WRITELN( [, ,...]);(3) WRITELN;Cc th tc trn c chc nng nh sau:

    (1) Sau khi xut gi tr ca cc tham s ra mn hnh th con tr khng xung dng.(2) Sau khi xut gi tr ca cc tham s ra mn hnh th con tr xung u dng tip

    theo.(3) Xung dng.

    Cc tham s c th l cc hng, bin, biu thc. Nu c nhiu tham s trong cu lnh th cc tham s phi c phn cch nhau bi du phy.

    Khi s dng lnh WRITE/WRITELN, ta c hai cch vit: khng qui cch v c qui cch:- Vit khng qui cch: d liu xut ra s c canh l pha bn tri. Nu d liu l s thc th s c in ra di dng biu din khoa hc.V d: WRITELN(x); WRITE(sin(3*x));- Vit c qui cch: d liu xut ra s c canh l pha bn phi.V d:

    WRITELN(x:5); WRITE(sin(13*x):5:2);Cu lnh Kt qu trn mn hnh

    Writeln('Hello');Writeln('Hello':10);Writeln(500);Writeln(500:5);Writeln(123.457)Writeln(123.45:8:2)

    Hello Hello500 5001.2345700000E+02 123.46

    6.3.2. Nhp d liu nhp d liu t bn phm vo cc bin c kiu d liu chun (tr cc bin kiu

    BOOLEAN), ta s dng c php sau y:READLN( [,,...,]);

    Ch : Khi gp cu lnh READLN; (khng c tham s), chng trnh s dng li ch ngi s dng nhn phm ENTER mi chy tip.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 7

  • 100 bi tp Turbo Pascal

    6.4. Cc hm v th tc thng dng trong nhp xut d liu Hm KEYPRESSED: Hm tr v gi tr TRUE nu nh c mt phm bt k c nhn, nu khng hm cho gi tr l FALSE. Hm READKEY: Hm c chc nng c mt k t t b m bn phm. Th tc GOTOXY(X,Y:Integer): Di chuyn con tr n ct X dng Y. Th tc CLRSCR: Xo mn hnh v a con tr v gc trn bn tri mn hnh. Th tc CLREOL: Xa cc k t t v tr con tr n ht dng. Th tc DELLINE: Xo dng ti v tr con tr v dn cc dng pha di ln. Th tc TEXTCOLOR(color:Byte): Thit lp mu cho cc k t. Trong color [0,15]. Th tc TEXTBACKGROUND(color:Byte): Thit lp mu nn cho mn hnh.

    B. BI TP:Bi tp 1.1:

    Vit chng trnh tnh chu vi v din tch ca hnh ch nht c chiu di hai cnh l a, b (c nhp t bn phm).a. Hng dn:

    - Nhp hai cnh vo hai bin a, b.- Chu vi hnh ch nht bng 2*(a+b); Din tch hnh ch nht bng a*b.

    b. M chng trnh:

    Program Chu_nhat;uses crt;Var a, b, S, CV: real;Begin Write('Nhap chieu dai:'); readln(a); Write('Nhap chieu rong:'); readln(b); S := a*b; CV := (a+b)*2; Writeln('Dien tich hinh chu nhat la:',S); Writeln('Chu vi hinh chu nhat la:',CV:10:2); readlnend.

    c. Nhn xt: Lnh write cho php in ra mn hnh mt hoc nhiu mc. C th nh dng c s in ra bng cch qui nh khong dnh cho phn nguyn, khong dnh cho phn thp phn. Bi tp 1.2:

    Vit chng trnh tnh chu vi, din tch hnh vung c cnh a (c nhp t bn phm).a. Hng dn:

    - Nhp cnh vo bin canh.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 8

  • 100 bi tp Turbo Pascal

    - Chu vi hnh vung bng 4*canh; Din tch hnh vung bng canh*canh.b. M chng trnh:

    Program HINH_VUONG;uses crt;Var canh: real;Begin clrscr; Write('Nhap do dai canh:');readln(canh); Writeln('Chu vi hinh vuong la:',4*canh:10:2); Writeln('Dien tich hinh vuong la:',canh*canh:10:2); readlnend.

    c. Nhn xt: Bi tp 1.2 tit kim c hai bin l CV v S v lnh write cho php in mt biu thc. Trong lp trnh vic tit kim bin l cn thit nhng i lc gy kh hiu khi c, kim tra chng trnh.

    Bi tp 1.3:Vit chng trnh tnh chu vi v din tch hnh trn c bn knh r (c nhp t bn

    phm).a. Hng dn:

    - Nhp bn knh vo bin r.- Chu vi ng trn bng 2*pi*r.- Din tch hnh trn bng pi*r*r.

    b. M chng trnh:

    Program HINH_TRON;uses crt;Var r: real;Begin clrscr; Write('Nhap ban kinh:'); readln(r); Writeln('Chu vi duong tron la:',2*pi*r:10:2); Writeln('Dien tich hinh tron la:',pi*r*r:10:2); readlnend.

    c. Nhn xt: pi l hng s. Mt hng s c th c ngi dng khai bo hoc do Pascal t to. Pi l hng do Pascal t to nn ngi dng khng cn khai bo.

    Bi tp 1.4:Vit chng trnh tnh din tch ca tam gic c ba cnh l a,b,c (c nhp t bn

    phm)a. Hng dn:

    - Nhp ba cnh ca tam gic vo ba bin a,b,c.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 9

  • 100 bi tp Turbo Pascal

    - Na chu vi ca tam gic p = (a+b+c)/2.- Din tch ca tam gic: s = ))()(( cpbpapp .

    b. M chng trnh:Program TAM_GIAC;uses crt;Var a,b,c,p,S: real;Begin clrscr; Write('Nhap canh a:');readln(a); Write('Nhap canh b:');readln(b); Write('Nhap canh c:');readln(c); p:=(a+b+c)/2; S:= sqrt(p*(p-a)*(p-b)*(p-c)); Write('Dien tich tam giac la:',s:10:2); readlnend.

    b. Nhn xt: y ta li hai ln dng bin trung gian p, s chng trnh sng sa, d theo di. sqrt l hm c sn ca turbo pascal. N cho php tnh cn bc hai ca mt s khng m.

    Bi tp 1.5:Vit chng trnh cho php tnh trung bnh cng ca bn s.

    a. Hng dn:- Nhp bn s vo bn bin a, b, c, d- Trung bnh cng ca a, b, c, d bng (a + b + c + d)/4.

    b. M chng trnh:

    Program TB_Cong_4_So;uses crt;Var a, b, c, d: real;Begin Clrscr; Write('Nhap so thu nhat:');readln(a); Write('Nhap so thu hai:');readln(b); Write('Nhap so thu ba:');readln(c); Write('Nhap so thu tu:');readln(d); Writeln('Trung binh cong: ',(a+b+c+d)/4):10:2); Readlnend.

    Bi tp 1.6:Vit chng trnh cho php tnh trung bnh cng ca bn s vi iu kin ch c

    s dng hai bin.a. Hng dn:

    - Dng mt bin S c gi tr ban u bng 0.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 10

  • 100 bi tp Turbo Pascal

    - Dng mt bin nhp s. - Sau khi nhp mt s cng ngay vo bin S.

    b. M chng trnh:Program TB_Cong_4_So;uses crt;Var s,a: real;Begin Clrscr; S:=0; Write('Nhap so thu nhat:');readln(a); S:=S+a; Write('Nhap so thu hai:');readln(a); S:= S+a; Write('Nhap so thu ba:');readln(a); S:=S+a; Write('Nhap so thu tu:');readln(a); S:=S+a; Writeln('Trung binh cong: ',S/4:10:2); readlnend.

    b. Nhn xt: Cu lnh gn S:= S+a thc hin vic cng thm a vo bin S. Thc cht l thc hin cc bc: ly gi tr ca S cng vi a ri ghi vo li bin S. y ta cng s dng bin a nh l mt bin tm cha tm thi gi tr c nhp t bn phm.

    Bi tp 1.7:Vit chng trnh cho php tnh trung bnh nhn ca bn s vi iu kin ch c

    s dng hai bin.a. Hng dn:

    - Dng mt bin S c gi tr ban u bng 1.- Dng mt bin nhp s. - Sau khi nhp mt s nhn ngay vo bin S.- Trung bnh nhn bn s l cn bc 4 tch ca chng (Dng hai ln cn bc hai).

    b. M chng trnh:Program TB_nhan;uses crt;Var a, S: real;Begin clrscr; S:=1; Write('Nhap so thu nhat: '); readln(a); S:=S*a; Write('Nhap so thu hai: '); readln(a); S:=S*a; Write('Nhap so thu ba: '); readln(a); S:=S*a; Write('Nhap so thu tu: '); readln(a); S:=S*a; Write('Trung binh nhan cua bon so la:',sqrt(sqrt(s))); readln

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 11

  • 100 bi tp Turbo Pascal

    End.b. Nhn xt: Ta dng hai ln khai phng ly cn bc 4 ca mt s. cng dn gi tr vo mt bin th bin c gi tr ban u l 0. nhn dn gi tr ban u vo bin th bin cn c gi tr ban u l 1. Bi tp 1.8:

    Vit chng trnh nhp hai s, i gi tr hai s ri in ra hai s.a. Hng dn:- Dng cc bin a, b lu hai s c nhp t bn phm;- Gn cho bin tam gi tr ca a.- Gn gi tr ca b cho a. (Sau lnh ny a c gi tr ca b).- Gn gi tr ca tm cho cho b (Sau lnh ny b c gi tr ca tam = a).b. M chng trnh:

    Program Doi_Gia_Tri;uses crt;var a, b, tam:real;Begin clrscr; write('nhap a: '); readln(a); write('nhap b: '); readln(b); writeln('Truoc khi doi a =',a,' va b= ',b); readln; tam:=a; a:=b; b:=tam; writeln('Sau khi doi a =',a,' va b= ',b); readlnend.

    Nhn xt: Nu thc hin hai lnh a:= b; b:=a i gi tr hai bin th sau hai lnh ny hai bin c gi tr bng nhau v bng b. Thc cht sau lnh th nht hai bin c gi tr bng nhau v bng b ri! Trong thc t i ch s du hai bnh cho nhau ta phi dng thm mt bnh ph.

    Bi tp 1.9Gii bi tp 1.8 m ch c s dng hai bin (Tc khng c dng thm bin

    tm).a. Hng dn:- Cng thm b vo a. (Gi tr hai bin sau lnh ny l: a+b, b)- Gn b bng tng tr i b (Sau lnh ny b c gi tr bng a);- Gn gi tr a bng tng tr i b mi (Sau lnh ny a c gi tr bng b).b. M chng trnh:

    Program Doi_Gia_Tri;uses crt;var a, b:real;Begin clrscr;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 12

  • 100 bi tp Turbo Pascal

    write('nhap a: '); readln(a); write('nhap b: '); readln(b); writeln('Truoc khi doi a =',a,' va b= ',b); readln; a:=a+b; b:=a-b; a:=a-b; writeln('Sau khi doi a =',a,' va b= ',b); readlnend.

    Nhn xt:Ging sang du gia hai bnh nhng khng ging hon ton!!!K thut i gi tr bin cho nhau s c s dng nhiu trong phn sp xp.Bi tp 1.10:

    Vit chng trnh cho bit ch s hng trm, hng chc, hng n v ca mt s c ba ch s. V d khi nhp s 357 th my in ra:- Ch s hng trm: 3.- Ch s hng chc: 5.- Ch s hng n v: 7.a. Hng dn:

    S dng hm mov ly s d. Khi chia cho 10 ly s d ta c ch s hng n v. S dng DIV ly phn nguyn. Khi chia cho 10 ly phn nguyn ta b i ch s hng n v s c ba ch s cn s c hai ch s.b. M chng trnh:

    Program CHU_SO;uses crt;var n:integer;begin clrscr; write('Nhap so n: ');readln(n); writeln('Chu so hang don vi: ',n mod 10); n:=n div 10; writeln('Chu so hang chuc: ',n mod 10); n:=n div 10; writeln('Chu so hang tram: ',n mod 10); readlnend.

    c. Nhn xt:Hy sa chng trnh c kt qu l hng trm, hng chc, hng n v.

    M chng trnh:Program CHU_SO;uses crt;var n:integer;begin

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 13

  • 100 bi tp Turbo Pascal

    clrscr; write('Nhap so n: ');readln(n); writeln('Chu so hang trm: ',n div 100); n:=n mov 100; writeln('Chu so hang chuc: ',n div 10); n:=n div 10; writeln('Chu so hang tram: ',n); readlnend.

    CHNG IICU LNH C CU TRC R NHNH

    A. L THUYTI. CU LNH R NHNH1.1. Lnh IF

    C php:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 14

  • 100 bi tp Turbo Pascal

    (1) IF B THEN S;(2) IF B THEN S1 ELSE S2;

    S thc hin:

    Ch : Khi s dng cu lnh IF th ng trc t kho ELSE khng c c du chm phy (;).1.2. Lnh CASE

    C php:Dng 1 Dng 2

    CASE B OFConst 1: S1;Const 2: S2;...Const n: Sn;

    END;

    CASE B OFConst 1: S1;Const 2: S2;...Const n: Sn;

    ELSE Sn+1;END;

    Trong : B: Biu thc kiu v hng m c nh kiu nguyn, kiu logic, kiu k t,

    kiu lit k. Const i: Hng th i, c th l mt gi tr hng, cc gi tr hng (phn cch nhau bi

    du phy) hoc cc on hng (dng hai du chm phn cch gia gi tr u v gi tr cui).

    Gi tr ca biu thc v gi tr ca tp hng i (i=1n) phi c cng kiu.Khi gp lnh CASE, chng trnh s kim tra: - Nu gi tr ca biu thc B nm trong tp hng const i th my s thc hin lnh Si tng ng. - Ngc li:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 15

    (2)

    B+ -

    S1 S2

    ...

    (1)

    B+ -

    S

    ...

  • 100 bi tp Turbo Pascal

    + i vi dng 1: Khng lm g c.+ i vi dng 2: thc hin lnh Sn+1.

    B. BI TP:Bi tp 2.1:

    Vit chng trnh in ra s ln hn trong hai s (c nhp t bn phm).a. Hng dn:

    - Nhp hai s vo hai bin a, b.- Nu a > b th in a. Nu a b th in a. Ngc li th in b.

    b. M chng trnh:

    Program SO_SANH1;uses crt;var a,b: real;begin clrscr; write('nhap so thu nhat: '); readln(a); write('nhap so thu hai: '); readln(b); if a> b then writeln(' So lon la:',a); if a b then writeln(' So lon la:',a:10:2) else writeln(' So lon la:',b:10:2); readlnend.

    c. Nhn xt: Khi hai s bng nhau th mi s c xem l s ln. Hy sa chng trnh khc phc yu im ny.

    Ni chung nn s dng lnh if then else v chng trnh sng sa, d hiu hn. Tuy nhin trong vi trng hp s dng cc lnh if then ri li d din t hn. Hy xem v d sau:

    Bi tp 2.2:Vit chng trnh in ra s ln nht trong bn s nhp t bn phm.

    a. Hng dn:Nu a b v a c v a d th a l s ln nht.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 16

  • 100 bi tp Turbo Pascal

    Tng t nh th xt cc trng hp cn li tm s ln nht.b. M chng trnh:

    Program So_Lon_Nhat_1;Uses crt;Var a,b,c,d: real;Begin Clrscr; Write('Nhap so thu nhat:');readln(a); Write('Nhap so thu hai:');readln(b); Write('Nhap so thu ba:');readln(c); Write('Nhap so thu tu:');readln(d); if (a>=b) and (a>=c) and (a>= d) then writeln('So lon nhat la:',a:10:2); if (b>=a) and (b>=c) and (b>= d) then writeln('So lon nhat la:',b:10:2); if (c>=a) and (c>=b) and (c>= d) then writeln('So lon nhat la:',c:10:2); if (d>=a) and (d>=b) and (d>= c) then writeln('So lon nhat la:',d:10:2); readlnend.

    c. Nhn xt: Hy s dng cu trc if then else gii bi tp trn. kh ca bi ton s tng ln nhiu nu thm yu cu c thng bo khi hai s, ba s, bn s bng nhau.

    Bi tp 2.3:Vit chng trnh in ra s ln nht trong bn s nhp t bn phm vi iu kin ch

    c dng hai bin.a. Hng dn:

    S dng mt bin max v mt bin a cha s va nhp. Cho max bng s u tin. Sau khi nhp mt s thc hin so snh nu s va nhp ln hn max th lu s va nhp vo max. Sau khi nhp xong ta c max l s ln nht(Gii thut ny gi l k thut lnh canh cn hiu r s dng sau ny).b. M chng trnh:

    Program So_Lon_Nhat_2;Uses crt;Var a,max: real;Begin Clrscr; Write('Nhap so thu nhat:');readln(a);Max:=a; Write('Nhap so thu hai:');readln(a);if a>=Max then Max:=a; Write('Nhap so thu ba:');readln(a);if a>=Max then Max:=a;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 17

  • 100 bi tp Turbo Pascal

    Write('Nhap so thu tu:');readln(a);if a>=Max then Max:=a; Write('So lon nhat la:',Max:10:2); readlnend.

    Bi tp 2. 4Vit chng trnh xt xem mt tam gic c l tam gic u hay khng khi bit ba

    cnh ca tam gic.a. Hng dn:

    - Nhp ba cnh ca tam gic vo ba bin a,b,c.- Nu a = b v b = c th tam gic l tam gic u v ngc li tam gic khng l tam

    gic u.b. M chng trnh:

    Program Tam_giac_deu;uses crt;var a,b,c: real;begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b); write('Nhap c = '); readln(c); if (a = b) and (b = c) then writeln('La tam giac deu') else writeln('Khong phai la tam giac deu'); readlnend.

    Bi tp 2. 5Vit chng trnh xt xem mt tam gic c l tam gic cn hay khng khi bit ba

    cnh ca tam gic.a.Hng dn:

    - Nhp ba cnh ca tam gic vo ba bin a,b,c.- Nu a = b hoc b = c hoc a = c th tam gic l tam gic cn v ngc li tam gic

    khng l tam gic cn.b.M chng trnh:

    Program Tam_giac_can;uses crt;var a,b,c: real;begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b);

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 18

  • 100 bi tp Turbo Pascal

    write('Nhap c = '); readln(c); if (a = b) or (b = c) or (a = c) then writeln('La tam giac can') else writeln('Khong phai la tam giac can'); readlnend.

    Bi tp 2. 6Vit chng trnh xt xem mt tam gic c l tam gic vung hay khng khi bit ba

    cnh ca tam gic.a.Hng dn:

    - Nhp ba cnh ca tam gic vo ba bin a,b,c.- Nu a2 = b2 + c2 hoc b2 = c2 + a2 hoc c2 = a2+b2 th tam gic l tam gic vung v

    ngc li tam gic khng l tam gic vung.b.M chng trnh:

    Program Tam_giac_can;uses crt;var a,b,c: real;begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b); write('Nhap c = '); readln(c); if (a*a = b*b+c*c) or (b*b = c*c+a*a) or (c*c= a*a+b*b) then writeln('La tam giac vuong') else writeln('Khong phai la tam giac vuong'); readlnend.

    Bi tp 2.7:Vit chng trnh gii phng trnh ax + b = 0 (Cc h s a, b c nhp t bn

    phm).a.Hng dn:

    - Nu a 0 th phng trnh c nghim x = ab

    - Nu a = 0 v b = 0 th phng trnh c v s nghim- Nu a = 0 v b 0 th phng trnh v nghim

    Hoc:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 19

  • 100 bi tp Turbo Pascal

    - Nu a = 0 th xt b. Nu b = 0 th phng trnh c v s nghim ngc li (b 0)

    th phng trnh v nghim ngc li (a 0) phng trnh c nghim x = ab

    .

    a. M chng trnh:Program Phuong_trinh_2;uses crt;var a,b:real;begin clrscr; Writeln(' CHUONG TRINH GIAI PT ax + b = 0'); Write('Nhap he so a = ');readln(a); Write('Nhap he so b = ');readln(b); if (a0) then writeln('phuong trinh',a:10:2,'x + ',b:10:2,'= 0',' co nghiem x =;',-b/a:10:2); if (a=0) and (b=0) then writeln('Phuong trinh co vo so nghiem'); if (a=0) and (b0) then writeln('Phuong trinh vo nghiem'); readln

    end.

    Hoc:Program Phuong_trinh_2;uses crt;var a,b:real;begin clrscr; Writeln(' CHUONG TRINH GIAI PT ax + b = 0'); Write('Nhap he so a = ');readln(a); Write('Nhap he so b = ');readln(b); if (a0) then writeln('phuong trinh',a:10:2,'x + ',b:10:2,'= 0',' co nghiem x =;',-b/a:10:2) else if (b=0) then writeln('Phuong trinh co vo so nghiem') else writeln('Phuong trinh vo nghiem'); readlnend.

    Bi tp 2.8: (HSG lp 8 -TP Hu 2006-2007)

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 20

  • 100 bi tp Turbo Pascal

    Ba bn An, Bnh v Cng cng tham gia mt tr chi nh sau: Mi bn nm trong tay mt ng xu, mi ng xu c hai trng thi : sp v nga. Theo hiu lnh, c ba bn cng a ng xu ca mnh ra pha trc. Nu c ba ng xu cng sp hoc cng nga th cha pht hin ngi thua cuc (ha nhau). Nu mt bn c trng thi ng xu khc vi hai bn kia( ngha l ng xu ca bn y sp cn hai ngi kia nga v ngc li ng xu ca bn y nga th hai ngi kia sp) th bn thng cuc. Hy vit chng trnh m phng tr chi trn.Thut ton:

    - m phng trng thi sp, nga ca ng xu ta dng hm Random(1) hoc dng Random(n) mod 2 vi n > 2.

    - Xt tm trng hp xy ra tm ngi thng cuc.Ci t:Program Sap_ngua;uses crt;Var A, B, C: byte;Begin clrscr; Writeln('Go phim de xem ket qua: '); A:=Random(10); A:=A mod 2; B:=Random(10); B:=B mod 2; C:=Random(10); C:=C mod 2; Write('Ket qua: ',a,b,c); if (A=0) and (B=0) and (C=0) then Write(' Hoa'); if (A=0) and (B=0) and (C=1) then Write(' C Thang'); if (A=0) and (B=1) and (C=0) then Write(' B Thang'); if (A=0) and (B=1) and (C=1) then Write(' A Thang'); if (A=1) and (B=0) and (C=0) then Write(' A Thang'); if (A=1) and (B=0) and (C=1) then Write(' B Thang'); if (A=1) and (B=1) and (C=0) then Write(' C Thang'); if (A=1) and (B=1) and (C=1) then Write(' Hoa'); Readln; ReadlnEnd.

    Bi tp 2.9:Vit chng trnh dch cc ngy trong tun sang ting anh

    2 3 4 5 6 7 8Monday Tuesday Wednesday Thursday Friday Saturday Sunday

    a. Hng dn:- Dng bin a kiu byte cha th (2 n 8)- Trng hp a = 2: Monday- Trng hp a = 3: Thursday- ...

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 21

  • 100 bi tp Turbo Pascal

    - Trng hp a = 8: Sunday- Ngoi ra khng cn th no.b. M chng trnh:

    Program dich;uses crt;Var thu:byte;begin clrscr; write('nhap thu can dich 28: '); readln(thu); case thu of 2: Write('--> Monday'); 3: Write('--> Tuesday'); 4: Write('--> Wednesday'); 5: Write('--> Thursday'); 6: Write('--> Friday'); 7: Write('--> Saturday'); 8: Write('--> Sunday'); else Write(' Khong co thu nay'); end; readlnend.

    Bi tp 2.10Vit chng trnh cho php tnh din tch cc hnh: Hnh vung; Hnh ch nht;

    Hnh trn; Tam gic; Hnh thang. Ngi dng chn hnh cn tnh din tch t bng chn, sau khai bo cc thng s lin quan v nhn c din tch ca hnh:

    MOI BAN CHON HINH CAN TINH DIEN TICH

    1. Hnh vung.2. Hnh ch nht.3. Hnh trn.4. Tam gic.5. Hnh thang.

    Mun tnh din tch tam gic, ngi dng g 4 v khai bo ng cao, y. Chng trnh tnh v thng din tch n ngi dng.a. Hng dn:

    - Dng cu trc chn Case chon of vi chon c kiu Char to bng chn.- Dng 3 bin a,b,c lu cc thng s ca hnh; Bin S lu din tch ca hnh.- Thc hin chung cu thng bo din tch (Nm ngoi Case . . . of) gn chong

    trnh.b. M chng trnh:

    Program Dien_Tich_cac_hinh;uses crt;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 22

  • 100 bi tp Turbo Pascal

    var chon: byte; a,b,c,S: real;Begin clrscr; writeln('CHUONG TRINH TINH DIEN TICH CAC HINH'); Writeln(' ------------'); writeln('1. DIEN TICH HINH TAM GIAC'); writeln('2. DIEN TICH HINH VUONG'); writeln('3. DIEN TICH HINH CHU NHAT'); writeln('4. DIEN TICH HINH THANG'); writeln('5. DIEN TICH HINH TRON'); write('Moi ban chon hinh can tinh dien tich: ');readln(chon); case chon of 1 : Begin Write('Cho biet canh day: '); readln(a); Write('Cho biet chieu cao: '); readln(b); S:=(a*b)/2; end; 2:Begin Write('Cho biet chieu dai canh: '); readln(a); S:=a*a; end; 3:Begin Write('Cho biet chieu dai: '); readln(a); Write('Cho biet chieu rong: '); readln(b); S:=a*b; end; 4:Begin Write('Cho biet day lon: '); readln(a); Write('Cho biet day nho: '); readln(b); Write('Cho biet chieu cao: '); readln(c); S:=(a+b)*c/2; End; 5:Begin Write('Cho biet ban kinh: '); readln(a); S:=a*a*pi; End; else Writeln('Chon sai roi!!!'); end; Writeln('Dien tich cua hinh la: ',S:8:2); readlnend.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 23

  • 100 bi tp Turbo Pascal

    c. Nhn xt: Vi mi trng hp tha Case bin chn of thc hin mt lnh. V th, mun thc hin nhiu lnh ta cn ghp nhiu lnh thnh mt lnh ghp.

    CHNG IIICU LNH C CU TRC LP XC NH

    A. L THUYT:II. CU LNH LP2.1. Vng lp xc nh

    C hai dng sau: Dng tin

    FOR := TO DO S; Dng li

    FOR := DOWNTO DO S;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 24

  • 100 bi tp Turbo Pascal

    S thc hin vng lp FOR:

    Ch : Khi s dng cu lnh lp FOR cn ch cc im sau: Khng nn tu tin thay i gi tr ca bin m bn trong vng lp FOR v lm nh

    vy c th s khng kim sot c bin m. Gi tr Max v Min trong cu lnh FOR s c xc nh ngay khi vo u vng lp.

    Do cho d trong vng lp ta c thay i gi tr ca n th s ln lp cng khng thay i.

    B. BI TPBi tp 3.1:

    Vit chng trnh in ra cc s l nh hn hoc bng n (Vi n c nhp).a. Hng dn:

    - Cho bin i chy t 1 n n.- Nu i chn ( i chia 2 d 0) th in ra s n.

    b. M chng trnh:

    Program In_So_Le;Uses crt;var i,n: integer;Begin Clrscr; Write('Nhap so n ='); readln(n); For i:=1 to n do if i mod 2 =1 then Write(i:3,','); readlnend.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 25

    Dng tin

    Bin m:=Min

    Bin m=Max

    +

    -

    ThotS;DEC(Bin m);

  • 100 bi tp Turbo Pascal

    Bi tp 3.2:Vit chng trnh in ra cc s l nh hn hoc bng n ( Vi n c nhp). Sao cho

    15 s l c in trn mt dng.a. Hng dn:

    - Cho j =0.- Cho bin i chy t 1 n n.- Nu i chn ( i chia 2 d 0) th in ra s n v tng dem ln 1- Nu dem chia ht cho 15 th thc hin xung dng (Dng Writeln).

    b. M chng trnh:Program In_So_Le;Uses crt;var Dem,i,n: integer;Begin Clrscr; Write('Nhap so n ='); readln(n); Dem:= 0; For i:=1 to n do if i mod 2 =1 then Begin Write(i:3,','); Dem:= Dem + 1; if Dem mod 15 = 0 then Writeln; end; readlnend.

    c. Nhn xt: Lnh writeln khng c tham s cho php xung hng.Nu c nhn xt trong 30 s th c 15 s l, ta c th khng cn thm bin m m ch cn kim tra bin i xung hng.

    Bi tp 3.3:Vit chng trnh in ra tng cc s l nh hn hoc bng n ( Vi n c nhp).

    a. Hng dn:- Cho S = 0.- Cho bin i chy t 1 n n.- Nu i chn ( i chia 2 d 0) th cng thm i vo S.- In ra S.

    b. M chng trnh:Program In_So_Le;Uses crt;var S,i,n: integer;Begin Clrscr; Write('Nhap so n ='); readln(n); S:= 0;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 26

  • 100 bi tp Turbo Pascal

    For i:=1 to n do if i mod 2 =1 then S:= S+i; Writeln('Tong cac so le nho hon ',n,' la: ',S); readlnend.

    c. Nhn xt: Ta dng bin S cng dn nn n c khi to gi tr u bng 0.

    Bi tp 3.4:Vit chng trnh in ra tt c cc c ca mt s n (Vi n c nhp t bn phm)

    a. Hng dn:- Cho bin i chy t 1 n n. Nu n chia ht cho i th in ra i.

    b. M chng trnh:Program Tim_uoc;uses crt;Var n, i: integer;Begin clrscr; Write('Nhap so n ='); readln(n); For i:=1 to n do if n mod i = 0 then write(i:3,','); readlnend.

    c. Nhn xt: Chng trnh trn c hai im yu:- In d mt du phy cui dy cc c. - Khi n = 0 th khng in mt s no trong khi mi s u l c ca 0.Hy tm cch khc phc yu im ny.

    Bi tp 3.5:Mt s c tng cc c nh hn n bng chnh n c gi l s hon chnh.

    V d: 6 c cc c nh hn n l 1, 2, 3. Tng l 1 + 2 + 3 = 6.Vit chng trnh xt xem mt s n c nhp t bn phm c phi l s hon

    chnh khng.a. Hng dn:

    - Dng bin n lu s cn xt. - Bin S c gi tr ban u bng 0.- Cho i chy t 1 n n-1. nu i l c ca n th cng thm i vo S.- Nu S = n th S l s hon chnh.

    b. M chng trnh:

    Program So_Hoan_Chinh;uses crt;var n, i, s: integer;begin write('nhap so n: ');readln(n);

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 27

  • 100 bi tp Turbo Pascal

    s:=0; for i:= 1 to n -1 do if n mod i = 0 then s:=s+i; if s = n then write(n, ' la so hoan chinh') else writeln(n, ' khong phai la so hoan chinh'); readlnend.

    Bi tp 3.6:Vit chng trnh tm cc s hon chnh nh hn n (Vi n c nhp t bn phm).

    a. Hng dn:Cho bin i chy t 1 n n. Xt i. Nu n l s hon chnh th in ra.

    b. M chng trnh:Program Tim_uoc_2;uses crt;Var S, n, i,j: longint;Begin clrscr; Write('Nhap so n ='); readln(n); For i:=1 to n do Begin S:=0; For j:=1 to i do if i mod j = 0 then S:=S+j; if S = 2*i then write(i:6,','); end; readlnend.

    c. Nhn xt: y ta s dng hai vng lp lng nhau.

    Bi tp 3.7In bng cu chng n (Vi n nhp t bn phm)

    a.Hng dn :b. M chng trnh:

    Program Cuu_Chuong_1;uses crt;var n, i : integer;begin clrscr; write('Nhap n: '); readln(n); for i:= 1 to 9 do writeln(n,' x ', i, ' = ', n*i); readlnend.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 28

  • 100 bi tp Turbo Pascal

    Bi tp 3.8Ln lt in cc bng cu chng.

    a.Hng dn :- Cho bin i chy t 2 n 9- In bng cu chng i.

    b. M chng trnh:Program Cuu_Chuong_1;uses crt;var i,j : integer;begin clrscr; for i:= 2 to 9 do Begin Writeln('Bang cuu chuong ',i); For j := 1 to 9 do writeln(i,' x ', j, ' = ', j*i); readln end; readlnend.

    c. Nhn xt: Chng trnh ny in bng cu chng dc (Ht bng ny n bng khc tnh t trn xung). Hy sa chng trnh in theo kiu ngang thng thy.

    Bi tp 3.9Vit chng trnh xt xem mt s n c phi l s nguyn t khng?

    a.Hng dn:- Nu n khng chia ht mi s i c gi tr t 2 n n - 1 th n l s nguyn t.- S dng bin ok c kiu boolean v c gi tr ban u l true. - Cho bin i chy t 2 n n 1. Xt n mod i. Nu bng 0 th gn ok = false. Ngc

    li vn nguyn ok.b.M chng trnh:

    Program Nguyen_to_1;uses crt;var n, i: integer; ok: boolean;begin ok:=true; write('Nhap n: ');readln(n); for i:= 2 to n - 1 do if n mod i = 0 then ok :=false; if ok then write(n,' la so nguyen to') else write(n, ' khong la so nguyen to'); readln

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 29

  • 100 bi tp Turbo Pascal

    end.

    c. Nhn xt: y ta s dng bin c kiu logic (ng, sai). Ch cn mt ln n mod i = 0 th sau khi thc hin xong vng lp ok c gi tr l false. Bi tp 3.10

    Vit chng trnh in ra tt c cc s nguyn t b hn hoc bng n?a. Hng dn:

    - Cho i chy t 2 n n.- Xt i. Nu n l s nguyn t th in n ra.

    b. M chng trnh:Program Nguyen_to_1;uses crt;var n, i, j: integer; ok: boolean;begin clrscr; write('Nhap n: '); readln(n); for i := 2 to n do begin ok:=true; for j:= 2 to i - 1 do if i mod j = 0 then ok :=false; if ok then write(i,';') end; readlnend.

    CHNG IVCU TRC LP KHNG XC NH

    A. L THUYT

    Dng REPEAT Dng WHILERepeat

    S;Until B;

    While B Do S;

    ngha: Dng REPEAT: Lp li cng vic S cho n khi biu thc B=TRUE th dng. Trc

    Repeat c th B cha c xc nh nhng khi thc hin S th B xc nh. Dng WHILE: Trong khi biu thc B=TRUE th tip tc thc hin cng vic S.

    Trc While cn c cc lnh B c xc nh.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 30

  • 100 bi tp Turbo Pascal

    Yu cu quan trng: Trong S phi c mt lnh lm thay i d liu lin quan n iu kin B.

    B. BI TPBi tp 4.1:

    Vit chng trnh in ra cc s l nh hn hoc bng s nguyn dng n ( Vi n c nhp). Yu cu nhp li nu n 0; i:=1; while i0;

    Dng kim tra, khng ch iu kin ca d liu vo.- Trong vng lp while nht thit phi c mt cu lnh lm thay i iu kin lp.

    y l i:=i+2. Nu khng c s dn n trng hp lp v hn. Chng trnh chy mi m khng c li ra (Khng thot ra khi vng lp c).

    Bi tp 4.2:Vit chng trnh tnh n! vi n! c nh ngha nh sau:

    - n! = 1 vi n = 0- n! = 1.2.3...n (Tch ca n s t 1 n n).

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 31

  • 100 bi tp Turbo Pascal

    Yu cu: S dng vng lp vi s ln cha bit trc:a. Hng dn:- C th vit li: n! = n.(n-1)... 3.2.1.- Lp gt = gt*n; n = n-1 vi iu kin n>0.b. M chng trnh:

    Program Giai_Thua_while;uses crt;var n, gt:longint;begin clrscr; Repeat write('Nhap so n: ');readln(n); until n>0; gt:=1; while n>0 do begin gt:=gt*n; n:=n-1; end; writeln('Giai thua cua n la: ',gt); readlnend.

    c. Nhn xt: Tit kim c mt bin i chy nhng lm thay i n nn khi xut ra ch c th xut mt cu chung chung Giai thua cua n la:

    Bi tp 4.3:Vit chng trnh tnh n!! (giai tha kp) vi n!! c nh ngha nh sau:

    - n!! = 1 vi n = 0- n!! = 1.3.5..n vi n l.- n!! = 2.4.6..n vi n chn.Yu cu: S dng vng lp vi s ln cha bit trc:a. Hng dn:- Hai s chn lin tip hn km nhau 2. Hai s l lin tip cng vy.- Thc hin tnh nh giai tha n nhng vi bc nhy l 2.b. M chng trnh:

    Program Giai_thua_kep;uses crt;var n,gt:longint;begin Repeat write('Nhap so n: ');readln(n); until n>0; gt:=1; while n>0 do

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 32

  • 100 bi tp Turbo Pascal

    begin gt:=gt*n; n:=n-2; end; write('Giai thua la: ',gt); readlnend.

    c. Nhn xt:- Vi thut ton trn ta khng cn xt n l chn hay l.

    Bi tp 4.4:Vit chng trnh cho php tnh tng ca nhiu s (Cha bit bao nhiu s). Nhp

    s 0 kt thc qu trnh nhp.a. Hng dn:b. M chng trnh:

    Program Tong_Repeat;uses crt;var i: byte; so, tong: real;begin write('NHAP CAC SO - NHAP 0 DE NGUNG '); readln; repeat clrscr; write('Nhap so thu ',i,': '); readln(so); tong:=tong+so; i:=i+1; until so=0; write('Tong la: ',tong:6:1); readlnend.

    Bi tp 4.5Vit chng trnh tm c chung ln nht (UCLN) ca hai s vi yu cu s dng

    thut ton Euclid.Thut ton Euclid: Nu a chia ht cho b (a chia b d 0) th UCLN(a,b) bng b Nu a chia b d r th UCLN(a,b) = UCLN(b,r)a.Hng dn:

    - Nhp a, b v gn r = a mod b.- Lp vi iu kin r 0: b = r, a = b, r = a mod b.

    b.M chng trnh:Program UCLN;uses crt;var a,b,r:byte;begin clrscr; writeln('CHUONG TRINH TIM UCLN CUA HAI SO');

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 33

  • 100 bi tp Turbo Pascal

    write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); r:=a mod b; while r 0 do begin b:=r; a:=b; r:=a mod b; end; write('UCLN cua hai so la: ',b); readlnend.

    Bi tp 4.6Dy Fibonacy c hai phn t u l 1, 1. Cc phn t sau bng tng hai phn t

    ng ngay trc n: 1, 1, 2, 3, 5, 8, 13, 21, ...Vit chng trnh in ra dy Fibonacy c phn t ln nht nh hn n?

    a.Hng dn:- Cn hai bin F_1 v F c gi tr u l 1, 1.- Thc hin lp cho n khi F >= n.- Do yu cu ch in cc s b hn n nn khi in cn thm mt lnh kim tra.b.M chng trnh:Program Fi_Bo_na_xi;Var n, F_2,F_1, F: Longint;Begin Write('Nhap n: ');Readln(n); F_1:=1; F_2:=1; Write(F_2,';',F_1,';'); Repeat F:=F_2+F_1; if F< n then Write(F,';'); F_2:=F_1; F_1:=F; Until F>n; Readln;End.

    Nhn xt: Gia Repeat ... until c th cha nhiu lnh m khng cn ghp.Hy pht trin bi tp theo hng ch in mt phn t trong dy ln nht nhng b hn n hoc theo hng phn t th k ca dy.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 34

  • 100 bi tp Turbo Pascal

    CHNG VD LIU KIU MNG (Mt chiu)

    A. L THUYTI. KHAI BO MNGC php:

    VAR : ARRAY [ch s] OF ; V d:

    VAR M: Array[1..100] of Integer;C: Array[A..Z] of byte;

    Trong ch s c kiu v hng m c (nh: nguyn, k t ...)II. QUN L MT MNG:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 35

  • 100 bi tp Turbo Pascal

    - qun ly mt dy cn hai bin nguyn v mt bin mng. Mt bin kiu nguyn lu s phn t ca dy, mt bin nguyn khc lu ch s v mt bin mng lu gi tr cc phn t ca dy.

    - truy cp n phn t th k trong mng mt chiu A, ta s dng c php: A[k].- C th s dng cc th tc READ(LN)/WRITE(LN) i vi cc phn t ca bin

    kiu mng.

    B. BI TPBi tp 5.1

    Vit chng trnh cho php nhp n s v in ra theo th t ngc li. V d nhp 3, 5, 7 th in ra 7, 5, 3.a.Hng dn:

    - Dng bin n lu lng s cn nhp.- Dng mng lu cc s va nhp.- Cho i chy t n v 1 in cc s va nhp.

    b.M chng trnh:Program mang_1;uses crt;var n, i: integer; M: array[1..100] of real;Begin write('Nhap so n: ');readln(n); for i:=1 to n do Begin write('M[',i,']='); readln(M[i]); end; for i:= n downto 1 do write(m[i], ,); readlnend.

    Bi tp 5.2Vit chng trnh nhp dy n s v in ra tng cc s l trong dy s va nhp.

    a. Hng dn:Thc hin cng dn cc s l bng lnh:

    if M[i] mod 2 =1 then tong:=tong+M[i]b. M chng trnh:

    Program Mang_Tong_Le;uses crt;var i,n:byte; M:array[1..100] of integer; tong:longint;begin write('Nhap so phan tu cua day: ');readln(n); for i:=1 to n do

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 36

  • 100 bi tp Turbo Pascal

    begin write('M[',i,']'); readln(M[i]); end; tong:=0; for i:=1 to n do if M[i] mod 2 =1 then tong:=tong+M[i]; write('Tong cac so le trong day la: ',tong); readlnend.

    c. Nhn xt: Vi yu cu ca bi ton th khng cn s dng bin mng vn gii c. Hy th nh.Bi tp 5.3

    Vit chng trnh nhp n s, xo s th k trong n s va nhp.In ra n-1 s cn li.n= 10 (Nhp 10 phn t)V d: Nhp 2, 3, 4, 5, 6, 8, 7, 6, 5, 4.k= 8 (Xo phn t th 8).In ra: 2, 3, 4, 5, 6, 8, 7, 5, 4.a. Hng dn:

    Xo phn t k bng cch ghi phn t th k+1 ln n.b. M chng trnh:

    Program Xoa_mang;uses crt;var m:array[1..100] of integer; n,i,k:byte;begin Write('So phan tu cua day: ');readln(n); for i:=1 to n do Begin write('M[',i,']='); readln(M[i]); end; write('Nhap phan tu can xoa: ');readln(k); for i:=k to n-1 do m[i]:=m[i+1]; for i:=1 to n-1 do write(m[i],', '); readlnend.

    c. Nhn xt: Vi yu cu ca bi tp trn ch cn kim tra ch s khi in (VD nu i = 8 th khng in). Tuy nhin trong khi s dng mng lu d liu gii ton, nhiu khi ta c nhu cu xa bt hoc chn thm phn t vo dy.Bi tp 5.4

    Vit chng trnh cho php nhp mt dy gm n s nguyn. Nhp thm mt s v chn thm vo dy sau phn t k.a. Hng dn:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 37

  • 100 bi tp Turbo Pascal

    - Di cc phn t t v tr k v sau mt bc.- Nhp gi tr cn chn vo v tr k.b. M chng trnh:

    Program Mang_chen;uses crt;var M: array[1..100] of integer; i,n,k:integer;begin clrscr; write('Nhap : ');readln(n); for i:=1 to n do begin write('M[',i,']='); readln(M[i]); end; write('Vi tri chen: ');readln(k); for i:=n+1 downto k+1 do M[i]:=M[i-1]; write('Nhap so can chen: '); readln(M[k]); for i:=1 to n+1 do write(M[i],', '); readlnend.

    Bi tp 5.5Vit chng trnh cho php nhp n s v cho bit s nh nht trong cc s va

    nhp l s th my.a.Hng dn:

    - Dng bin n lu lng s cn nhp.- Dng mng lu cc s va nhp.- Cho Min = M[1], j = 1 (Xem phn t u tin l b nht)- So snh Min vi n-1 s cn li. Trong qu trnh so snh nu Min > M[i] th gn

    Min = M[i], j=i v tip tc so snh .b.M chng trnh:

    Program TIM_NHO_NHAT;uses crt;var n,i,nhonhat:integer; m: array[1..100] of real; min:real;begin write('Nhap n: '); readln(n); for i:=1 to n do begin write('M[',i,']='); readln(m[i]); end; min:=m[1]; nhonhat:=1; for i:=2 to n do if m[i] < min then

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 38

  • 100 bi tp Turbo Pascal

    begin min:=m[i]; nhonhat:=i; end; writeln('phan tu nho nhat la phan tu thu',nhonhat); readlnend.

    Bi tp 5.6Vit chng trnh cho php nhp n s sp xp v in ra cc s nhp theo th t

    tng dn.a. Hng dn:

    b. M chng trnh:Program Sap_xep_mang;Var M: array[1..10] of integer; i,j,n: byte; tam: integer;Begin Write('Nhap so phan tu n:');Readln(n); For i:=1 to n do Begin Write('M[',i,']='); Readln(M[i]); End; For i:=1 to n-1 do For j:=i+1 to n do if M[j]

  • 100 bi tp Turbo Pascal

    m[2]:=1; for i:=3 to n do m[i]:=m[i-1]+m[i-2]; for i:=1 to n do write(m[i],' ,'); readlnend.

    Bi tp 5.8Vit chng trnh in ra mn hnh tam gic Pascal. V d, vi n=4 s in ra hnh sau:

    1 11 2 11 3 3 11 4 6 4 1

    ... Hng th n c xc nh t hng n-1:- Phn t u tin v phn t cui cng u bng 1.- Phn t th 2 l tng ca phn t th nht v th 2 ca hng n-1- Phn t th k ca hng th n l tng ca phn t th k-1 v k ca hng th n-1.Thut ton:Bc 1: Khi to mt mng mt chiu n phn t c gi tr 0.Bc 2: Khi to gi tr cho hng th nht M[1,1] = 1.Bc 3: - i vi hng th i tnh gi tr phn t t phn t th i + 1 xung phn t th 2: M[j]:=M[j] + M[j-1]

    - In ra hng th i.Chng trnh:

    Program Tam_giac_Pascal_mot_chieu;Var n,i,j: integer; M: array[1..10] of integer;Begin Write('Nhap n: '); Readln(n); For i:= 1 to n do M[i]:=0; M[1]:=1; For i:=1 to n do Begin For j:=i+ 1 downto 2 do M[j]:=M[j]+M[j-1]; For j:=1 to i+ 1 do Write(M[j]:3); Writeln; End; ReadlnEnd.

    Bi tp 5.9Vit chng trnh cho php nhp.

    a. Hng dn:b. M chng trnh:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 40

  • 100 bi tp Turbo Pascal

    Bi tp 5.10Vit chng trnh cho php nhp.

    a. Hng dn:b. M chng trnh:

    CHNG VICHNG TRNH CON: TH TC V HM

    A. L THUYTI. KHI NIM V CHNG TRNH CON

    Chng trnh con (CTC) l mt on chng trnh thc hin trn vn hay mt chc nng no . Trong Turbo Pascal, c 2 dng CTC:

    Th tc (PROCEDURE): Dng thc hin mt hay nhiu nhim v no . Hm (FUNCTION): Tr v mt gi tr no (c kiu v hng, kiu string). Hm

    c th s dng trong cc biu thc.Ngoi ra, trong Pascal cn cho php cc CTC lng vo nhau.

    II. CU TRC CHUNG CA MT CHNG TRNH C S DNG CTCPROGRAM Tn_chng_trnh;USES CRT;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 41

  • 100 bi tp Turbo Pascal

    CONST ............;VAR ............;

    PROCEDURE THUTUC[(Cc tham s)];[Khai bo Const, Var]BEGIN

    ..............END;

    FUNCTION HAM[(Cc tham s)]:;[Khai bo Const, Var]BEGIN

    ..............HAM:=;

    END;

    BEGIN {Chng trnh chnh}...................THUTUC[(...)];...................A:= HAM[(...)];...................

    END.

    Ch : Trong qu trnh xy dng CTC, khi no th nn dng th tc/hm?Dng hm Dng th tc

    - Kt qu ca bi ton tr v 1 gi tr duy nht (kiu v hng, kiu string).- Li gi CTC cn nm trong cc biu thc tnh ton.

    - Kt qu ca bi ton khng tr v gi tr no hoc tr v nhiu gi tr hoc tr v kiu d liu c cu trc (Array, Record, File).- Li gi CTC khng nm trong cc biu thc tnh ton.

    B. BI TPBi tp 6.1:

    Vit chng trnh gii phng trnh bc hai vi yu cu s dng cc chng trnh con gii quyt cc trng hp xy ra ca delta.a. Hng dn:b. M chng trnh:

    Program Giai_PT_bac_hai;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 42

  • 100 bi tp Turbo Pascal

    uses crt;var a,b,c,delta:real;{----------------------}Procedure delta_duong;beginwrite('Phuong trinh co hai nghiem x1=',(-b+sqrt(delta))/(2*a),'x2=',(-b+sqrt(delta))/(2*a));end;{---------------------}Procedure delta_khong;beginwrite('Phuong trinh co nghiem kep x=',-b/(2*a):3:1);end;{--------------------}Procedure delta_am;beginwriteln('Phuong trinh vo nghiem');end;{Chuong trinh chinh}Beginclrscr;write('Nhap a: ');readln(a);write('Nhap b: ');readln(b);write('Nhap c: ');readln(c);delta:=b*b-4*a*c;if delta>0 then delta_duongelse if delta = 0 then delta_khongelse delta_am;readlnend.

    c. Nhn xt: Chng trnh con cho php chia nh cng vic nhm n gin ho. Ngoi ra mt cng vic no lp li nhiu ln trong chng trnh nn dng CTC v khi m chng trnh s gn, d theo di, g ri hn.

    Bi tp 6.2:Vit chng trnh cho php nhp hai s vo hai bin, thc hin i gi tr ca hai

    bin cho nhau. Yu cu dng chng trnh con thc hin chc nng i gi tr.a. Hng dn:b. M chng trnh:

    Program CTC_1;uses crt;var a,b: real;{----CTC doi gia tri----}Procedure swap(var x,y:real);var tam:real;begin

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 43

  • 100 bi tp Turbo Pascal

    tam:=x; x:=y; y:=tam;end;{-----Ket thuc CTC-----}beginclrscr;write('Nhap so a: ');readln(a);write('Nhap so b: ');readln(b);swap(a,b);write('Sau khi doi a =',a:3:1);write('Sau khi doi b =',b:3:1);readlnend.

    b. Nhn xt: - Nu b t var khai bo var x,y:real th chng trnh vn khng bo li nhng chc nng i gi tr ca hai bin khng thc hin c.

    Bi tp 6.3:Tm s ln th nh trong n s c nhp t bn phm.

    V d: Nhp cc s 10; 10; 9; 9; 8 th c s ln nh l 9.Gii thut:- Nhp 2 s, Xc nh gi tr cho hai bin Max, Nhi.- Ln lt nhp cc s. Vi mi s c nhp xt:

    - Nu So > Max th gn Nhi = Max, Max = So.- Nu Nhi < So < Max th gn Nhi = So.

    Program So_lon_nhi;Var n,i,so, nhi,max,tam:integer;Procedure swap(var x,y:real);var tam:real;begintam:=x;x:=y;y:=tam;end;Begin Write('Nhap n: ');Readln(n); Write('nhap so:');Readln(max); Write('nhap so: ');Readln(nhi); if nhi > Max then swap(Max,nhi) For i:= 3 to n do Begin Write('Nhap so: ');Readln(so); if (so>nhi) and (somax then

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 44

  • 100 bi tp Turbo Pascal

    Begin nhi:=max; Max:=so; End; End; Write('So thu nhi la: ',nhi); ReadlnEnd.

    Bi tp 6.3:Vit chng trnh tnh giai tha ca s n (Vit l n!). Vi yu cu:

    - Nu ngi dng nhp s n < 0 th yu cu nhp li.- S dng chng trnh con tnh giai tha ca mt s.

    n! = 1 nu n = 0;n! = 1.2.3.4.5...n (Tch ca n tha s).

    a. Hng dn:b. M chng trnh:

    Program CTC_2;uses crt;var n:integer;x:longint;Procedure Giai_Thua(var GT:longint; n:byte);begin GT:=1; while n>0 do begin GT:=GT*n; n:=n-1; end;end;begin repeat clrscr; write('Nhap so n: ');readln(n); if n < 0 then begin write('Nhap so n>=0');readln; end; until n>=0; Giai_Thua(x,n); writeln('Giai thua cua ',n,'la:',x); readlnend.

    Nhn xt: Lnh n:= n-1 lm thay i gi tr ca n nhng khi ra khi chng trnh con n c gi tr khng i so vi trc khi gi chng trnh con.

    Bi tp 6.4:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 45

  • 100 bi tp Turbo Pascal

    Vit chng trnh tnh n! vi yu cu s dng hm tnh giai tha.a. Hng dn:b. M chng trnh:

    Program Giai_thua_Ham;uses crt;var n: longint;Function Giai_Thua(n:longint):longint;Var GT:Longint;begin GT:=1; while n > 0 do begin GT:=GT * n; n:=n-1; end; Giai_thua:=GT;end;begin clrscr; write('Nhap n: '); readln(n); write(n,'!=',Giai_thua(n)); readlnend.

    Nhn xt: Hy so snh s khc nhau khi Giai_thua c vit di hai dng Function v Procedure.- Khi dng Procedure cn mt bin (ton cc) lu gia gi tr ca n!. Bin ny c truyn cho tham bin trong Procedure. Sau khi gi n cn lnh in n!- Khi dng Function, c th s dng n nh l mt biu thc.

    Bi tp 6.5:Vit chng trnh cho php thc hin rt gn phn s.

    a. Hng dn:- Tm UCLN ca t s v mu s.- Chia t v mu ca phn s cho UCLN va tm c.b. M chng trnh:

    Program Rut_gon_phan_so;uses crt;var tu,mau:integer;Function UCLN(a,b:integer):integer;var r: integer;begin r:= a mod b; while r 0 do begin

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 46

  • 100 bi tp Turbo Pascal

    a:= b; b:= r; r:=a mod b; end; UCLN:=b;end;begin clrscr; write('Nhap tu: '); readln(tu); write('Nhap mau: '); readln(mau); write('Ket qua rut gon: ',tu,'/',mau,'=',tu div UCLN(tu,mau),'/',mau div UCLN(tu,mau)); readlnend.

    Bi tp 6.6:Vit chng trnh cho php trn hai dy s A v B cng c s phn t l k c

    dy s C theo yu cu sau:A = a1, a2 ... akB = b1, b2 ... bkc C = a1, b1, a2, b2 ... ak, bk.

    a. Hng dn:b. M chng trnh:

    Program Tron_day;uses crt;type kieu_mang = array[1..100] of integer;var A, B, C: Kieu_mang; n,i,j: integer;Procedure Nhap_Mang(Var X: Kieu_mang; n:byte);var i:integer;begin for i:=1 to n do begin write('M[',i,']=');readln(X[i]); end;end;Procedure In_Mang(X:kieu_mang; n:byte);var i: byte;begin for i:=1 to n do write(x[i],', ');end;{-----------}begin clrscr;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 47

  • 100 bi tp Turbo Pascal

    write('Nhap so phan tu cua day: ');read(n); Nhap_mang(A,n); Nhap_mang(B,n); i:=1; j:=1; while i

  • 100 bi tp Turbo Pascal

    Vit chng trnh cho php sp xp mt dy s vi yu cu s dng cc chng trnh con: Nhp mng, in mng, i gi tr ca hai s.a. Hng dn:b. M chng trnh:

    Program Sap_xep_day;uses crt;type kieu_mang =array[1..100] of integer;Var A: kieu_mang; n,i,j:byte;{---------------------}Procedure Nhap_mang(var M:Kieu_Mang;n:byte);Var i:byte;begin for i:=1 to n do begin write('M[',i,']=');readln(M[i]); end;end;{---------------------}Procedure In_mang(var M:Kieu_Mang;n:byte);Var i:byte;begin for i:=1 to n do write(M[i]:3,', ')end;

    {---------------------}Procedure swap(var a,b:integer);var tam:integer;begin tam:=b; b:=a; a:=tam;end;{---------------------}

    Begin Clrscr; write('Cho biet so phan tu cua day: ');readln(n); nhap_mang(A,n); for i:=1 to n-1 do for j:= i to n do if A[i]>A[j] then swap(A[i],A[j]); In_mang(A,n); readlnend.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 49

  • 100 bi tp Turbo Pascal

    CHNG VIICHUYN CHIA HT S NGUYN T.

    A. L THUYT:- :- : .- :

    B. BI TON:Bi tp 7.1 :

    Nhp vo mt s nguyn dng n. Hy in ra s nguyn t nh nht ln hn n.VD: Nhp n = 10. Kt qu in ra s 11.Gii thut :- Gn i := n ;- Thc hin cho n khi i l nguyn t vic tng i ln 1.Program Nguyen_to;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 50

  • 100 bi tp Turbo Pascal

    Var n,i:integer;Function NT(n:integer):Boolean;Var ok: Boolean; i: integer;Begin ok:=true; for i:=2 to n-1 do if (n mod i)= 0 then ok:=ok and false; if n < 2 then NT:=false else NT:=ok;End;Begin Write('Nhap n: ');Readln(n); i:=n; Repeat i:=i+1; Until NT(i); Write('So nguyen to nho nhat lon hon ',n, 'la: ',i); ReadlnEnd.

    Bi tp 7.2 :Nhp vo t bn phm s t nhin n (n 1 th lp: Nu n chia ht cho i th in ra i v gn li n:= n div i. Ngc li tng i ln 1.

    Program Phan_tich;var n,i: integer;Begin Write('Nhap so can phan tich: ');Readln(n); i:=2; Write('Ket qua phan tich:'); Write(n,'='); While n>1 do Begin if n mod i = 0 then Begin Write(i,'.'); n:= n div i End else i:=i+1; End; ReadlnEnd.

    Nhn xt: Ci t trn in d mt du nhn cui. Hy chnh sa b du nhn tha ny.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 51

  • 100 bi tp Turbo Pascal

    Bi tp 7.3:Tm cc s t nhin nh hn hoc bng n m sau khi lm php phn tch ra tha s

    nguyn t c nhiu nhn t nht.V d n=9 . Cc s c nhiu nhn t nht sau khi lm php phn tch l: 8 = 2.2.2Thut ton:Ci t:Program Phan_tich_nguyen_to_2;Var n, Max, so, i:byte;Function PTNT(n:integer):byte;Var i,p:byte;Begin i:=2; p:=0; While n>1 do if (n mod i)=0 then Begin p:=p+1; n:=n div i end else i:=i+1; PTNT:=p;End;Procedure PT(n:integer);Var i:byte;Begin i:=2; While n>1 do if (n mod i)=0 then Begin Write(i,'.'); n:=n div i end else i:=i+1;End;

    Begin Write('Nhap so n: ');Readln(n); Max:=0; For i:= 1 to n do if PTNT(i)>=Max then Begin Max:=PTNT(i); So:=i End; Write('So ',So,' co nhieu uoc nhat,',so,' = '); PT(So); ReadlnEnd.

    Bi tp 7.4:Vit chng trnh cho php phn tch mt s ra tha s nguyn t v ghi kt qu

    di dng tch cc ly tha. V d: 300 = 2^2.3.5^2Thut ton:Dng mt mng lu ly tha. Mng ny c gi tr cc phn t ban u u bng 0. Nu n chia ht cho i th tng M[i] ln 1.Khi in kim tra: Nu M[i] >0 th in i^M[i].Ci t:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 52

  • 100 bi tp Turbo Pascal

    Program Phan_tich;Var M: array[1..1000] of byte; i: byte; n: integer;Begin For i:=1 to 1000 do M[i]:=0; Write('Nhap so n: ');Readln(n); i:=2; While n>1 do if (n mod i = 0) then begin M[i]:=M[i]+1; n:=n div i End else i:=i+1; For i:=1 to 1000 do if M[i]>0 then Begin If M[i]>1 then Write(i,'^',M[i],'.') else Write(i,'.') End; Readln;End.

    Bi tp 7.5Mi s t nhin u c th vit c di dng tng ca hai s nguyn t. Vit

    chng trnh thc hin tch mt s t nhin thnh tng ca hai s nguyn t.Thut ton:Ci t:Program Tong_nguyen_to;Var i,n:integer;Function NT(n:integer):Boolean;Var ok: Boolean; i:integer;Begin ok:=true; For i:=2 to n-1 do if (n mod i) = 0 then ok:=ok and false; if n>=2 then NT:=ok else NT:=false;End;Begin Write('Nhap so n: ');Readln(n); For i:=2 to n div 2 do if (NT(i) and NT(n-i)) then Writeln(n,' = ',i,' + ',n-i); ReadlnEnd.

    Nhn xt: Hy m rng bi ton theo hng- Xt xem trong on [n1...n2] s no cho php tch thnh tng hai s nguyn t nhiu trng hp nht.- Tch mt s thnh tng ba s nguyn t.Bi tp 7.6: (Tin hc tr ton quc ln I - 1995)

    Hai s t nhin A, B c coi l hu ngh nu nh s ny bng tng cc c s ca s kia v ngc li. Lp trnh tm v chiu ln mn hnh cc cp s hu ngh trong phm

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 53

  • 100 bi tp Turbo Pascal

    vi t 1 n 10000. (Lu : s 1 c coi l c s ca mi s cn mi s khng c coi l c s ca chnh n).Thut ton:- Ci t:Program Cap_so_huu_nghi;Var a,b,n,i:integer;Function TU(a:integer):integer;Var Tg,i:integer;Begin Tg:=0; For i:=1 to a-1 do if (a mod i = 0) then Tg:=Tg + i; TU:=Tg;End;Begin Write('Nhap so n: ');Readln(n); For a:=1 to n do Begin b:=TU(a); if TU(b)=a then Writeln(a,'-',b) end; Readln;End.Nhn xt: Cc s hon chnh lun l hu ngh ca chnh n.

    CHNG VIIICHUYN DY CON.

    A. L THUYT:- Dy con l dy cc phn t lin tc thuc mt dy c trc (dy m) tha mn mt tnh cht no .- qun l mt dy con cn mt ch s (ni bt u dy con) v di ca dy.- Mt cch qun l khc l ch s u v chr s cui.- xy dng mt dy con cn: - Xy dng gi tr ban u. - Duyt qua cc phn t ca dy, Nu: - Tha iu kin, tng di thm 1 ngc li: - Nu dy con ang xt cn lu th: Lu li di, ch s u dy, Xc nh li di, ch s u ca dy mi. - Nu dy con ang xt khng cn lu th: Xc nh li di, ch s u ca dy mi.- duyt qua tt c cc dy con ca mt dy gm n s ta dng thut ton vt cn sau: For i:= 1 to n For j:= 1 to n-i+1 Xt dy con bt u t v tr th i c di j.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 54

  • 100 bi tp Turbo Pascal

    B. BI TP:Bi tp 1: Cho dy s gm n s. Tm dy con ln nht cc phn t tng (gim) dn.Gii thut:

    S dng k thut xy dng dy con.Ci t:

    Program Day_con1;Var M: array[1..100] of integer; i,n, dau,ldau, dai,Max: integer;Begin Write('Nhap so n: '); Readln(n); For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End; {Khoi tao gia tri dau} i:=0; Max:=1; dau:=1; dai:=1; ldau:=1; While i=M[i] then dai:=dai+1 else if dai> Max then Begin Max:=dai; ldau:=dau; dai:=0 End else Begin dau:=i+1; dai:=1 End; End; Write('Xau con dai:',max,' bat dau tu: ',ldau); ReadlnEnd.

    Nhn xt: Bi ton trn c th s dng gii thut vt cn dy con gii. Sau y l ci t:

    Program Day_con1b;Type KM= array[1..100] of integer; Var M:KM; i,j,n, dau,ldau, dai,Max: integer;Function KT(A:KM;m,l:byte):boolean;Var ok:Boolean; i:byte;Begin ok:=True; For i:=m to m+l-1 do if A[i]>A[i+1] then ok:=ok and false; KT:=ok;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 55

  • 100 bi tp Turbo Pascal

    End;Begin Write('Nhap so nc: '); Readln(n); Max:=0; For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End; For i:= 1 to n-1 do For j:=1 to n-i+1 do if KT(M,i,j) then if j+1> Max then Begin ldau:=i; Max:=j+1 End; Write('Xau con dai:',max,' bat dau tu: ',ldau); ReadlnEnd.

    Bi tp 2: Cho dy s gm n s. Tm dy con ln nht cc phn t c cng du, (an du).Gii thut:Thc hin ging nhu bi 1, ch thay iu kin l M[i+1]*M[i] >0Ci t:

    Program Day_con2;Var M: array[1..100] of integer; i,n, dau,ldau, dai,Max: integer;Begin Write('Nhap so nc: '); Readln(n); For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End; i:=0; Max:=1; dau:=1; dai:=1; ldau:=1; While i0 then dai:=dai+1 else if dai> Max then Begin Max:=dai; ldau:=dau; dai:=0 End else Begin dau:=i+1; dai:=1 End; End; Write('Xau con dai:',max,' bat dau tu: ',ldau); ReadlnEnd.

    Nhn xt: Hy thc hin bi tp trn bng k thut vt cn dy con.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 56

  • 100 bi tp Turbo Pascal

    Bi tp 3: Cho dy gm n s. Tm dy con ln nht n iu (lin tc tng, gim hoc gim, tng).Gii thut:- Dy ang du nu M[i]*M[i+1] < 0.Ci t:

    Ging bi tp 2

    Nhn xt:

    Bi tp 4: Cho dy s gm n s nguyn. Tm dy con c tng ln nhtGii thut:- S dng k thut vt cn cc dy con, dng hm tnh tng dy con kim tra.Ci t:

    Program Day_con1b;Type KM= array[1..100] of integer; Var M:KM; i,j,n,ldau, dai,Max: integer;Function TONG(A:KM;m,l:byte):Integer;Var Tam,i:integer;Begin Tam:=0; For i:=m to m+l do Tam:=Tam + A[i]; TONG:=Tam;End;Begin Write('Nhap so nc: '); Readln(n); For i:=1 to n do Begin Write('[',i,']='); Readln(M[i]); End; Max:=M[1];dai:=1;ldau:=1; For i:= 1 to n do For j:=0 to n-i+1 do if TONG(M,i,j)> Max then Begin ldau:=i; Max:=Tong(M,i,j) ; dai:=j+1 End; Write('Xau con co tong:',max,' bat dau tu: ',ldau, ' dai: ',dai); ReadlnEnd.

    Nhn xt:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 57

  • 100 bi tp Turbo Pascal

    CHNG IXCHUYN CH S, H C S.

    A. L THUYT:- Trong h c s 10: S A = an.a2a1a0 = a0 + 10a1 + +10nan nn: ly s a0 = A mod 10; xa ch s a0 ta dng A:=A div 10.(Tng t: ly hai s tn cng a1a0 = A mod 100; xa hai ch s a1 a0 ta dng A:=A div 100.- Thut ton vt cn: xt tt c cc trng hp ca s A ta xt an = 1..9; an-1.a2a1a0 =0..9- H c s 2: Nu nh h thp phn dng 10 ch s ghi s th h c s 2 ch dng hai ch s l 0 v 1 ghi s.

    - i mt s t c s 2 sang c s 10:- i mt s t c s 10 sang c s 2:

    - H c s bt k:- Vn cng, tr, nhn, ly tha s ln (hoc kt qu c s ln) c xem xt ring mt chuyn (sau khi c trang b d liu kiu string).B. BI TON:Bi tp 8.1:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 58

  • 100 bi tp Turbo Pascal

    Gi abcd l mt s c 4 ch s. Hy lp chng trnh tm tt c cc s c 4 ch s tha mn biu thc: abcd=(ab + cd)2V d: s 2025=(20 + 25)2.Thut ton:

    Kim tra tt c cc s c bn ch s theo cc cch sau;- Tch ly hai s u, hai s sau ca s c bn ch s kim tra. - Kim tra cc trng hp c th ca mi ch s.

    Cch 1:Program Tach_so;Var haisodau, haisocuoi, i : integer;Begin

    Writeln( cac so thoa man dieu kien gom co);For i:=1000 to 9999 do

    Beginhaisodau:=i Div 100;{lay 2 so dau tien ab}haisocuoi:=i mod 100;{lay 2 so cuoi cd}If i=SQR(haisodau + haisocuoi) then write(i:5);

    End;Readln;

    End.

    Cch 2:Program Xet_so;Var a,b,c,d : integer;Begin

    Writeln( cac so thoa man dieu kien gom co);For a:=1 to 9 do

    For b:=0 to 9 do For c:=0 to 9 do For d:=0 to 9 do

    If i=(1000*a + 100*b + 10*c+ d) = SQRT(10*a+b + 10*c+d) then write(i:5);

    Readln;End.

    Bi tp 8.2: Vit chng trnh cho nhp hai s t nhin N v k. Hy cho bit ch s th k tnh

    t tri sang phi trong s N l s my? nu k ln hn di ca N hoc k bng 0 th thng bo khng tm c.V d 1: Vi N v k c nhp: N = 65932, k = 4

    Kt qu tm c l 3.V d 2: Vi N v k c nhp: N = 65932, k = 10

    Kt qu tm c l -1 ( k ln hn di s N).Program Chu_so_thu_k;Var M: array[1..10] of integer;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 59

  • 100 bi tp Turbo Pascal

    so: Longint; i,k:integer;Begin Write('Nhap so: ');Readln(so); so:=abs(so); Write('Nhap k: ');Readln(k); i:=0; While so>0 do begin i:=i+1; M[i]:=so mod 10; so:=so div 10; end; Write('Chu so thu ',k,'la: ',M[i-k+1]); ReadlnEnd.

    Nhn xt : Nu bi ton yu cu tm ch s th k tnh t phi sang tri th n gin hn nhiu. Lc ta ch cn xa k-1 ch s cui. Ri ly ch s cui.Bi tp 8.2:

    Mt s c gi l s bc thang nu biu din thp phn ca n c nhiu hn mt ch s ng thi theo chiu t tri qua phi, ch s ng sau khng nh hn ch s ng trc. Vit chng trnh in ra cc s bc thang trong on [n1, n2] vi n1, n2 c nhp t bn phm.

    Program So_bac_thang;Var i,n1,n2: integer;Function BT(n:integer):Boolean;Var ok: boolean; so:byte;Begin ok:=true; While n>=10 do Begin so:=n mod 10; n:=n div 10; if so < (n mod 10) then ok:=ok and false; End;

    BT:=ok;End;Begin Write('Nhap so n1: ');Readln(n1); Write('Nhap so n2: ');Readln(n2); For i:= n1 to n2 do if BT(i) then Write(i:4); Readln

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 60

  • 100 bi tp Turbo Pascal

    End.

    Bi tp 8.3: Vit chng trnh cho php i mt s t c s 10 sang c s bt k.

    Thut ton:- Dng mng CS lu cc ch s.- Lp khi n vic: Chia n cho s ly phn d. Ly phn d lm ch s ly v lu

    ch s. Gn n = n div s.- Ch ch s ly sau s nm trc.

    Program Doi_co_so;Var n,s: longint;Function D10_CS(n:longint;s:byte):string;Var CS: array[0..100] of char; i: integer; ch:Char; Tam:string;Begin{Khoi tao cac chu so 0 den 9} i:=0; ch:='0'; while i

  • 100 bi tp Turbo Pascal

    Begin Write('Nhap n:');Readln(n); Write('Doi sang co so: ');Readln(s); Write(D10_CS(n,s)); ReadlnEnd.

    Bi tp 8.4:Vit chng trnh cho php i mt s t c s bt k sang c s 10.

    Thut ton:- Dng mng CS1 lu gi tr ca cc ch s

  • 100 bi tp Turbo Pascal

    ch:=st[1]; if (ch>='0') and (ch9 vic: Tng d ln 1 thay n = TICH(n).

    Program Do_ben;uses crt;Var n,d,i,j,max:longint;Function TICH(n:Longint):Longint;Var tam:integer;Begin if n=0 then tam:=0 else tam:=1; While n 0 do Begin Tam:=tam*(n mod 10); n:=n div 10; End;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 63

  • 100 bi tp Turbo Pascal

    TICH:=Tam;End;Begin clrscr;

    Write('Nhap n:');Readln(n); Max:=0; For i:=1 to n do Begin d:=0; j:=i; gotoxy(1,2); Write('Dang duyet den so: ',i); While j>9 do Begin d:=d+1; j:=TICH(j); End; if d>=Max then Begin max:=d; gotoxy(1,3); Writeln('So co do ben lon nhat dang la ',i,' do ben la:',d); End; End; Gotoxy(1,4); Writeln('Da duyet xong'); ReadlnEnd.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 64

  • 100 bi tp Turbo Pascal

    CHNG XCHUYN A THC (Mt bin).

    A. L THUYT:- lu tr mt a thc ta ch cn lu cc h s (bng mt mng)v bc ca a

    thc.- Cc php ton i vi mt a thc gm cng, tr, nhn, chia hai a thc.- Vic tnh gi tr a thc ti mt gi tr ca bin c thc hin thng qua lc

    hooc n hoc tnh trc tip. B. BI TP:Bi tp 10.1:

    Vit chng trnh cho php cng hai a thc. Kt qu in ra dng:anx^n + ... + a1x + a0

    Gii thut:- Dng hai mng A, B lu h s ca hai a thc. C th dng mng th ba C hoc dng li mt trong hai mng A, B lu h s ca a thc tng.- Khi in kt qu cn kim tra h s in du cho ng.Ci t:Program Cong_da_thuc;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 65

  • 100 bi tp Turbo Pascal

    uses crt;Type KM = array[0..10] of integer;Var A,B: KM; n: byte;Procedure NhapDT(Var A: KM; n:byte);Var i: byte;Begin For i:=n downto 0 do Begin Write('M[',i,']='); Read(A[i]); End;End;Procedure CONG(Var A:KM;B:KM;n:byte);Var i: byte;Begin For i:= 0 to n do A[i]:=A[i]+B[i];End;Procedure INDT(A:KM;n:byte);Var i: byte;Begin if A[n] 0 then Write(A[n],'x^',n); For i:=n-1 downto 0 do if A[i] 0 then if A[i] < 0 then write(A[i],'x^',i) else Write('+',A[i],'x^',i);End;Begin clrscr; Write('Nhap bac n: ');Readln(n); Writeln('Nhap da thuc A: '); NhapDT(A,n); Writeln('Nhap da thuc B: '); NhapDT(B,n); clrscr; Indt(A,n); Writeln; Indt(B,n); Writeln; Cong(A,B,n); Writeln('Da thuc tong: '); Indt(A,n); Readln; ReadlnEnd.Nhn xt:

    Bi tp 10.2:Vit chng trnh cho php tnh gi tr ca a thc A(x) ti gi tr x = x0.

    Gii thut:- Dng chng trnh con tnh xn.Ci t:

    Program Gia_tri_cua_da_thuc;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 66

  • 100 bi tp Turbo Pascal

    Var n,i: integer; x,a,s:real;Function XMU(x:real; n:integer):real;Var i: integer; Mu: real;Begin Mu:=1; For i:=1 to n do Mu:=Mu*x; XMU:=Mu;End;Begin Write('Nhap bac cua da thuc n = '); Readln(n); Write('Tinh f(x) tai x = ');Readln(x); S:=0; For i:=n downto 0 do Begin Write('a',i,'= '); Readln(a); S:=S+a*XMU(x,i); End; Writeln('F(',x:5:2,')= ',S:5:2); Readln;End.

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 67

  • 100 bi tp Turbo Pascal

    Nhn xt:Bi tp 10.3:

    Vit chng trnh tnh gi tr ca a thc A(x) vi iu kin khng dng bin mng.Vit chng trnh tnh gi tr ca a thc f(x) = anxn + ... +a1x + a0 ti x = x0.Thut ton: f(x) = anxn + ... +a1x + a0

    = a0 + x(a1 + x(a2 + ... x(an-1 + x(an))...))Lp li vic: c v cng h s ri nhn vi x t h s an n h s a0.Chng trnh:

    Program Gia_tri_da_thuc;Var S,a,x: real; n,i: byte;Begin Write('Nhap bac cua da thuc. n = '); Readln(n); Write('Tinh f(x) tai x = ');Readln(x); S:=0; For i:= n downto 0 do Begin Write('a',i,'=');Readln(a); S:=(S+a)*x; End; Write('f(',x:3:1,')=',S:5:1); ReadlnEnd.

    Nhn xt:Bi tp 10.4:

    Vit chng trnh cho php nhn hai a thc sp xp.Thut ton: Tch a thc A bc m vi a thc B bc n l a thc C bc m + n. Trong : C[m] = Tng ca cc tch A[i] * A[j] sao cho i+j = m.

    Program Nhan_da_thuc;Var m,n,i,j:byte; A, B, C: array[0..10] of real;Begin Write(' Nhap bac cua da thuc A: '); Readln(m); For i:= m downto 0 do Begin Write('A[',i,']= '); Readln(A[i]); End; Write(' Nhap bac cua da thuc B: '); Readln(n); For i:= n downto 0 do Begin Write('B[',i,']= '); Readln(B[i]); End; For i:=0 to m+n do C[i]:=0;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 68

  • 100 bi tp Turbo Pascal

    For i:=0 to m do For j:=0 to n do C[i+j]:=C[i+j]+A[i]*B[j]; For i:= m+n downto 0 do if C[i]0 then Write(C[i]:3:1,'x^',i,' + '); ReadlnEnd.

    Nhn xt:Bi tp 10.5:

    Vit chng trnh cho php chia hai a thc tm a thc thng v a thc d.Gii thut:Ci t:Program Chia_da_thuc;uses crt;Type KM = array[0..10] of real;Var A,B,C,AB,D: KM; i,n,cs,bc: byte;Procedure NhapDT(Var A: KM; n:byte);Var i: byte;Begin For i:=n downto 0 do Begin Write('M[',i,']='); Read(A[i]); End;End;Function BAC(A:KM;n:integer):Byte;Var i:Byte;Begin i:=n; While (A[i]=0) and (i> 0) do i:=i-1; BAC:=i;End;

    Procedure TRU(Var A:KM;B:KM;n:byte);Var i: byte;Begin For i:= 0 to n do A[i]:=A[i]-B[i];End;Procedure NHAN(Var C:KM;A,B:KM; Var n:byte);Var i,j:byte; TAM:KM;Begin n:=Bac(A,n)+Bac(B,n); For i:= 0 to 2*n do TAM[i]:=0; For i:= 0 to n do For j:=0 to n do TAM[i+j]:=TAM[i+j]+A[i]*B[j]; For i:=0 to 2*n do C[i]:=TAM[i];End;

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 69

  • 100 bi tp Turbo Pascal

    Procedure INDT(A:KM;n:byte);Var i: byte;Begin if A[n] 0 then Write(A[n]:3:1,'x^',n); For i:=n-1 downto 0 do if A[i] 0 then if A[i] < 0 then write(A[i]:3:1,'x^',i) else Write('+',A[i]:3:1,'x^',i);End;Procedure DT_BAC(Var A:KM;Bac:byte;gt:real);Var i:byte;Begin For i:=1 to n do A[i]:=0; A[Bac]:=gt;End;Begin clrscr; Write('Nhap bac cua da thuc bi chia: ');Readln(n); Writeln('Nhap da thuc A: '); NhapDT(A,n); Writeln('Nhap da thuc B: '); NhapDT(B,n); clrscr; Write('Da thuc bi chia: ');Indt(A,n); Writeln; Write('Da thuc chia: ');Indt(B,n); Writeln; bc:=Bac(A,n)-Bac(B,n); {Luu bac cua da thuc C} For i:=1 to bc do C[i]:=0; While BAC(A,n) >= BAC(B,n) do Begin cs:=BAC(A,n)-BAC(B,n); C[cs]:=A[Bac(A,n)]/B[Bac(B,n)]; Writeln('C[',cs,']=',C[cs]:3:1); DT_BAC(D,cs,C[cs]);Writeln; Write('Da thuc D:'); Indt(D,n); NHAN(AB,B,D,n);Writeln; Write('Da thuc AB:'); Indt(AB,n);Writeln; TRU(A,AB,n); Write('Da thuc A moi:'); Indt(A,n); End; Writeln('Da thuc thuong: '); Indt(C,bc); Readln; ReadlnEnd.

    Nhn xt:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 70

  • 100 bi tp Turbo Pascal

    Bi tp 10.7:

    Gii thut:Ci t:

    Nhn xt:Bi tp 10.8:

    Gii thut:Ci t:

    Nhn xt:Bi tp 10.9:

    Gii thut:Ci t:

    Nhn xt:Bi tp 10.10:

    Gii thut:Ci t:

    Nhn xt:

    L Nho Duyt Phng Gio dc & o to huyn Qu Sn Trang 71

    CHNG IICU LNH C CU TRC R NHNHCHNG IIICU LNH C CU TRC LP XC NHII. CU TRC CHUNG CA MT CHNG TRNH C S DNG CTCDng hm