ON THI HSG TIN HOC

download ON THI HSG TIN HOC

of 70

Transcript of ON THI HSG TIN HOC

  • 7/28/2019 ON THI HSG TIN HOC

    1/70

    100 bi tp Turbo Pascal

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

  • 7/28/2019 ON THI HSG TIN HOC

    2/70

    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 tchn khi m c s vt cht phc v cho vic dy hc mn hc ny c trang b ngycng tt hn. Rt nhiu hc sinh, ph huynh hc sinh, lnh o cc trng mun bnthn, con mnh, hc sinh mnh tham gia cc k thi hc sinh gii mn tin hc (K thi tinhc 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 bidng 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 vitn gi 100 bi tp Turbo Pascalc 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 nidung 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 tnghng th hc tp ....

    Hu ht cc bi tp c kh va phi, ph hp vi ni dung bi dng cptrng. 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 vora.

    II. Cu trc la chn: if then elseCase ... 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:

  • 7/28/2019 ON THI HSG TIN HOC

    3/70

    100 bi tp Turbo Pascal

    Chc chn tp ti liu cn hiu chnh, b sung c th a vo s dng. Rtmong Hi ng thm nh cho y kin c th v:- Nhng hiu chnh v cu trc ca tp ti liu.- 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 tpm tp ti liu cn thiu.

  • 7/28/2019 ON THI HSG TIN HOC

    4/70

    100 bi tp Turbo Pascal

    CHNG ICC KIU D LIU C BN

    KHAI BO HNG, BIN, KIU, BIU THC V CU LNHA. 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 , >=,

  • 7/28/2019 ON THI HSG TIN HOC

    6/70

    100 bi tp Turbo Pascal

    - CHR(n): Tr v k t tng ng trong bng m ASCII c s th t l n. V d:CHR(65)='A'.- PRED(ch): cho k t ng trc k t ch. V d: PRED('B')='A'.- 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 hinchng 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 sdng 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. (iuny 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 logic

    Trong mt biu thc, th t u tin ca cc php ton c lit k theo th tsau:

    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 LNH

  • 7/28/2019 ON THI HSG TIN HOC

    7/70

    100 bi tp Turbo Pascal

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

    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 culnh 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 cqui cch:- Vit khng qui cch: d liu xut ra s c canh l pha bn tri. Nu d liu l sthc 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 hnhWriteln('Hello');Writeln('Hello':10);Writeln(500);Writeln(500:5);Writeln(123.457)Writeln(123.45:8:2)

    HelloHello

    500500

    1.2345700000E+02123.46

    6.3.2. Nhp d liu

    nhp d liu t bn phm vo cc bin c kiu d liu chun (tr cc bin kiuBOOLEAN), ta s dng c php sau y:

  • 7/28/2019 ON THI HSG TIN HOC

    8/70

    100 bi tp Turbo Pascal

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

    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 cnhl 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);readln

    end.

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

    Bi tp 1.2:

  • 7/28/2019 ON THI HSG TIN HOC

    9/70

    100 bi tp Turbo Pascal

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

    - Nhp cnh vo bin canh.

    - 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);readln

    end.

    c. Nhn xt: Bi tp 1.2 tit kim c hai bin l CV v S v lnh write cho php inmt biu thc. Trong lp trnh vic tit kim bin l cn thit nhng i lc gy kh hiukhi 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**r.- Din tch hnh trn bng *r*r.

    b. M chng trnh:

    Program HINH_TRON;uses crt;Var r: real;

    Beginclrscr;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);readln

    end.

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

    Bi tp 1.4:

  • 7/28/2019 ON THI HSG TIN HOC

    10/70

    100 bi tp Turbo Pascal

    Vit chng trnh tnh din tch ca tam gic c ba cnh l a,b,c (c nhp tbn phm)a. Hng dn:

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

    - 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);readln

    end.

    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 camt 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);Readln

    end.

    Bi tp 1.6:

  • 7/28/2019 ON THI HSG TIN HOC

    11/70

    100 bi tp Turbo Pascal

    Vit chng trnh cho php tnh trung bnh cng ca bn s vi iu kin chc s dng hai bin.a. Hng dn:

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

    - 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);readln

    end.

    b. Nhn xt: Cu lnh gn S:= S+athc hin vic cng thm a vo bin S. Thc chtl 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 tbn 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;

  • 7/28/2019 ON THI HSG TIN HOC

    12/70

    100 bi tp Turbo Pascal

    Write('Trung binh nhan cua bon sola:',sqrt(sqrt(s)));

    readlnEnd.

    b. Nhn xt: Ta dng hai ln khai phng ly cn bc 4 ca mt s. cngdn gi tr vo mt bin th bin c gi tr ban u l 0. nhn dn gi tr banu 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);readln

    end.

    Nhn xt:Nu thc hin hai lnh a:= b; b:=a i gi tr hai bin th sau hai lnh nyhai bin c gi tr bng nhau v bng b. Thc cht sau lnh th nht hai bin c gitr 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;

  • 7/28/2019 ON THI HSG TIN HOC

    13/70

    100 bi tp Turbo Pascal

    Beginclrscr;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);readln

    end.

    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 hngn 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);readln

    end.

    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;

  • 7/28/2019 ON THI HSG TIN HOC

    14/70

    100 bi tp Turbo Pascal

    beginclrscr;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);readln

    end.

    CHNG IICU LNH C CU TRC R NHNH

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

    C php:

  • 7/28/2019 ON THI HSG TIN HOC

    15/70

    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 chmphy (;).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 nhaubi du phy) hoc cc on hng (dng hai du chm phn cch gia gi tru 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 S itng ng.- Ngc li:

    (2)

    B+ -

    S1 S2

    ...

    (1)

    B+ -

    S

    ...

  • 7/28/2019 ON THI HSG TIN HOC

    16/70

    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);readln

    end.

    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 hiuhn. 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.Tng t nh th xt cc trng hp cn li tm s ln nht.

  • 7/28/2019 ON THI HSG TIN HOC

    17/70

    100 bi tp Turbo Pascal

    b. M chng trnh:Program So_Lon_Nhat_1;Uses crt;Var a,b,c,d: real;

    BeginClrscr;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) thenwriteln('So lon nhat la:',c:10:2);

    if (d>=a) and (d>=b) and (d>= c) thenwriteln('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 utin. Sau khi nhp mt s thc hin so snh nu s va nhp ln hn max th lu s vanhp 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;

    Write('Nhap so thu tu:');readln(a);if a>=Maxthen Max:=a;

  • 7/28/2019 ON THI HSG TIN HOC

    18/70

    100 bi tp Turbo Pascal

    Write('So lon nhat la:',Max:10:2);readln

    end.

    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');readln

    end.

    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);write('Nhap c = '); readln(c);

    if (a = b) or (b = c) or (a = c) thenwriteln('La tam giac can')

  • 7/28/2019 ON THI HSG TIN HOC

    19/70

    100 bi tp Turbo Pascal

    elsewriteln('Khong phai la tam giac can');readln

    end.

    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');readln

    end.

    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 =a

    b

    - 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:- 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 =a

    b.

    a. M chng trnh:Program Phuong_trinh_2;uses crt;

  • 7/28/2019 ON THI HSG TIN HOC

    20/70

    100 bi tp Turbo Pascal

    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)elseif (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)

    Ba bn An, Bnh v Cng cng tham gia mt tr chi nh sau: Mi bn nmtrong 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 cngnga 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 ngcli ng xu ca bn y nga th hai ngi kia sp) th bn thng cuc. Hy vitchng trnh m phng tr chi trn.

  • 7/28/2019 ON THI HSG TIN HOC

    21/70

    100 bi tp Turbo Pascal

    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 Thursda

    yFriday 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- ...- Trng hp a = 8: Sunday- Ngoi ra khng cn th no.b. M chng trnh:

    Program dich;uses crt;

    Var thu:byte;begin

  • 7/28/2019 ON THI HSG TIN HOC

    22/70

    100 bi tp Turbo Pascal

    clrscr;

    write('nhap thu can dich 28: '); readln(thu);case thu of2: Write('--> Monday');

    3: Write('--> Tuesday');4: Write('--> Wednesday');5: Write('--> Thursday');6: Write('--> Friday');7: Write('--> Saturday');8: Write('--> Sunday');elseWrite(' Khong co thu nay');end;readln

    end.

    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. Chngtrnh 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;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');

  • 7/28/2019 ON THI HSG TIN HOC

    23/70

  • 7/28/2019 ON THI HSG TIN HOC

    24/70

    100 bi tp Turbo Pascal

    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;S thc hin vng lp FOR:

    Dng tin

    Bin m:=Min

    Bin m=Max

    +

    -

    ThotS;

    DEC(Bin m);

  • 7/28/2019 ON THI HSG TIN HOC

    25/70

    100 bi tp Turbo Pascal

    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 lmnh 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 vnglp. Do cho d trong vng lp ta c thay i gi tr ca n th s ln lp cngkhng 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.

    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).

  • 7/28/2019 ON THI HSG TIN HOC

    26/70

    100 bi tp Turbo Pascal

    b. M chng trnh:Program In_So_Le;Uses crt;var Dem,i,n: integer;

    BeginClrscr;Write('Nhap so n ='); readln(n);Dem:= 0;For i:=1 to n do if i mod 2 =1 thenBegin

    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 chcn 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;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);readln

    end.

    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:

  • 7/28/2019 ON THI HSG TIN HOC

    27/70

    100 bi tp Turbo Pascal

    - 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,',');readln

    end.

    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);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');readln

    end.

    Bi tp 3.6:

    Vit chng trnh tm cc s hon chnh nh hn n (Vi n c nhp t bnphm).

  • 7/28/2019 ON THI HSG TIN HOC

    28/70

    100 bi tp Turbo Pascal

    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 doBeginS:=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;readln

    end.

    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);readln

    end.

    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;

    beginclrscr;

  • 7/28/2019 ON THI HSG TIN HOC

    29/70

    100 bi tp Turbo Pascal

    for i:= 2 to 9 doBeginWriteln('Bang cuu chuong ',i);For j := 1 to 9 do writeln(i,' x ', j, ' = ',

    j*i);readlnend;readln

    end.

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

    Bi tp 3.9

    Vit 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;

    beginok:=true;write('Nhap n: ');readln(n);for i:= 2 to n - 1 do if n mod i = 0 thenok :=false;if ok then write(n,' la so nguyen to')else write(n, ' khong la so nguyen to');readln

    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;

  • 7/28/2019 ON THI HSG TIN HOC

    30/70

    100 bi tp Turbo Pascal

    var n, i, j: integer;ok: boolean;

    beginclrscr;

    write('Nhap n: '); readln(n);for i := 2 to n dobeginok:=true;for j:= 2 to i - 1 do if i mod j = 0 thenok :=false;if ok then write(i,';')end;readln

    end.

    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.

    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 nc nhp). Yu cu nhp li nu n

  • 7/28/2019 ON THI HSG TIN HOC

    31/70

    100 bi tp Turbo Pascal

    uses crt;var i,n:integer;begin

    clrscr;

    Repeatwrite('Nhap so n: ');readln(n);until 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 mim 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).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;Repeatwrite('Nhap so n: ');readln(n);until n>0;

    gt:=1;while n>0 do

  • 7/28/2019 ON THI HSG TIN HOC

    32/70

    100 bi tp Turbo Pascal

    begingt:=gt*n;n:=n-1;end;

    writeln('Giai thua cua n la: ',gt);readln

    end.

    c. Nhn xt: Tit kim c mt bin i chy nhng lm thay i n nn khi xut ra chc 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;

    beginRepeatwrite('Nhap so n: ');readln(n);until n>0;gt:=1;while n>0 dobegingt:=gt*n;n:=n-2;end;

    write('Giai thua la: ',gt);readln

    end.

    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;

  • 7/28/2019 ON THI HSG TIN HOC

    33/70

    100 bi tp Turbo Pascal

    uses crt;var i: byte;

    so, tong: real;begin

    write('NHAP CAC SO - NHAP 0 DE NGUNG ');readln;repeatclrscr;write('Nhap so thu ',i,': ');readln(so); tong:=tong+so; i:=i+1;until so=0;write('Tong la: ',tong:6:1);readln

    end.

    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');write('Nhap a: ');readln(a);write('Nhap b: ');readln(b);r:=a mod b;while r 0 do

    beginb:=r;a:=b;r:=a mod b;

    end;write('UCLN cua hai so la: ',b);readln

    end.

    Bi tp 4.6

    Dy Fibonacy c hai phn t u l 1, 1. Cc phn t sau bng tng hai phn tng ngay trc n: 1, 1, 2, 3, 5, 8, 13, 21, ...

  • 7/28/2019 ON THI HSG TIN HOC

    34/70

    100 bi tp Turbo Pascal

    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,';');RepeatF:=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 nhoc theo hng phn t th k ca dy.

  • 7/28/2019 ON THI HSG TIN HOC

    35/70

    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:

    - 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 lugi 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;

  • 7/28/2019 ON THI HSG TIN HOC

    36/70

    100 bi tp Turbo Pascal

    uses crt;var n, i: integer;

    M: array[1..100] of real;Begin

    write('Nhap so n: ');readln(n);for i:=1 to n doBegin

    write('M[',i,']='); readln(M[i]);end;for i:= n downto 1 do write(m[i], ,);readln

    end.

    Bi tp 5.2

    Vit 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;

    beginwrite('Nhap so phan tu cua day: ');readln(n);for i:=1 to n dobegin

    write('M[',i,']'); readln(M[i]);end;tong:=0;for i:=1 to n do if M[i] mod 2 =1 thentong:=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:

  • 7/28/2019 ON THI HSG TIN HOC

    37/70

  • 7/28/2019 ON THI HSG TIN HOC

    38/70

    100 bi tp Turbo Pascal

    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;

    beginwrite('Nhap n: '); readln(n);for i:=1 to n dobegin

    write('M[',i,']='); readln(m[i]);end;min:=m[1];

    nhonhat:=1;for i:=2 to n do if m[i] < min thenbegin

    min:=m[i]; nhonhat:=i;end;writeln('phan tu nho nhat la phan tu

    thu',nhonhat);readln

    end.

    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

  • 7/28/2019 ON THI HSG TIN HOC

    39/70

    100 bi tp Turbo Pascal

    Write('Nhap so phan tu n:');Readln(n);For i:=1 to n doBegin Write('M[',i,']='); Readln(M[i]); End;For i:=1 to n-1 do

    For j:=i+1 to n do if M[j]

  • 7/28/2019 ON THI HSG TIN HOC

    40/70

    100 bi tp Turbo Pascal

    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 doBegin

    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;Readln

    End.

    Bi tp 5.9Vit chng trnh cho php nhp.

    a. Hng dn:

    b. M chng trnh:

    Bi tp 5.10Vit chng trnh cho php nhp.

    a. Hng dn:b. M chng trnh:

  • 7/28/2019 ON THI HSG TIN HOC

    41/70

    100 bi tp Turbo Pascal

    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;

    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[(...)];...................

  • 7/28/2019 ON THI HSG TIN HOC

    42/70

    100 bi tp Turbo Pascal

    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 duynht (kiu v hng, kiu string).- Li gi CTC cn nm trong cc biuthc tnh ton.

    - Kt qu ca bi ton khng tr v gi trno hoc tr v nhiu gi trhoc tr vkiu d liu c cu trc (Array, Record,File).

    - Li gi CTC khng nm trong cc biuthc tnh ton.

    B. BI TPBi tp 6.1:

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

    b. M chng trnh:Program Giai_PT_bac_hai;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;begin

    write('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);

  • 7/28/2019 ON THI HSG TIN HOC

    43/70

    100 bi tp Turbo Pascal

    write('Nhap c: ');readln(c);delta:=b*b-4*a*c;if delta>0 then delta_duongelse if delta = 0 then delta_khong

    else delta_am;readlnend.

    c. Nhn xt: Chng trnh con cho php chia nh cng vic nhm n gin ho. Ngoira mt cng vic no lp li nhiu ln trong chng trnh nn dng CTC v khi mchng 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;begintam:=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);readln

    end.

    b. Nhn xt:- Nu b t var khai bo var x,y:real th chng trnh vn khng bo li nhngchc 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.

  • 7/28/2019 ON THI HSG TIN HOC

    44/70

    100 bi tp Turbo Pascal

    - 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 doBegin

    Write('Nhap so: ');Readln(so);if (so>nhi) and (somax thenBegin

    nhi:=max;Max:=so;

    End;End;Write('So thu nhi la: ',nhi);Readln

    End.

    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

  • 7/28/2019 ON THI HSG TIN HOC

    45/70

    100 bi tp Turbo Pascal

    beginGT:=GT*n;n:=n-1;end;

    end;begin

    repeatclrscr;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 nc gi tr khng i so vi trc khi gi chng trnh con.

    Bi tp 6.4: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 dobeginGT:=GT * n;

    n:=n-1;end;Giai_thua:=GT;

    end;begin

    clrscr;write('Nhap n: '); readln(n);write(n,'!=',Giai_thua(n));readln

    end.

  • 7/28/2019 ON THI HSG TIN HOC

    46/70

    100 bi tp Turbo Pascal

    Nhn xt: Hy so snh s khc nhau khi Giai_thua c vit di hai dng Function vProcedure.- Khi dng Procedure cn mt bin (ton cc) lu gia gi tr ca n!. Bin ny ctruyn 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 dobegin

    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));readln

    end.

    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:

  • 7/28/2019 ON THI HSG TIN HOC

    47/70

    100 bi tp Turbo Pascal

    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 dobegin

    write('M[',i,']=');readln(X[i]);end;

    end;Procedure In_Mang(X:kieu_mang; n:byte);

    var i: byte;beginfor i:=1 to n do write(x[i],', ');

    end;{-----------}begin

    clrscr;write('Nhap so phan tu cua day: ');read(n);Nhap_mang(A,n);Nhap_mang(B,n);

    i:=1;j:=1;while i

  • 7/28/2019 ON THI HSG TIN HOC

    48/70

    100 bi tp Turbo Pascal

    {------Ham kiem tra-------}Function kiem_tra(n:integer):boolean;var i: integer;begin

    kiem_tra:=true;for i:=2 to n-1 do if (n mod i) = 0 then

    kiem_tra:=false;end;{------CTC----------------}begin

    clrscr;write('Nhap n: '); readln(n);for i:=2 to n do if kiem_tra(i) then write(i:3,

    ', ');

    readln;end.

    Bi tp 6.8: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 dobegin

    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;

  • 7/28/2019 ON THI HSG TIN HOC

    49/70

    100 bi tp Turbo Pascal

    begintam:=b;b:=a;a:=tam;

    end;{---------------------}

    BeginClrscr;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);readln

    end.

  • 7/28/2019 ON THI HSG TIN HOC

    50/70

    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;Var n,i:integer;Function NT(n:integer):Boolean;Var ok: Boolean;

    i: integer;Begin

    ok:=true;

    for i:=2 to n-1 doif (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.

  • 7/28/2019 ON THI HSG TIN HOC

    51/70

    100 bi tp Turbo Pascal

    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 doBeginif n mod i = 0 then Begin Write(i,'.'); n:= n div i Endelse i:=i+1;End;Readln

    End.

    Nhn xt: Ci t trn in d mt du nhn cui. Hy chnh sa b du nhn thany.Bi tp 7.3:

    Tm cc s t nhin nh hn hoc bng n m sau khi lm php phn tch ra thas 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 doif (n mod i)=0 thenBegin Write(i,'.'); n:=n div i end else i:=i+1;

    End;

    BeginWrite('Nhap so n: ');Readln(n);

  • 7/28/2019 ON THI HSG TIN HOC

    52/70

  • 7/28/2019 ON THI HSG TIN HOC

    53/70

    100 bi tp Turbo Pascal

    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);Readln

    End.

    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 nhiutrng 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 sca s kia v ngc li. Lp trnh tm v chiu ln mn hnh cc cp s hu ngh trong

    phm vi t 1 n 10000. (Lu : s 1 c coi l c s ca mi s cn mi s khngc 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.

  • 7/28/2019 ON THI HSG TIN HOC

    54/70

    100 bi tp Turbo Pascal

    A. L THUYT:- Dy con l dy cc phn t lin tc thuc mt dy c trc (dy m) tha mn mt tnhcht 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 dymi.- duyt qua tt c cc dy con ca mt dy gm n s ta dng thut ton vt cn sau:

    For i:= 1 to nFor j:= 1 to n-i+1 Xt dy con bt u t v tr th i c di j.

    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 elseif dai> Max then Begin Max:=dai; ldau:=dau; dai:=0

    Endelse Begin dau:=i+1; dai:=1 End;End;Write('Xau con dai:',max,' bat dau tu: ',ldau);

    ReadlnEnd.

  • 7/28/2019 ON THI HSG TIN HOC

    55/70

    100 bi tp Turbo Pascal

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

    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;

    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 doFor j:=1 to n-i+1 do

    if KT(M,i,j) then

    if j+1> Max then Begin ldau:=i; Max:=j+1End;

    Write('Xau con dai:',max,' bat dau tu: ',ldau);Readln

    End.

    Bi tp 2: Cho dy s gm n s. Tm dy con ln nht cc phn t c cng du, (andu).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;

  • 7/28/2019 ON THI HSG TIN HOC

    56/70

    100 bi tp Turbo Pascal

    dai:=1;ldau:=1;While i0 then dai:=dai+1 elseif dai> Max then Begin Max:=dai; ldau:=dau; dai:=0

    Endelse Begin dau:=i+1; dai:=1 End;End;Write('Xau con dai:',max,' bat dau tu: ',ldau);Readln

    End.

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

    Bi tp 3: Cho dy gm n s. Tm dy con ln nht n iu (lin tc tng, gim hocgim, 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 doFor j:=0 to n-i+1 do

  • 7/28/2019 ON THI HSG TIN HOC

    57/70

    100 bi tp Turbo Pascal

    if TONG(M,i,j)> Max thenBegin ldau:=i; Max:=Tong(M,i,j) ; dai:=j+1 End;

    Write('Xau con co tong:',max,' bat dau tu: ',ldau, ' dai: ',dai);Readln

    End.

    Nhn xt:

    CHNG IXCHUYN CH S, H C S.

    A. L THUYT:- Trong h c s 10: S A = an.a2a1a0 = a0 + 10a1 + +10nan nn:

  • 7/28/2019 ON THI HSG TIN HOC

    58/70

    100 bi tp Turbo Pascal

    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 dngA:=A div 100.- Thut ton vt cn: xt tt c cc trng hp ca s A ta xt a n = 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 haich 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:

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

    V 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;

    BeginWriteln( 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 doFor 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);

  • 7/28/2019 ON THI HSG TIN HOC

    59/70

    100 bi tp Turbo Pascal

    Readln;End.

    Bi tp 8.2:

    Vit chng trnh cho nhp hai s t nhin N v k. Hy cho bit ch s th ktnht tri sang phi trong s N l s my? nu k ln hn di ca N hoc k bng 0 ththng 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;

    so: Longint;

    i,k:integer;Begin

    Write('Nhap so: ');Readln(so); so:=abs(so);Write('Nhap k: ');Readln(k);i:=0;While so>0 dobegin

    i:=i+1;M[i]:=so mod 10;so:=so div 10;

    end;Write('Chu so thu ',k,'la: ',M[i-k+1]);Readln

    End.

    Nhn xt :Nu bi ton yu cu tm ch s th k tnh t phi sang tri th n gin hnnhiu. 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 mtch 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 cnhp 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 doBegin

  • 7/28/2019 ON THI HSG TIN HOC

    60/70

    100 bi tp Turbo Pascal

    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

    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

  • 7/28/2019 ON THI HSG TIN HOC

    61/70

    100 bi tp Turbo Pascal

    inc(ch);End;tam:='';While n0 do

    Begintam:= CS[n mod s]+ Tam;n:=n div s;

    End;D10_CS:=Tam;

    End;

    BeginWrite('Nhap n:');Readln(n);Write('Doi sang co so: ');Readln(s);

    Write(D10_CS(n,s));Readln

    End.

    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

  • 7/28/2019 ON THI HSG TIN HOC

    62/70

    100 bi tp Turbo Pascal

    ch:='A';While 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;

  • 7/28/2019 ON THI HSG TIN HOC

    63/70

    100 bi tp Turbo Pascal

    Function TICH(n:Longint):Longint;Var tam:integer;Begin

    if n=0 then tam:=0 else tam:=1;

    While n 0 doBegin

    Tam:=tam*(n mod 10);n:=n div 10;

    End;TICH:=Tam;

    End;Begin

    clrscr;

    Write('Nhap n:');Readln(n);Max:=0;For i:=1 to n doBegind:=0;j:=i;gotoxy(1,2);Write('Dang duyet den so: ',i);While j>9 doBegin

    d:=d+1;j:=TICH(j);End;if d>=Max thenBegin

    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');Readln

    End.

  • 7/28/2019 ON THI HSG TIN HOC

    64/70

    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:

  • 7/28/2019 ON THI HSG TIN HOC

    65/70

    100 bi tp Turbo Pascal

    anx^n + ... + a1x + a0Gii thut:- Dng hai mng A, B lu h s ca hai a thc. C th dng mng th ba C hocdng 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;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 doBegin 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;

    Beginif A[n] 0 then Write(A[n],'x^',n);For i:=n-1 downto 0 doif A[i] 0 thenif 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;Readln

    End.Nhn xt:

  • 7/28/2019 ON THI HSG TIN HOC

    66/70

    100 bi tp Turbo Pascal

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

    Gii thut:- Dng chng trnh con tnh xn.

    Ci t:Program Gia_tri_cua_da_thuc;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 doBegin

    Write('a',i,'= '); Readln(a);S:=S+a*XMU(x,i);

    End;Writeln('F(',x:5:2,')= ',S:5:2);Readln;

    End.

  • 7/28/2019 ON THI HSG TIN HOC

    67/70

    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 binmng.

    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 a n 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 doBegin

    Write('a',i,'=');Readln(a);S:=(S+a)*x;

    End;Write('f(',x:3:1,')=',S:5:1);Readln

    End.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 doBegin

    Write('A[',i,']= '); Readln(A[i]);End;Write(' Nhap bac cua da thuc B: ');

    Readln(n);For i:= n downto 0 doBegin

    Write('B[',i,']= '); Readln(B[i]);End;

  • 7/28/2019 ON THI HSG TIN HOC

    68/70

    100 bi tp Turbo Pascal

    For i:=0 to m+n do C[i]:=0;For i:=0 to m doFor 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,' + ');Readln

    End.

    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 doBegin 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;Procedure INDT(A:KM;n:byte);

  • 7/28/2019 ON THI HSG TIN HOC

    69/70

    100 bi tp Turbo Pascal

    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 thenif 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;

    Beginclrscr;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) doBegincs:=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;Readln

    End.

    Nhn xt:Bi tp 10.7:

  • 7/28/2019 ON THI HSG TIN HOC

    70/70

    100 bi tp Turbo Pascal

    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: