bai tap turbo pascal lop 8- tai lieu boi duong cho hoc sinh gioi mon tin hoc danh cho hoc sinh thcs

Upload: alexander-graham-bom

Post on 19-Oct-2015

248 views

Category:

Documents


2 download

DESCRIPTION

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

TRANSCRIPT

  • 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