You are on page 1of 55

Bi tp Pascal

A. BI TP V CU LNH C CU TRC Bi 1. Kim tra s nguyn t Var n,I : integer; ok : boolean; Begin Vrite (nhp:); Readln(n); If n <= 1 then ok:= False Else If n = 2 then ok:= True Else Begin I:= 2; While (n mod I <> 0) and ( i<= sqrt(n)); If i > sqrt(n) then ok:= true Else ok:= false; End; If ok then write ( l s nguyn t) Else write ( khng s nguyn t); Readln; End. Var n,I,k : integer; Begin Vrite (nhp:); Readln(n); I:= 2; K:= trunc(sqrt(n)); Repeat Inc(i); Until (i>k) or (n mod I = 0) ; If i > k then write ( l s nguyn t) Else write ( khng s nguyn t); Readln; End. Program Ktra_sngto; Var n: word; Funtion Ngto(k:word): Boolean; Var i,dem:Word; begin dem:=0; Ngto:=false; for i:=2 to n do if n mod i = 0 them dem:=dem+1; if dem = 2 then Ngto:= true; end; BEGIN Writeln('Nhap n '); readln(n); while n <2 do begin writeln('nhap lai'); readln(n); end; if Ngto(n) then writeln(' So nguyen to') else writeln('Khong la so nguyen to; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 2: Nhp 1 s t nhin n.Lit k cc s nguyn t nh hn n. VD: n=13 Cc s nguyn t nh hn n: 2 ,3 ,5 , 7, 11 Program bt; Var i,n,j : integer; Begin Write ('Nhap n:');Readln(n); Write ('Cac so nguyen to nho hon ',n,' la:'); For i:=2 to n-1 do Begin j:=2; While i mod j <>0 then j:=j+1; if i=j then write (i,','); end; readln; End. Bi 3: Var n:longint; {------------------------------} Function ngto(n:longint):boolean; Var i:word; Begin ngto:=false; for i:=2 to trunc(sqrt(n)) do if n mod i=0 then exit; ngto:=true; end; {------------------------------} BEGIN write('nhap n: '); readln(n); for i:=2 to n do if ngto(i) then write(i,' '); Readln; END. Bi 4: tinh tng v tch Var i,tong,tich,n,m:longint; Begin write('nhap so n,m: '); readln(n,m); tong:=0; tich:=1; for i:=1 to m do begin tong:=tong+(n mod 10); tich:=tich*(n mod 10); n:=n div 10; end; writeln('tong la: ',tong); writeln('tich la: ',tich); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 5 : Nhp 1 s m cc ch s ca s nhp vo. Var a,i,j,n:longint; Begin write('Nhap so n: ');readln(n); i:=0; j:=10; repeat a:=n mod j; j:=j*10; i:=i+1; until a=n; write('So chu so cua n la: ',i); readln; End Bi 6. i k t thnh ch hoa Program DoiChu; Var St:String; i: integer; Begin Write('Hy nhp tn ca bn : '); Readln(St); FOR i:= 1 TO Length(St) DO St[i] := Upcase(St[i]); (*Hm Upcase i k t thnh ch in hoa*) Writeln; Writeln(St); Readln; End. Bi 7 : VCT tnh s tin in trong 1 thng. Var kw, SoTien:LongInt; Begin Write('Nhap so KW dien da su dung trong thang: '); Readln(kw); Case kw of 1..100: SoTien := kw*650; 101..200: SoTien :=100*650+(kw-100)*1100; 201..300: SoTien :=100*650+100*1100+(kw-200)*2000; Else SoTien :=100*650+100*1100+100*2000+(kw-300)*3000; End; Writeln('So Tien phai tra trong thang la: ',SoTien); Readln; End Bi 8 :Vit chng trnh kim tra trong 3 s a,b,c nhp t bn phm s no l ln nht. uses crt; var a, b, c, max: integer; Begin clrscr; write ('Nhap so a:= '); readln (a); write ('Nhap so b:= '); readln (b); write ('Nhap so c:= '); readln (c); max:=a; {ci ny dng nh chng ta gi s a l s ln nht :D } if max<b then max:=b; if max<c then max:=c; write ('so lon nhat max:= ',max); readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 9 : Nhp 3 s bt k kim tra xem n c phi l 3 cnh ca tam gic ko uses crt; var a,b,c,p,s: real; Begin clrscr; {X&#243;a mn hnh} write ('Nhap a:= ');readln (a); write ('Nhap b:= ');readln (b); write ('Nhap c:= ');readln (c); if (a>0) and (b>0) and (c>0) and (a+b>c) and (b+c>a) and (a+c>b) then begin write ('3 cnh tren tao thanh 1 tam giac'); if (a=b) and (b=c) then write ('Day la tam giac deu'); if (a=b) or (b=c) or (a=c) then weite ('Day la tam giac can'); p:= (a+b+c)/2; s:= SQRT(p*(p-a)*(p-b)*(p-c)); write ('chu vi: ',2*p:0:5,' Dien tich: ',s:0:5); end else write ('3 so nay khong tao thanh 1 tam giac'); readln; End. Bi 10: m s ch s to thnh 1 s nguyn Var m, n, dem : longint; Begin Write (;nhap n:); readln(n); Dem:= 0; m:= n; Repeat n:= n div 10; inc (dem); Until n=0; Writeln(n,co tat ca la,dem,chu so); Readln; End. Bi 11 : Thng bo ra mn hnh cc s k<=n bng tng cc c s ca n v nh hn n. Var n, I, j, s : integer; Begin Write(nhap n); readln(n); Repeat For I = 1 to n do Begin S:= 0; For j :=1 to I div 2 do If I mod j = 0 then s := s + j; If s := I then write (i:j, ); End; Until n <= 1000 ; Readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 12: Nhp vo mt s, my s bo: chng hay l, chnh phng hay ko? Var a: integer; Begin Write(nhap a:); readln(a); If a mod 2 = 0 then writeln(a,la so chan) Else Writeln(a,la so le); If sqrt(a) = int(sqrt(a)) then writeln(a,la so chinh phuong) Else writeln(a,khong la so chinh phuong); readln; End. Bi 13: Tnh 1 22 + 32 42 + +n2 Var Write(nhap n); readln(n); S:= 0; For i:= 1 to n do If I mod 2 <> 0 then S:= S + sqr(i) Else S:= S sqr(i); Writeln(tong la :=,S); Readln; End. Bi 14: Chuyn s thp phn thnh dy s nh phn. Var n, m, I : integer; chuso : byte; {ch s ch nhn 2 gi tr: 0, 1} Begin Write(nhp n =); readln(n); m := 16384 = 214 ; write(0); {chu so dau tien la 0} for i := 1 to n do begin chuso := n div m ; {chu so nhi phan dau tien} write(chuso); if (i+1) mod 4 = 0 then write ( ); n := n m*chuso; m :=mdiv 2; end; readln; End. Bi 15: Nhp 1 s nguyn dng in ra mn hnh UCLN Var n, m, I : integer; Begin Write(nhap n:); readln(n); m := 0; for i := 1 to n do Begin m := n div I; if (m mod 2 <> 0) and (m > max) them max := m; end; writeln(UCLN;,max); readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 16: Tnh li sut 15% thng Const LS = 0,015 Var X, Y, XX : real; Begin Write(nhap X, Y: ); readln(X,Y); XX := X; Month := 0; Repeat Month := month + 1; XY := XX+ XX*LS; Until XY = Y; Writeln( Tong so tien lai :,Y X); Writeln(so thang gui:,month); Readln; End. Bi 17: VCT xc nh s ngy ca 1 thng N. Var M: 1990 ..2010; N: 1..12; Begin Write(nhap nam hien tai:); readln(M); Write(nhap thang hien tai:); readln(N); Case N of 1,3,5,7,8,10,12: writeln(co 31 ngay); 4,6,9,11 : writeln(co 30 ngay); 2 : writeln(cos 29 ngay) Else Writeln(co 28 ngay); Readln; End. Bi 18. Lp trnh tm cc s c ba ch s vi iu kin gi tr ca s bng tng lp phng cc ch s ca n. uses crt; Var a,b,c,i:integer; Begin clrscr; For i:=100 to 999 do begin a:=i div 100; b:=(i div 10) mod 10; c:=i mod 10; if a*a*a+b*b*b+c*c*c=i then begin Writeln('So ',i,' co gia tri bang tong lap phuong cac chu so cua no.'); end; end; Readln; End.

Bi 19. Tnh tng sau (vi x thc nhp t bn phm): Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Chng trnh dng khi
( ) n . 1
1 x 2n + <0,0 0 01 ( 2n + ) 1

uses crt; Var i:integer; a,b,c,x,t:real; Procedure tinh; begin a:=x;b:=0;t:=x;c:=1; While abs(c*a/(2*b+1))>=0.0001 do begin a:=a*x;b:=b+1;c:=c*-1; t:=t+c*a/(2*b+1); end; end; Begin clrscr; Write('Ban hay nhap so x:');Readln(x); tinh; Writeln('Ket qua la:',t:0:10); Readln; End. Bi 20: Nhp vo mt s t nhin n.Lp trnh tr li cc cu hisau: - n c bao nhiu ch s? - Tng cc ch s ca n bng bao nhiu? - Tm ch s u tin ca n. - Gi s trong cch biu din thp phn ca n c dng sau: akak - 1 .....a 2 a 1 a 0 . Hy tnh tng S = ak - ak - 1 + ak - 2 - .... + (-1) k + 1 .a 0 - Nhp vo s m (m s ch s ca n). Hy tnh tng m ch s cui cng ca n. uses crt; var i,k,m,n:longint; s:string; Begin clrscr; Repeat Write('Ban hay nhap so thu nhien n:');Readln(n); if n<0 then Writeln('n phai la so tu nhien.'); Until n>=0; Str(n,s); Writeln('So ',n,' co ',length(s),' chu so.'); k:=0;m:=0; For i:=1 to length(s) do begin k:=k+(ord(s[i])-48); if i mod 2=1 then m:=m+(ord(s[i])-48) else m:=m-(ord(s[i])-48); end; Writeln('Tong cac chu so cua ',n,' la:',k,'.'); Writeln('Chu so dau tien cua ',n,' la:',s[1],'.'); Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Writeln('Tong S la:',m); Repeat Write('Ban hay nhap so m(m<=so chu so cua n):'); Readln(m); if m>length(s) then Writeln('m phai <=',length(s), '.' ); Until m<=length(s); Delete(s,1,length(s)-m); k:=0; For i:=1 to length(s) do k:=k+(ord(s[i])-48); Writeln('Tong ',m,' chu so cuoi cung cua ',n,' la:',k,'.'); Readln; End. Bi 21.Vi gi tr x nhp t bn phm, hy tnh tng sau:
( x 1) ( x 1) 3 ( x 1) 5 ( x 1) 2 n +1 + + + ... + + ... ( x +1) 3. ( x +1) 3 5. ( x +1) 5 ( 2n +1) . ( x +1) 2 n +1

cho n khi

( x 1) 2 n +1 ( 2n +1) . ( x +1) 2 n +1

< 0,0001

uses crt; var i:integer; a,b,x,t: real; Procedure tinh; begin i:=1; a:=x-1;b:=x+1;t:=a/(i*b); While a/(i*b)>=0.0001 do begin i:=i+2; a:=a*(x-1)*(x-1); b:=b*(x+1)*(x+1); t:=t+a/(i*b); end; end; Begin clrscr; Write('Ban hay nhap so x:');Readln(x); if x<>-1 then begin if x=1 then Writeln('Ket qua la:0') else begin tinh; Writeln('Ket qua la:',t:0:10); end; end else Writeln('Cac phan tu co mau la 0 nen the chia duoc.'); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 22.Lp trnh tnh tng cc s nguyn. uses crt; var n,i:integer; tong:real; t:char; Begin repeat clrscr; writeln(' CHUONG TRINH TINH TONG N SO'); writeln('S = 1 + 1/2 + 1/3 +...+ 1/n'); writeln; write('Nhap so gioi han can tinh, n=');readln(n); tong:=1; for i:=2 to n do tong:=tong+1/i; writeln('Ket qua, S =',tong:7:4); writeln; writeln('An Phim BAT KY de TIEP TUC, X de THOAT!...'); t:=readkey; until (t='x') or(t='X'); End. Bi 23.Lp trnh a ra mn hnh cc s nguyn t t 1 n 100. uses crt; var i,k:integer; Function snt(var a:integer):integer; var i,d:integer; begin d:=0; for i:=2 to round(sqrt(a)) do if (a mod i)=0 then d:=d+1; if d=0 then snt:=1 else snt:=0; end; Begin clrscr; writeln('CHUONG TRINH IN CAC SO NGUYEN TO TU 1 DEN writeln; k:=0; for i:=1 to 100 do if snt(i)<>0 then begin write(i:5); k:=k+1; if k=13 then begin writeln; k:=0; end; end; writeln; writeln('An Phim Bat ky de THOAT!...'); repeat until keypressed; end.

100');

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 24.Tnh biu thc sau vi x l s thc cho trc (x 0), yu cu kim tra iu kin x nhp vo t bn phm: uses crt; var i:integer; x:real; Function tinh(i:integer):real; var r: real; begin if i<256 then r:=x*x+i/tinh(i*2) else r:=x*x+i/(x*x); tinh:=r; end; Begin clrscr; Repeat Write('Ban hay nhap so thuc x:');Readln(x); if x=0 then Writeln('Ban phai nhap x khac 0.'); Until x<>0; Write('Ket qua la:',tinh(2):0:2); Readln; End. Bi 25. S hon ho Nhp t bn phm mt s t nhin N. Lp chng trnh tm tt c cc s hon ho c gi tr t 1 n N (nu c). Nu khng c hy a ra thng bo Khng c. (S hon ho l mt s t nhin tho mn iu kin: gi tr s bng tng cc c s thc s ca n m khng k chnh s ). uses crt; var i,k,m,n,s:integer; Begin clrscr; Repeat Write('Ban hay nhap so n:');Readln(n); Until n>=0; For i:=2 to n do if i mod 2=0 then begin m:=1; For k:=2 to i-1 do if i mod k=0 then m:=m+k; if m=i then begin s:=s+1; Writeln(i); end; end; Writeln('Co ',s,' so hoan hao co gia tri tu 1 den ',n,'.'); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 26: Tnh s ngy gia 2 mc thi gian bt k: Yu cu nhp vo 6 s: nd , td , yd , nc , tc , yc l ngy thng nm bt u v ngy thng nm cui ( 2000 < yd < yc ). Hy tnh xem gia hai mc thi gian c bao nhiu ngy. Bit rng: Thng 4, 6, 9, 11 c 30 ngy.Thng 1, 3, 5, 7, 8, 10, 12 c 31 ngy.Thng 2 nu nm nhun c 29 ngy cn nu khng nhun th c 28 ngy. Bn nm c mt nm nhun, bit rng nm 2000 th nm nhun. uses crt; var i, k, m, n, nd, td, yd, nc, tc,yc : integer; Function ng(t,n:integer):integer; Var a:integer; begin Case t of 4,6,9,11:a:=30; 1,3,5,7,8,10,12:a:=31; 2:if n mod 4<>0 then a:=28 else a:=29; end; ng:=a; end; Begin clrscr; Writeln('Ban hay nhap ngay thang nam bat dau:'); Write('Ngay:');Readln(nd); Write('Thang:');Readln(td); Write('Nam:');Readln(yd); Writeln('Ban hay nhap ngay thang nam cuoi:'); Write('Ngay:');Readln(nc); Write('Thang:');Readln(tc); Write('Nam:');Readln(yc); n:=0; if yd<>yc then begin For i:=yd+1 to yc-1 do if i mod 4<>0 then n:=n+365 else n:=n+366; For i:=td to 12 do n:=n+ng(i,yd); n:=n-nd; For i:=1 to tc-1 do n:=n+ng(i,yc); n:=n+nc; end; Writeln('Giua hai moc thoi gian do co ',n,' ngay.'); Readln; End. Bi 27: Trn mt bn c c n x n , hy lp trnh xp 2n qun c ln bn c sao cho khng c qu 2 qun c trn 1 hng v trn 1 ct. Ch cn in ra mt cch xp ln mn hnh (dng du *lm k hiu qun c ). var i,k,n:integer; Begin clrscr; Write('Ban hay nhap so n:');Readln(n); For k:=1 to n do begin For i:=1 to n do if (i in [k,k+1]) or ((k=n) and (i=1)) then Write('*') else Write('-'); Writeln; end; Readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
B. BI TP V MNG Bi 1: Cho mng gm n phn t l s thc. a.Tm hai phn t lin tip nhau c tng bng n. b. Tnh khong chc gia hai v tr ca phn tln nht v b nht u tin trn A. Var A: array[1..100] of real; Max, min : real; I, n, Vtmax, Vtmin : integer; Begin Writeln(nhap n:); readln(n); For i:= 1 to n do Begin Write([,I,]=); readln(A[i]); End; i:=1; {Tm hai phn t lin tip nhau c tng bng n} While (A[i] + A[i+1]) <> n) and (i<= n-1) do Inc(i); If i>=n then write (hai phan tu co chi so la:,i, va,i+1); {Tnh khong chc gia hai v tr ca phn t ln nht v b nht u tin trn A} Max:=A[1]; Min:=A[1]; For i:=1 to n do If max < A[i] then Begin Vtmax:= i; Max:=A[i]; End; If min > A[i] then Begin Vtmin:= i; Min:=A[i]; End; Writeln (khoangr cachs giua 2 phan tu max vaf min la:,abc(Vtmax Vtmin); Readln; End. Bai 2: const NMax = 50; Type Mass = array[1...NMax, 0...NMax-1] of real; Var A: Mass; i, j, N:byte; C: real; Begin write ('Nhap N='); readln(N); for i:= 1 to N do for j:= 0 to N-1 do begin write('A[',i,',',j,']= '); readln(A[i,j]); end; for i:= 1 to N do for j:= 0 to N-1 do begin C:= A[i,j]; A[i,j]:= A[N-i+1,j]; A[N-j+1,j]:= C; end; for i:= 1 to N do begin for j:= 0 to N-1 do write (A[i,j]:5:2,' '); writeln; end; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 3 :nhp vo chng trnh vo 1 mng s nguyn, sau lit k cc s dng trong mng ri in ra mn hnh Program bt; Var a:array [1..1000] of longint; i,n:word; Begin write('nhap so phan tu cua mang: '); readln(n); for i:=1 to n do begin write('nhap phan tu a[',i,']: '); readln(a[i]); end; write('cac phan tu duong la: '); for i:=1 to n do if a[i]>0 then write(a[i],' '); readln; End. Bi 5: Sp xp mt dy s theo th t t nh n ln Tin trnh ca bi ton: - Gi s chui s ca ta c n phn t . Ln lt cho chng trnh c gi tr ca cc phn t nhp c. - Mt th tc (Procedure) s lm cng vic sp xp nh sau : u tin a phn t th nht so snh vi cc phn t tip theo, nu n ln hn phn t so snh th em i ch gi tr ca hai phn t vi nhau. Sau tip tc em phn t th 2 so snh cc phn t tip theo theo trnh t nh vy, ... v c nh th cho n phn t th n - 1. - In kt qu ra mn hnh Chng trnh Pascal nh sau: (* Sp xp mt mng cc phn t s thc t nh n ln*) VAR n, i, loc: 1 .. 100 ; x : ARRAY [1 .. 100] OF real ; temp : real ; PROCEDURE interchange ; (* i ch cc phn t mng t nh n ln*) BEGIN FOR loc := 1 TO n-1 DO FOR i := loc + 1 TO n DO IF x[i] < x [loc] THEN BEGIN temp := x[loc] ; x[loc] := x[i] ; x[i] := temp ; END ; END ; BEGIN Write (' C bao nhiu phn t s ? ') ; Readln (n) ; FOR i := 1 TO n DO BEGIN Write ( x[ , i : 3, ] = ? ) ; Readln( x[i] ) ; END ; interchange ; Writeln ; Writeln (' S liu sp xp : ') ; Writeln ; FOR i := 1 TO n DO Writeln ( x[ , i : 3, ] = , x[i] : 4 : 1 ) ; Readln; END. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 4: vit chng trnh nhp vo 1 mng 2 chiu, gm cc s nguyn, sau xut ra mn hnh cc s l Program bai2; var a:array [1..10,1..10] of longint; i,j,m,n:byte; Sh, tbphc, L : integer; Tccl : real; {khai bao du lieu} Begin write('nhap m,n: '); readln(m,n); for i:=1 to m do for j:=1 to n do begin write('nhap phan tu a[',i,',',j,']: '); readln(a[i,j]); end; for i:=1 to m do for j:=1 to n do if odd(a[i,j]) then write(a[i,j],' '); {tong so hang le} Sh := 0; For i := 1 to n do For j := 1 to n do Sh := sh + A[I,j]; Write(tong so hang,sh); {tong binh phuong cac so tren hang chan} Tbphc := 0; For i := 1 to n div 2 do For j := 1 to n do Tbphc := tbphc + sqr (A[I sh1 1,j]); Writeln(tong binh phuong cac so hang chan,tbphc); {tinh tong can bac 2 cac cot le} Tccl := 0; For := 1 to n do For j :=1 to n div 2 do Tccl : =tccl + sqrt(A[I,j sh 1 2] 1); Writeln(tong can cot le,tccl); {co bao nhieu gia tri nam trongg 4 ..6} L : = 0; For := 1 to n do For j :=1 to n div 2 do If (A[I,j] > = 4) and (A[I,j] <= 6) then Inc(L); Writeln(so phan tu nam trong khoang 4 ..6 la,L); {tong duong cheo chinh} Dcc := 0; For i:=1 to m do For j:=1 to n do Begin If i=j then Dcc:=dcc + A[I,j]; End; Writeln(tong duong cheo chinh,dcc); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 5: program BT; const NMax = 50; type Mass = array[1...NMax, 0...NMax-1] of real; var A: Mass; i, j, N:byte; C: real; Begin write ('Nhap N=');readln(N); for i:= 1 to N do for j:= 0 to N-1 do begin write('A[',i,',',j,']= '); readln(A[i,j]); end; {on trn ny nhp vo 1 ma trn} for i:= 1 to N do for j:= 0 to N-1 do begin C:= A[i,j]; A[i,j]:= A[N-i+1,j]; A[N-j+1,j]:= C; end; {on ny i v tr cc hng ca ma trn theo kiu hng u i cho hng cui, hng th 2 i cho hng k cui} for i:= 1 to N do begin for j:= 0 to N-1 do write (A[i,j]:5:2,' '); writeln; end; {Cn on cui ny th in ma trn c i v tr cc hng ra mn hnh} readln; end. Bi 6: VCT i 1 s nguyn h 10 sang h 2. Var NP: array[1.. 16] of byte; n, i, j : integer; Begin Write(nhao n:); readln(n); For i := 1 to 16 do NP[i] := 0; i := 1; while n <>0 do begin NP[i] = n mod 2; n := n div 2; end; for j := I downto 1 do write (NP[j]; readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 7: Var A: array[1..100] of real; I, j : byte; temp : real; Begin Writeln(nhap so phan tu cho mang::); readln(n); For i:= 1 to n do Begin Write([,i,]=); readln(A[i]); End; {sap xep tang dan} For i := 1 to n do For j := i + 1 to n do If A[i] > a[j] then Begin Temp := A[i]; A[i] := A[j]; A[i] := temp; End; Writeln(mang do sap xep xong); For i := 1 to n do write (A[i]:5:3); {chen M vao day} Write(nhap gia tri M:); readln(M); If M >= A[i] then A[i+1] := M Else Begin J :=1; While M> A[j] do J := j + 1; For i := n+1 downto j 1 do A[i] := A[i-1]; A[j] := M; End; Writeln(ket qua sau khi chen:); For j :=1 to n +1 do Write(A[j] : 6); Readln; End. Bi 8: Var X: array [1..50] of integer; I,n, max : integer; s : real; Begin Write(nhap so phan tu:); readln(n); S:=0; For i:= 1 to n do Begin Write(nhap mang X[,1,]=); readln(X[i]); End; { tinh tong binh phuong cac so am trong day } If A[i] < 0 then S:= S + sqr(X[i]); Writeln(tong la:,S:5); { Tim so lon nhat} Max := 1; if X[i] . max then max := X[i]; writeln(so lon nhat la:, max);

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
{ tim phan tu dau tien chia het cho 10} Ok:= false; I := 1; While (not ok) and (I <=n) do If X[i] mod 10 = 0 then ok := true Else I:= i+1; If ok then write(so thu,I, la:,X[i]) Else Write(khong tim thay); Readln; End. Bi 9:Cho dy s thc bt k, hy kim tra xem dy s sp xp cha? Nu sp xp ri th theo chiu no? Nu cha th sp xp theo chiu tng dn. uses crt; Var a:array [1..1000] of real; i,k,n:integer; m:real; Begin clrscr; Write('Ban hay nhap so phan tu cua day:');Readln(n); For i:=1 to n do begin Write('Ban hay nhap so thu ',i,':');Readln(a[i]); if (i>1) and (k<>3) then begin if (a[i]>a[i-1]) and (k<>1) then if k=0 then k:=1 else k:=3; if (a[i]<a[i-1]) and (k<>2) then if k=0 then k:=2 else k:=3; end; end; Case k of 1:Writeln('Day duoc sap xep theo thu tu tang dan.'); 2:Writeln('Day duoc sap xep theo thu tu giam dan.'); 3:begin Writeln('Day chua duoc sap xep.'); Writeln('Sap xep lai theo thu tu tang dan:'); For k:=1 to n-1 do For i:=1 to n do if a[k]<a[i] then begin m:=a[i];a[i]:=a[k];a[k]:=m; end; For i:=1 to n do Write(a[i]:0:2,' '); end; end; Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 10: Nhp vo mt dy cc s nguyn bt k, in ra mn hnh cc s khc nhau trong dy s . uses crt; var a:array [1..1000] of longint; i,k,m,n:longint; Begin clrscr; Repeat Write('Ban hay nhap so phan tu cua day:');Readln(n); if n<=0 then Write('Ban phai nhap so>0.'); Until n>0; For i:=1 to n do begin Write('Ban hay nhap so thu ',i,':');Readln(a[i]); end; Writeln('Cac so khac nhau trong day la:'); For i:=1 to n do begin m:=0; For k:=1 to i-1 do if a[i]=a[k] then begin m:=1;break;end; if m=0 then Write(a[i],' '); end; Readln; End. Bi 11.Vit chng trnh nhp vo mt ma trn vung k hng, k ct. Sau sp xp li sao cho phn t c tr tuyt i ln nht trong mi hng s nm trn ng cho chnh. uses crt; var a:array [1..100,1..100] of integer; i,k,m,n:longint; Begin Repeat Write('Ban hay nhap so k(hang,cot:');Readln(n); if n<=0 then Write('Ban phai nhap so>0.'); Until n>0; For k:=1 to n do For i:=1 to n do Begin Write(nhap a[',i,',',k,']:'); Readln(a[i,k]); end; For k:=1 to n do begin m:=1; For i:=2 to n do if abs(a[m,k])<abs(a[i,k]) then m:=i; i:=a[m,k];a[m,k]:=a[k,k];a[k,k]:=i; end; clrscr; For k:=1 to n do For i:=1 to n do begin if i=k then Textcolor(14) else Textcolor(7); Gotoxy(i*4,k);Write(a[i,k]); end; Readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 12. Vit chng trnh nhp vo mt dy n s nguyn v in ra mn hnh cc thng tin sau (Nu khng c s no tho mn th a ra thng bo khng c): - S hng m ln nht ca dy v ch s ca n; - S hng dng nh nht ca dy v ch s ca n; - S lng s hng dng lin tip nhiu nht; - S lng s hng m lin tip c tng ln nht; - S lng s hng lin tip an du nhiu nht. uses crt; Var a:array [1..1000] of longint; kq:array [1..5] of integer; i,k,n,d1,d2,d3:integer; Begin clrscr; Repeat Write('Ban hay nhap so phan tu cua day:');Readln(n); if n<=0 then Writeln('Ban phai nhap so lon hon 0.'); Until n>0; For i:=1 to n do begin Write('Ban hay nhap so thu ',i,':');Readln(a[i]); if ((a[i]>a[kq[1]]) or (kq[1]=0)) and (a[i]<0) then kq[1]:=i; if ((a[i]<a[kq[2]]) or (kq[2]=0)) and (a[i]>0) then kq[2]:=i; if (a[i]>0) and (a[i-1]>0) and (i>1) then begin if d1=0 then d1:=2 else d1:=d1+1; end else begin if kq[3]<d1 then kq[3]:=d1;d1:=0; end; if (a[i]<0) and (a[i-1]<0) and (i>1) then begin if d2=0 then d2:=2 else d2:=d2+1;end else begin if kq[4]<d2 then kq[4]:=d2;d2:=0;end; if (a[i]*a[i-1]<0) and (i>1) then begin if d3=0 then d3:=2 else d3:=d3+1;end else begin if kq[5]<d3 then kq[5]:=d3; kq[5]:=d3;d3:=0; end; end; if kq[3]<d1 then kq[3]:=d1; if kq[4]<d2 then kq[4]:=d2; if kq[5]<d3 then kq[5]:=d3; if kq[1]<>0 then Writeln('So hang am lon nhat la so thu ',kq[1],':',a[kq[1]],'.') else Writeln('Khong co so am nao trong day.'); if kq[2]<>0 then Writeln('So hang duong nho nhat la so thu ',kq[2],':',a[kq[2]],'.') else Writeln('Khong co so duong nao trong day.'); if kq[3]<>0 then Writeln('So luong cac so duong lien tiep lon nhat la:',kq[3],'.') else Writeln('Khong co cac so duong nao lien tiep trong day.'); if kq[4]<>0 then Writeln('So luong cac so am lien tiep lon nhat la:',kq[4],'.') else Writeln('Khong co cac so am nao lien tiep trong day.'); if kq[5]<>0 then Writeln('So luong cac so dan dau lien tiep lon nhat la:',kq[5],'.') else Writeln('Khong co cac so dan dau nhau nao lien tiep trong day.'); Readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 13.in cc s t 1 n nxn theo chiu kim ng h vo mng hai chiu. In mng kt qu ra mn hnh theo dng n dng v n ct. uses crt; var a:array [1..100,1..100] of integer; i,k,m,n,c1,c2,c3,c4:integer; Begin clrscr; Repeat Write('Ban hay nhap so n:');Readln(n); if n<=0 then Writeln('Ban phai nhap so lon hon 0.'); Until n>0; clrscr; m:=0; c1:=1;c2:=1;c3:=n;c4:=n; Repeat For i:=c1 to c3 do begin m:=m+1; a[i,c2]:=m; Gotoxy(i*3,c2);Write(a[i,c2]); end; c2:=c2+1; For i:=c2 to c4 do begin m:=m+1; a[c3,i]:=m; Gotoxy(c3*3,i);Write(a[c3,i]); end; c3:=c3-1; For i:=c3 downto c1 do begin m:=m+1; a[i,c4]:=m; Gotoxy(i*3,c4);Write(a[i,c4]); end; c4:=c4-1; For i:=c4 downto c2 do begin m:=m+1; a[c1,i]:=m; Gotoxy(c1*3,i);Write(a[c1,i]); end; c1:=c1+1; Until m>=n*n; Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 14.Lp trnh a ra mn hnh bng cu chng c dng: 1 2 3 ... 9 2 18 . . 9 18 ... 81 bng hai cch. uses crt; type m = array [1..20,1..20] of integer; var a,b:m; h,c:integer; procedure in1(var b:m;u:integer;v:integer); var i,j:integer; tg:integer; begin for j:=1 to v do b[1,j]:=j; for i:=1 to u do b[i,1]:=i; for i:=2 to u do for j:=2 to v do begin tg:=i*b[1,j]; b[i,j]:=tg; end; end; procedure in2(var b:m;u:integer;v:integer); var i,j:integer; begin for j:=1 to v do b[1,j]:=j; for i:=1 to u do b[i,1]:=i; for j:=2 to v do for i:=2 to u do b[i,j]:=b[i-1,j]+j; end; procedure hienthi(var b:m;u:integer;v:integer); var i,j:integer; begin for i:=1 to u do begin for j:=1 to v do writeln; end; end; Begin clrscr; h:=9; c:=9; writeln(' IN BANG CUU CHUONG'); in1(a,h,c); writeln('Cach 1:'); hienthi(a,h,c); writeln; writeln('Cach 2:'); in2(a,h,c); hienthi(a,h,c); writeln; write('An Phim Bat ky de THOAT!...'); repeat until keypressed; End. Su tm v bin son: Nguyn Minh c

write(b[i,j]:5)

Bi tp Pascal
Bi 15: Nhp vo hai s t nhin n v m. Hy in ra chu k ca phn s n/m V d: 1/7 c chu k l (142857). Cn cc phn s hu hn th chu k bng 0. uses crt; var a:array [1..1000,1..2] of longint; i,k,m,n,t,p:longint; ck:string; Function ucln(m,n:longint):longint; begin While m<>n do begin if m<n then n:=n-m; if m>n then m:=m-n; end; ucln:=m; end; Procedure tinh(m,n:longint); begin While n>m do n:=n-m; k:=ucln(m,n);n:=n div k;m:=m div k; i:=0;t:=0; n:=n*10; Repeat i:=i+1; a[i,1]:=n div m; a[i,2]:=n; if n mod m=0 then t:=2; n:=(n mod m)*10; For k:=1 to i-1 do if (a[k,1]=a[i,1]) and (a[k,2]=a[i,2]) then begin p:=k;t:=1;Break; end; Until (t<>0) or (i>1000); if t=1 then For k:=t to i-1 do ck:=ck+chr(a[k,1]+48) else ck:='0'; end; Begin clrscr; Repeat Write('Ban hay nhap so tu nhien n:');Readln(n); Write('Ban hay nhap so tu nhien m:');Readln(m); if n*m<0 then Writeln('Ban phai nhap 2 so tu nhien.'); if m=0 then Writeln('m phai khac 0.'); Until (n*m>=0) and (m<>0); if n mod m=0 then ck:='0' else tinh(m,n); Writeln(n,'/',m,' co chu ky = ',ck); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 16: Cho s t nhin n v dy cc s thc a 1 , a2 , .....an, trong hy xc nh s lng cc phn t k nhau m: a. C hai s u dng. b. C hai s u cng du ng thi s ng trc c gi tr tuyt i ln hn s ng sau. c. C hai s tri du nhau. uses crt; var a:array [1..1000] of longint; kq:array [1..3] of integer; i,n:integer; Begin clrscr; Repeat Write('Ban hay nhap so phan tu cua day:'); Readln(n); if n<=0 then Writeln('Ban phai nhap so lon hon 0.'); Until n>0; For i:=1 to n do begin Write('Ban hay nhap so thu ',i,':');Readln(a[i]); if i>1 then begin if (a[i]>0) and (a[i-1]>0) then kq[1]:=kq[1]+1; if (a[i]*a[i-1]>=0) and (abs(a[i-1])>abs(a[i])) then kq[2]:=kq[2]+1; if a[i]*a[i-1]<0 then kq[3]:=kq[3]+1; end; end; Writeln('Co ',kq[1],' cap phan tu ke nhau ma ca hai so deu duong.'); Writeln('Co ',kq[2],' cap phan tu ke nhau ma ca hai so cung dau va so dung truoc co gia tri tuyet doi lon hon so dung sau.'); Writeln('Co ',kq[3],' cap phan tu ke nhau ma ca hai so trai dau nhau.'); Readln; End. Bi 17:Tam gic Pascal Hy in ra mn hnh tam gic Pascal c n dng v tnh xem hng th i c bao nhiu s j (vi n, i, j nhp t bn phm). uses crt; var a:array [1..100,1..100] of longint; i,j,k,m,n,p:longint; c:char; Procedure nhap(w:string;var a:longint); Var k:integer; s:string; begin Repeat Write(w);Readln(s); Val(s,a,k); Until k=0; end; Begin Repeat clrscr; Repeat Su tm v bin son: Nguyn Minh c

Bi tp Pascal
k:=0; nhap('Ban hay nhap so n:',n); if n<=0 then k:=1; if n>80 then begin Write('Ban co chac chan muon nhap so n lon nay khong?(c/k)'); Repeat c:=Readkey; Until Upcase(c) in ['C','K']; if Upcase(c)='K' then k:=1; Writeln; end; Until k=0; clrscr; Writeln('n=',n); For i:=1 to n do a[1,i]:=1; Gotoxy(40,2);Write('1'); For k:=2 to n do For i:=1 to k do begin if i>1 then a[i,k]:=a[i-1,k-1]+a[i,k-1]; Gotoxy(37-k*6 div 2+i*6,k+1);Write(a[i,k]); end; Writeln; if i>14 then begin Textcolor(4); Writeln('Ban nhap so n hoi lon so voi be rong man hinh cho phep.'); Textcolor(7); end else Writeln; Repeat Repeat nhap('Ban hay nhap so i(hang i):',i); if (i>n) or (i<1) then Writeln('So i phai nam trong khoang tu 1->n(0<i<',n+1,')'); Until i in [1..n]; nhap('Ban hay nhap so j:',j); p:=0; For m:=1 to i do if a[m,i]=j then p:=p+1; if p=0 then Writeln('Hang ',i,' khong co so ',j,' nao.') else Writeln('Hang ',i,' co ',p,' so ',j,'.'); Write('Ban co muon nhap tiep hai so i va j khong?(c/k)'); c:=Readkey; Writeln; Until Upcase(c)='K'; Write('Ban co muon thuc hien lai ca chuong trinh khong?(c/k)'); c:=Readkey; Until Upcase(c)='K'; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 18. Bi ton s nguyn t tng ng Hai s t nhin c gi l nguyn t tng ng nu chng c chung cc c s nguyn t. V d nh cc s 75 v 15 l nguyn t tng ng v cng c cc c nguyn t l 3 v 5. Cho trc hai s t nhin M v N. Hy vit chng trnh kim tra xem cc s ny c l nguyn t tng ng vi nhau khng? uses crt; var a:array [1..100] of integer; i,k,m,n:integer; Begin clrscr; Write('Ban hay nhap so thu nhat:');Readln(m); Write('Ban hay nhap so thu hai:');Readln(n); if m<n then begin k:=m;m:=n;n:=k;end; i:=1;k:=0; Repeat i:=i+1; if (m mod i=0) and (n mod i=0) then begin if k=0 then Writeln('Hai so tren la hai so nguyen to tuong duong voi nhau vi co cac uoc nguyen to:'); k:=1;Write(i,' '); While (m mod i=0) and (n mod i=0) do begin m:=m div i;n:=n div i; end; end; Until i>=n; if k=0 then Writeln('Hai so tren khong phai la hai so nguyen to tuong duong voi nhau.'); Readln; End. Bi 19. S siu nguyn t S siu nguyn t l s nguyn t m khi b i mt s tu cc ch s bn phi ca n th phn cn li vn to thnh mt s nguyn t. V d: 7333 l s siu nguyn t c 4 ch s v 733; 73; 7 u l cc s nguyn t. Hy lp chng trnh nhp d liu vo l mt s nguyn N ( 0 < N < 10 ) v a ra kt qu l cc s siu nguyn t c N ch s cng s lng ca chng. uses crt; const d:array [1..6] of char=('1','2','3','5','7','9'); var i,k,m,n:integer; s:string; c:char; Function kt(s:string):boolean; var k:integer; a,i:real; b:boolean; begin Val(s,a,k); b:=True; i:=1;

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
While i<=sqrt(a) do begin i:=i+1; if a/i=round(a/i) then begin b:=False; Break; end; end; kt:=b; end; Procedure tim(i:integer); var k:integer; begin For k:=1 to 6 do if (i=1) or ((i>1) and (k<>2) and kt(copy(s,1,i-1)+d[k])) then begin s[i]:=d[k]; if i=n then begin Writeln(s); m:=m+1; end else tim(i+1); end; end; Begin clrscr; Write('Ban hay nhap so n:');Readln(n); s:=''; For i:=1 to n do s:=s+'0'; tim(1); Writeln('Co ',m,' so.'); Readln; End. Bi 20. Tm im yn nga Cho bng s A kch thc m x n. Phn t Aij (nm hng i, ct j ) c gi l phn t yn nga nu n l phn t nh nht trong hng i ng thi l phn t ln nht trong ct j ( hoc l phn t ln nht trong hng i ng thi l phn t nh nht trong ct j ).V d trong 2 bng s sau: Bng 1: 15 3 9 55 4 6 76 1 2 15 55 9 3 4 1 7 6 2 Th phn t A2 2 = 4 l phn t yn nga. Hy lp chng trnh nhp t bn phm mt bng s kch thc m x n v in ra cc phn t yn nga ( nu c ). Bng 2:

uses crt; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
var i,k,m,n,s:integer; a:array [1..100,1..100] of integer; h:array [1..100,1..2] of integer; c:array [1..100,1..2] of integer; kq:array [1..2,1..100] of integer; Procedure tim; Var i,k,z,p:integer; begin For i:=1 to n do begin h[i,1]:=1;h[i,2]:=1; For k:=2 to m do begin if a[k,i]<a[h[i,1],i] then h[i,1]:=k; if a[k,i]>a[h[i,2],i] then h[i,2]:=k; end; end; For i:=1 to m do begin c[i,1]:=1;c[i,2]:=1; For k:=2 to n do begin if a[i,k]<a[i,c[i,1]] then c[i,1]:=k; if a[i,k]>a[i,c[i,2]] then c[i,2]:=k; end; end; end; Procedure tinh; begin For i:=1 to n do begin if c[h[i,1],2]=i then begin s:=s+1; kq[s,1]:=h[i,1]; kq[s,2]:=i; end; if c[h[i,2],1]=i then begin s:=s+1; kq[s,1]:=h[i,2]; kq[s,2]:=i; end; end; end; Begin clrscr; Write('Ban hay nhap so hang:');Readln(n); Write('Ban hay nhap so cot:');Readln(m); For k:=1 to n do For i:=1 to m do begin Write('Ban hay nhap phan tu A[',i,',',k,']:');Readln(a[i,k]); end; clrscr; For k:=1 to n do For i:=1 to m do begin Gotoxy(i*4,k);Write(a[i,k]); end; tim; tinh;Writeln; For i:=1 to s do Writeln('Phan tu A[',kq[i,1],',',kq[i,2],']=',a[kq[i,1],kq[i,2]],' la phan tu yen ngua.'); Readln; End. Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 21:Cho mt dy s bt k. Hy kim tra xem dy c sp xp hay cha? Nu sp xp ri th: - Tr li dy c sp xp theo chiu tng hay gim? - Chn mt phn t vo dy sp xp sao cho th t sp xp khng thay i ( phi chn trc tip, khng c sp xp li ). Nu dy cha sp xp, hy sp xp chng theo chiu tng dn. uses crt; var a:array [1..1000] of integer; i,j,k,m,n,ch,p:integer; c:char; Procedure nhap; begin Write('Ban hay nhap so phan tu:');Readln(n); k:=0; ch:=0; For i:=1 to n do begin Write('Nhap so thu ',i,':');Readln(a[i]); if (i>1) and (k=0) then begin if a[i]>a[i-1] then begin if ch=0 then ch:=1; if ch=2 then k:=1; end; if a[i]<a[i-1] then begin if ch=0 then ch:=2; if ch=1 then k:=1; end; end; end; if k=0 then begin Case ch of 0,1:Writeln('Day duoc sap xep theo thu tu tang dan.'); 2:Writeln('Day duoc sap xep theo thu tu giam dan.'); end; end else begin ch:=1; For i:=1 to n-1 do For k:=i+1 to n do if a[k]<a[i] then begin m:=a[i];a[i]:=a[k];a[k]:=m; end; Writeln('Sap xep lai theo chieu tang dan:'); For i:=1 to n do Write(a[i],' '); Writeln; end; end; Procedure chen; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
begin Repeat Write('Ban hay nhap phan tu muon chen:');Readln(m); n:=n+1; k:=0; For i:=1 to n do if ((ch in [0,1]) and (a[i]>m)) or ((ch=2) and (a[i]<m)) then begin k:=i;Break; end; if k=0 then a[n]:=m else begin For j:=n downto k+1 do a[j]:=a[j-1]; a[k]:=m; end; For i:=1 to n do Write(a[i],' '); Writeln; Write('Ban co muon chen tiep khong?(c/k)'); c:=readkey;Writeln(c); Until Upcase(c)='K'; end; Begin clrscr; nhap; chen; End. Bi 22: Tm cc s hng Max ca cc ng cho thuc tam gic bn tri di ca ma trn An x n . {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R+,S+,T-,V+,X+} {$M 16384,0,655360} uses crt; type matran=array[1..50,1..50] of integer; var A:matran; n,i:integer; procedure nhapmatran(var A:matran;n,m:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to m do begin write('A[',i,',',j,']='); readln(A[i,j]); end; end; procedure xuatmatran(var A:matran;n,m:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to m do write(A[i,j]:4); writeln; end; end;

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
function timmax(i,j:integer):integer; var max:integer; begin max:=A[i,j]; while i<=n do begin inc(i);inc(j); if A[i,j]>max then max:=A[i,j]; end; timmax:=max; end; Begin clrscr; write('Nhap so hang hay cot cua ma tran:'); readln(n); nhapmatran(A,n,n); clrscr; xuatmatran(A,n,n); write('Cac max tren cac duong cheo can tim: '); for i:=1 to n do write(' ',timmax(i,1)); readln; End. Bi 23:Cho ma trn nguyn An x n v 2 s a, b. Hy xy dng ma trn mi cp An trn bng cch loi b dng a v ct b ( khng dng ma trn trung gian ) {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R+,S+,T-,V+,X+} {$M 16384,0,655360} uses crt; type matran=array[1..100,1..100] of integer; var A:matran; n,m,x,y:integer; t,k,i,j:integer; procedure nhapmatran(var A:matran;n,m:integer); var i,j:integer; begin for i:=1 to n do for j:=1 to m do begin write('A[',i,',',j,']='); readln(A[i,j]); end; end; procedure xuatmatran(var A:matran;n,m:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to m do write(A[i,j]:4); writeln; end; end; begin clrscr; write('Nhap vao so n=');readln(n); nhapmatran(A,n,n);clrscr;xuatmatran(A,n,n); write('Nhap hang can xoa: ');readln(x); write(' Nhap cot can xoa: ');readln(y); t:=1; k:=1; for i:=1 to n do Su tm v bin son: Nguyn Minh c

1 x

n1

t ma trn

Bi tp Pascal
begin for j:=1 to n do if (i<>x) and (j<>y) then begin A[t,k]:=A[i,j];inc(k); end; if i<>x then inc(t); if (k>n-1) and (i<n) then k:=1; end; xuatmatran(A,n-1,n-1); readln; End. Bi 24:Cho dy s nguyn a1 , a2 ,.....an. Hy tm di on di nht cc phn t lin tip ca dy trn sao cho ai = ai + 1 . {$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R+,S+,T-,V+,X+,Y+} {$M 16384,0,655360} Program bai2; uses crt; type mang=array[1..100] of integer; var A:mang; n,i,j,d,s:integer; procedure nhapmang; var i:integer; begin for i:=1 to n do begin write('A[',i,']='); readln(A[i]); end; end; procedure xuatmang; var i:integer; begin for i:=1 to n do write(' ',A[i]); writeln; end; begin clrscr; write('Nhap n=');readln(n); nhapmang;clrscr;xuatmang; write('Do dai doan dai nhat cac phan tu lien tiep bang nhau la: '); s:=0; for i:=n downto 2 do begin j:=1; repeat d:=1; while (A[j]=A[j+1]) and (j<=i) do begin inc(j);inc(d); end; if d>s then s:=d; inc(j); until j>=i; end; writeln(s); readln; end.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 25 Program baitap; Uses crt; Var i,j,us: Integer; a:array[1..10] of integer; Begin Randomize; For i:= 1 to 10 do a[i]:=random(99)+1; For i:= 1 to 10 do Write('Phan tu thu ',i,' =',a[i]; For i:= 1 to 10 do Begin Us:=0; For j:=2 to (i-1) do If (a[i] mod j)<>0 then us:=us+1; If Us<0> then write('Phan tu thu ',i,'=',a[i],' la so nguyen to'); end; Readln; End. Bi 27: var so_luong, vt_min, vt_max, i: integer; a: array[1..1000] of integer; BEGIN write('Nhap so luong phan tu: '); readln(so_luong); { nhap tung phan tu cua mang } for i:=1 to so_luong do begin write('a[', i, '] = '); readln(a[i]); end; { tim vi tri cua cac phan tu max, min } { gia su phan tu nho nhat va lon nhat deu nam o vi tri 1 } vt_min:=1; vt_max:=1; { so sanh voi cac phan tu con lai trong mang } for i:=2 to so_luong do begin if (a[i]>a[vt_max]) then vt_max:=i; if (a[i]<a[vt_min]) then vt_min:=i; end; { dua ket qua ra man hinh } writeln('Phan tu nho nhat: ', a[vt_min], ' nam o vi tri: ', vt_min); writeln('Phan tu lon nhat: ', a[vt_max], ' nam o vi tri: ', vt_max); readln; END.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
C. BI TP V XU Bi 1. m s k t trong chui. Var a: array['A'..'Z'] of Integer; s: String; i: Integer; c: Char; Begin For c:= 'A' to 'Z' do a[c]:= 0; Write('Nhap chuoi S: '); Readln(s); For i:=1 to Length(s) do Begin c:= Upcase(s[i]); if ('A' <= c) and (c <= 'Z') then Inc(a[c]); End; For c:='A' to 'Z' do If a[c] > 0 then Writeln('Ky tu ',c,' xuat hien ',a[c],' lan.'); End. Bi 2. Xo k t trng trong xu. Program ChuoiChuan; Var s, p : String; { Chui gc v kt qu } i, l, r : Byte; Begin Write('Nhap s:'); Readln(s); p := ''; { Chui kt qu l rng } l := 1; { Chn tri } r := Length(s); { Chn phi } { Loi b nhng khong trng u } While (l <= r) and (s[l] = ' ') do Inc(l); { Loi b nhng khong trng cui } While (r > l) and (s[r] = ' ') do Dec(r); For i := l to r do If (s[i] <> ' ') or (p[Length(p)] <> ' ') then p := p + s[i]; Writeln('Chuoi da chuan hoa:', p); Readln; End. Program ChuoiChuan; Var s : String; i : Byte; Begin Writeln('Nhap s: '); Readln(s); { Thm khong trng cm canh u v cui } s := ' ' + s + ' '; i := Pos(' ', s); While (i > 0) do Begin Delete(s, i, 1); i := Pos(' ', s); End; Delete(s, 1, 1); { Xa cm canh u } Delete(s, Length(s), 1); {Xa cm canh cui } Writeln('Chuoi da chuan hoa: ', s); End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 3. Kim tra xu c i xng ko? Var s : String; i, j : Integer; BEGIN { Gi s nhp chui s } i := 1; j := Length(s); While (i < j) and (s[i] = s[j]) do Begin Inc(i); Dec(j); End; If (i < j) then Writeln('Chuoi khong doi xung') Else Writeln('Chuoi doi xung'); END. Vit bng quy Var OK: boolean; St: string; Procedure Doixung (Low, upp: byte; var OK: booolean); Begin If (st[upp] <> st[upp] then Begin Ok:= false; Exit; End Eslse If st[upp] > st[upp] then Begin Ok:= true; Exit; Else Doixung(st,low +1, upp 1,ok); End; BEGIN Write (nhap xau:); readln(st); Doixung(st,length(st),ok); Readln; END. Bi 4. Nhp vo mt xu k t. Hy chun ho xu bng cch ch gi li mt du cch gia cc t. uses crt; var i,k,m,n:integer; s:string; Begin clrscr; Write('Ban hay nhap mot xau ki tu:');Readln(s); While Pos(' ',s)<>0 do Delete(s,Pos(' ',s),1); Writeln('Xau da chuan hoa:',s); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 5:Nhp vo mt xu k t bt k. Hy chun ho xu bng cch ch gi li mt du trng (du cch) gia cc t (t c hiu l mt dy cc k t lin tip khng cha du cch). uses crt; var i,k,m,n:integer; s:string; Begin clrscr; Write('Ban hay nhap mot xau ki tu:');Readln(s); While Pos(' ',s)<>0 do Delete(s,Pos(' ',s),1); Writeln('Xau da chuan hoa:',s); Readln; End. Bi 6 program tim_kiem; uses crt; Var s1,s2:string; k,i,j:integer; Begin write('nhap s1:'); read(s1); write(nhap s2:'); read(s2) for i:=1 to length(s1) do i:=i+1; begin for j:=1 to length(s2) do j:=j+1; if k:=i:=j do write('so lan xuat hien s1 trong s2 la:',k); end; readln; End. Bi 7 : Chy xu trn mn hnh Uses CRT; Var a : string; BEGIN Write('Nhp xu : '); Readln(a); Repeat write(a); delay(500); a:= ' ' + a; clrscr; Until keypressed; Readln END.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 8 : uses crt; const m=...; {tuy loai man hinh ma cho do dai vao} var s,s1:string; i,d,dem,l:integer; BEGIN clrscr; write('Nhap xau: '); readln(s); clrscr; l:=length(s); for i:=1 to m-l do s:=s+' '; dem:=0; repeat if dem=0 then d:=1; if dem=m-l then d:=-1; write(s); delay(200); clrscr; if d=1 then s1:=s[m]+copy(s,1,m-1) else s1:=copy(s,2,m-1)+s[1]; s:=s1; dem:=dem+d; until keypressed; readln; END. Bi 9 : uses crt; var s:string; i,k,max,a,h:integer; begin clrscr; write('Nhap xau s: ');readln(s); while s[1]=#32 do delete(S,1,1); while s[length(S)]=#32 do delete(s,length(s),1); while pos(#32#32,s)>0 do delete(s,pos(#32#32,s),1); s:=s+#32; a:=1; max:=1; for i:=1 to length(S) do begin if s[i]=#32 then begin if i-a>max then begin max:=i-a; h:=a; k:=i-1; end; a:=i+1; end; end; for i:=h to k do write(s[i]);

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
readln; End. Bi 10 : Cho 1 biu thc ngoc cha hon chnh. Hy thc hin cc bc thm cc du ngoc "(" hoc ")" c 1 biu thc ngoc ng sao cho s bc l t nht. program ngoac; Var s,p : string; i : byte; sm : byte; Begin write('Input string: '); readln(s); p:=''; sm:=0; for i:= 1 to length(s) do if s[i]='(' then begin inc(sm); p:=p+s[i]; end else if s[i]=')' then if sm = 0 then p:=p+'()' else begin dec(sm); p:=p+s[i]; end else p:=p+s[i]; for i:= 1 to sm do p:=p+')'; writeln('Result: ',p); readln; End. Bi 11. Xu nghch o Hy s dng k thut quy trong lp trnh tm xu nghch o ca mt xu nh phn cho trc (xu nh phn l xu ch gm hai k t 0 v 1). var i,k:integer; s:string; Procedure dao(i:integer); begin if i<=length(s) then begin if s[i]='0' then s[i]:='1' else s[i]:='0'; dao(i+1); end; end; Begin clrscr; Repeat Write('Ban hay nhap 1 xau nhi phan:');Readln(s); k:=0; For i:=1 to length(s) do if not (s[i] in ['0','1']) then begin k:=1;Break; end; Until k=0; dao(1); Writeln('Xau nghich dao:',s); Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Readln; End. D. BI TP V BN GHI Bi 1: Sp xp Program Xep_loai; uses crt; const max=60; Type hocsinh record hoten:string[20]; ngaysinh:string[10]; diachi:string[50]; toan,van:real; xeploai:char; end; Var lop:array[1..Max] of hocsinh; N.i:byte; Begin clrscr; write('so luong hoc sinh trong lop n=');readln(N); for i:=1 to N do begin writeln('nhap so lieu ve hoc sinh thu',i,':'); write('ho va ten:');readln(lop[i].hoten); write('ngay sinh:');readln(lop[i].ngaysinh); write('dia chi:');readln(lop[i].diachi); write('diem toan:');readln(lop[i].toan); write('diem van:');readln(lop[i].van); if lop[i].toan + lop[i].van >=18 then lop[i].xeploai:='A'; if (lop[i].toan + lop[i].van >=14) and (lop[i].toan + lop[i].van <18) then lop[i].xeploai:='B'; if (lop[i].toan + lop[i].van >=10) and (lop[i].toan + lop[i].van <14) then lop[i].xeploai:='C'; if (lop[i].toan + lop[i].van <10) then lop[i].xeploai:='D'; end; clrscr; writeln('danh sach xep loai hoc sinh trong lop:'); for i:=1 to N do writeln(lop[i].hoten:30,'-Xep loai:',lop[i].xeploai; readln End. Bi 2: uses crt; const max=200; type hocsinh=record diemtb,toan,hoa,sinh,ly,van,su,dia,tin,av,cn,gdcd, quocphong,theduc:longint; sbd,ten,xl:string; end; var lop: array [1..max] of hocsinh min:longint; n,i:byte; begin write('Nhap so hoc sinh:');readln(n); for i:=1 to n do begin write('nhap sbd h/s thu ',i,' :');readln(sbd.lop[i]); write('nhap ten h/s thu ',i,' :');readln(ten.lop[i]); write('nhap diem toan:');readln(toan.lop[i]); write('nhap diem hoa:');readln(hoa.lop[i]); Su tm v bin son: Nguyn Minh c

Bi tp Pascal
write('nhap diem sinh:');readln(sinh.lop[i]); write('nhap diem ly:');readln(ly.lop[i]); write('nhap diem van:');readln(van.lop[i]); write('nhap diem su:');readln(su.lop[i]); write('nhap diem dia:');readln(dia.lop[i]); write('nhap diem tin:');readln(tin.lop[i]); write('nhap diem av:');readln(av.lop[i]); write('nhap diem cn:');readln(cn.lop[i]); write('nhap diem gdcd:');readln(gdcd.lop[i]); write('nhap diem quoc phong:');readln(quocphong.lop[i]); write('nhap diem the duc:');readln(theduc.lop[i]); clrscr; diemtb.lop[i]:=(toan.lop[i]*2+hoa.lop[i]*2+sinh.lop[i]*2+ly.lop[i]*2+van.lop[i]+su.lop[i]+dia.lop[i] +tin.lop[i]+av.lop[i]+cn.lop[i]+gdcd.lop[i]+quocphong.lop[i]+theduc.lop[i])/17; min:=toan.lop[i]; if min>hoa.lop[i] then min:=hoa.lop[i]; if min>sinh.lop[i] then min:=sinh.lop[i]; if min>ly.lop[i] then min:=ly.lop[i]; if min>van.lop[i] then min:=van.lop[i]; if min>su.lop[i] then min:=su.lop[i]; if min>dia.lop[i] then min:=dia.lop[i]; if min>tin.lop[i] then min:=tin.lop[i]; if min>av.lop[i] then min:=av.lop[i]; if min>cn.lop[i] then min:=cn.lop[i]; if min>gdcd.lop[i] then min:=gdcd.lop[i]; if min>quocphong.lop[i] then min:=quocphong.lop[i]; if min>theduc.lop[i] then min:=theduc.lop[i]; if (diemtb.lop[i]>=8) and (min>=6.5) then xl.lop[i]:='Gioi' else if (diemtb.lop[i]>6.5) and (min>=5) then xl.lop[i]:='Kha' else if (diemtb.lop[i]>=5) and (min>=3.5) then xl.lop[i]:='TB' else if (diemtb.lop[i]>=3.5) and (min>=2) then xl.lop[i]:='Yeu' else then xl.lop[i]:='Kem'; end; {tu viet thu tuc xuat nha !!!} readln End. Bi 4 Program Bangi; uses crt; const Max=50; Type Hocsinh = record Hoten: string[30]; Ngaysinh:string[10]; Diachi:string[50]; Dvan,Dtoan,Tong:real; xeploai:char; end; var Lop:array[1..max] of Hocsinh; i,n:integer; Begin clrscr; writeln('Nhap vao danh sach Hoc sinh va diem tuong ung :'); write('Nhap so hoc sinh'); read(n); for i:=1 to n do begin writeln('Hoc sinh ', i); Su tm v bin son: Nguyn Minh c

Bi tp Pascal
write('Ho va ten:'); readln(lop[i].hoten); write('Ngay sinh: '); readln(Lop[i].ngaysinh); write('Dia Chi :'); read(Lop[i].Diachi); write(' Diem Van :'); read(lop[i].Dvan); write('Diem Toan :'); readln(lop[i].Dtoan); end; writeln(' Danh sach hoc sinh vua nhap la: '); for i:=1 to n do begin write(lop[i].Hoten, ' '); write(lop[i].ngaysinh,' '); write(lop[i].Diachi,' '); write(lop[i].Dtoan,' '); write(lop[i].Dvan, ' '); writeln; end; readln; end. Bi 5.Cho mt tp vn bn c tn VANBAN.PAS gm 3 dng cha 3 xu k t S1 , S2 , S3 c di tu . Xu S1 cn bin i nh sau: ln lt xt tng k t ca S1 . Nu k t i ca S1 trng vi k t th j gp u tin tnh t bn tri ca S2 th k t th i ca S1 c thay bng k t th j ca S3 nu c. Trong cc trng hp khc th b qua yu cu bin i S1 . Mi bc, nu c s thay th cn hin th ln mn hnh dng thng bo: (a, i, j, c) ngha l k t th i ca S1 l a c thay bng k t th j ca S3 l c. - Hin th ln mn hnh ln lt S1, S2, S3 ban u v S1 sau khi bin i. uses crt; var i,k:integer; s1,s2,s3:string; f:Text; Begin clrscr; Assign(f,'vanban.pas'); Reset(f); Readln(f,s1); Readln(f,s2); Readln(f,s3); Close(f); Writeln('Ba xau ki tu ban dau:'); Writeln('S1=',s1); Writeln('S2=',s2); Writeln('S3=',s3); For i:=1 to length(s1) do begin k:=Pos(s1[i],s2); if (k>0) and (k<length(s3)) then begin Writeln('(',s1[i],',',i,',',k,',',s3[k],')'); s1[i]:=s3[k]; end; end; Writeln('Xau S1 sau khi bien doi:'); Writeln(s1); Readln; End.

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Bi 6. Tn s xut hin ch ci Cho tp vn bn mang tn VANBAN.PAS. Hy a ra mt tp vn bn mang tn KQVANBAN.PAS cc ch ci khc nhau trong tp trn v s ln xut hin mi ch ci . uses crt; var a:array [1..25] of integer; i:integer; c:char; f:Text; Begin clrscr; Assign(f,'vanban.pas'); Reset(f); While not eof(f) do begin Read(f,c); if Upcase(c) in ['A'..'Z'] then a[ord(Upcase(c))-64]:=a[ord(Upcase(c))-64]+1; end; Close(f); Assign(f,'kqvanban.pas'); Rewrite(f); For i:=1 to 25 do if a[i]>0 then Writeln(f,'Chu cai ',chr(96+i),' xuat hien',a[i],' lan.'); Close(f); End. Bi 7. Bi ton thay th t Hai file DLIEU1.TXT v DLIEU2.TXT c cho nh sau: File DLIEU1.TXT cha mt on vn bn bt k. File DLIEU2.TXT cha khng qu 50 dng. Mi dng gm 2 t: T u l t ch v t sau l t ngun. Hy lp chng trnh tm trong file DLIEU1.TXT tt c cc t l t ch v thay th chng bng cc t ngun tng ng. Kt qu c ghi vo file KETQUA.TXT ( l on vn bn tng t nh trong file DLIEU1.TXT nhng c thay th t ch bi t ngun ).V d: File DLIEU1.TXT cha on vn bn: Nam hoc sap ket thuc roi, ban co zui khong? Chuc cac ban don mot ky nghi he that zui ze va hanh phuc. File DLIEU2.TXT cha cc dng sau: ban em zui vui ze ve File KETQUA s cha on vn bn sau: Nam hoc sap ket thuc roi, ban co vui khong? Chuc cac ban don mot ky nghi he that vui ve va hanh phuc. uses crt; var a:array [1..100] of string; i,k,m,n:integer; s,s1,s2:string; f:text; Procedure sua; begin While s[1]=' ' do Delete(s,1,1); s1:='';While s[1]<>' ' do begin s1:=s1+s[1];Delete(s,1,1);end; While Pos(' ',s)>0 do Delete(s,Pos(' ',s),1);s2:=s; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
For i:=1 to n do begin if Pos(s1,a[i])>0 then begin k:=Pos(s1,a[i]); if (not (a[i,k-1] in and (not (a[i,k+length(s1)] in begin Delete(a[i],k,length(s1)); Insert(s2,a[i],k); end; end; end; end; Begin clrscr; Assign(f,'dlieu1.txt'); Reset(f); While not eof(f) do begin n:=n+1;Readln(f,a[n]); end; Close(f); Assign(f,'dlieu2.txt'); Reset(f); While not eof(f) do begin Readln(f,s);sua; end; Close(f); Assign(f,'ketqua.txt'); Rewrite(f); For i:=1 to n do Writeln(f,a[i]); Close(f); End. Bi 8. Tr chi

['a'..'z','A'..'Z','0'..'9'])) ['a'..'z','A'..'Z','0'..'9'])) then

Tr chi bc ko l tr chi cho 2 i th. Ngi ta xp N ti ko vng quanh mt chic bn trn v nh s lin tip theo chiu kim ng h t 1 n N bt u t mt ti ko bt k. Ti th i c ai ci ko. Hai i th lun phin thc hin nc i, mi nc i phi ly 1 ti ko. i th th nht, l ngi thc hin nc i u tin, c chn v ly 1 trong N ti ko. Tip theo, i th n lt thc hin nc i phi chn ti ko st cnh v tr ti ko m i th thc hin nc i ngay trc va ly. Tr chi kt thc khi trn mt bn khng cn ti ko no c. Yu cu: Cho bit ch s ca ti ko m i th nht ly i trong nc i u tin. Hy tnh tng s ko ln nht m i th th hai c th ly c khi tham gia tr chi ny.D liu vo t file vn bn GAME.INP

- Dng u tin cha s lng ti ko N ( 1 N 1000).


Dng th hai cha s nguyn dng k l ch s ca ti ko m i th th nht chn v ly trong nc i u tin. ( ai 32767 ), i = 1, 2, ... N. Kt qu: Ghi ra file vn bn GAME.OUT tng s ko ln nht tm c.

- Dng th i trong s N dng tip theo cha s nguyn dng ai

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
V d: GAME.INP 5 1 2 2 3 9 5 Program game; Var a:array [1..1000] of integer; i,k,m,n:integer; f:Text; Procedure doc; begin Assign(f,'game.inp'); Reset(f); Readln(f,n); Readln(f,m); For i:=1 to n do Readln(f,a[i]); Close(f); end; Procedure tinh; begin k:=0; if m mod 2=0 then begin For i:=1 to n do if i mod 2=1 then k:=k+a[i]; end else For i:=1 to n do if i mod 2=0 then k:=k+a[i]; end; Procedure ghi; begin Assign(f,'game.out'); Rewrite(f); Writeln(f,k); Close(f); end; Begin doc; tinh; ghi; End. 11 GAME.OUT

Su tm v bin son: Nguyn Minh c

Bi tp Pascal

Bi 9. Xp khch Mt khch dn c N phng i ( phng cho 2 ngi ) c nh s t 1 n N. Khi c mt on khch n thu phng, tip tn ca khch sn s xp khch vo phng theo quy tc sau: Mi cp khch s c xp vo phng c ch s nh nht trong s cc phng trng. Nu s lng khch ca on l s l th ngi cui cng ca on khch s c xp vo phng c ch s nh nht trong s cc phng trng. Nu khng cn phng trng, th s khch cha c phng s c xp tun t tng ngi mt vo phng c ch s nh nht trong s cc phng mi c mt khch ( ca on khch n trc ). u tin tt c cc phng ca khch sn l trng. Yu cu: Cho trc trnh t n ca cc on khch v s lng khch ca mi on. Hy xc nh s lng khch trong mi phng ca khch sn. D liu: Vo t file vn bn ROOM.INP: Dng u tin cha 2 s nguyn dng N ( 1 N 100) v G c ghi cch nhau bi du cch. N l s phng ca khch sn, G l s lng on khch. - Dng th i trong s G dng tip theo cha s lng khch ca on khch th i ( cc on khch c nh s theo th t n khch sn bt u t 1 ). Gi thit rng khng c 2 on khch no n khch sn vo cng mt thi im v tng s khch ca tt c cc on khng vt qu sc cha ca khch sn ( 2N ).

Kt qu: Ghi ra file vn bn ROOMS.OUT N dng: Dng th i cha s lng khch ca phng i ( 1 i N ).V d: ROOMS.INP 7 3 3 1 4 ROOMS.OUT 2 1 1 2 2 0 0

Program room; var a,b:array [1..1000] of integer; i,k,m,n,p,q:integer; f:Text; Procedure doc; begin Assign(f,'room.inp'); Reset(f); Readln(f,n,m); For i:=1 to m do Readln(f,a[i]); Close(f); end; Procedure tinh; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
begin For i:=1 to m do begin p:=a[i];k:=0; Repeat k:=k+1; if b[k]=0 then if p>1 then begin b[k]:=2;p:=p-2;end else begin b[k]:=1;p:=0;end; Until (k>=n) or (p=0); if p>0 then begin k:=0; Repeat k:=k+1; if b[k]=1 then begin b[k]:=2;p:=p-1;end; Until (k>=n) or (p=0); end; end; end; Procedure ghi; begin Assign(f,'room.out'); Rewrite(f); For i:=1 to n do Writeln(f,b[i]); Close(f); end; Begin doc; tinh; ghi; End. Bi 10. Bi ton thay th t Hai file DLIEU1.TXT v DLIEU2.TXT c cho nh sau: File DLIEU1.TXT cha mt on vn bn bt k. File DLIEU2.TXT cha khng qu 50 dng. Mi dng gm 2 t: T u l t ch v t sau l t ngun. Hy lp chng trnh tm trong file DLIEU1.TXT tt c cc t l t ch v thay th chng bng cc t ngun tng ng. Kt qu c ghi vo file KETQUA.TXT ( l on vn bn tng t nh trong file DLIEU1.TXT nhng c thay th t ch bi t ngun ).V d: File DLIEU1.TXT cha on vn bn: Nam hoc sap ket thuc roi, ban co zui khong? Chuc cac ban don mot ky nghi he that zui ze va hanh phuc. File DLIEU2.TXT cha cc dng sau: ban em zui vui ze ve File KETQUA s cha on vn bn sau: Nam hoc sap ket thuc roi, ban co vui khong? Chuc cac ban don mot ky nghi he that vui ve va hanh phuc. uses crt; var a:array [1..100] of string; i,k,m,n:integer; s,s1,s2:string; f:text; Procedure sua; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
begin While s[1]=' ' do Delete(s,1,1); s1:='';While s[1]<>' ' do begin s1:=s1+s[1];Delete(s,1,1);end; While Pos(' ',s)>0 do Delete(s,Pos(' ',s),1);s2:=s; For i:=1 to n do begin if Pos(s1,a[i])>0 then begin k:=Pos(s1,a[i]); if (not (a[i,k-1] in ['a'..'z','A'..'Z','0'..'9'])) and (not (a[i,k+length(s1)] in ['a'..'z','A'..'Z','0'..'9'])) then begin Delete(a[i],k,length(s1)); Insert(s2,a[i],k); end; end; end; end; Begin clrscr; Assign(f,'dlieu1.txt'); Reset(f); While not eof(f) do begin n:=n+1;Readln(f,a[n]); end; Close(f); Assign(f,'dlieu2.txt'); Reset(f); While not eof(f) do begin Readln(f,s);sua; end; Close(f); Assign(f,'ketqua.txt'); Rewrite(f); For i:=1 to n do Writeln(f,a[i]); Close(f); End. Bi 11. Hnh vung Cho mt li K x N im gm K dng v N ct ( 2 K, N 9 ) l cc im nt ca mt li vung ( cc dng c nh s t trn xung di, cc ct c nh s t tri qua phi bt u t 1 ). Trn li im cho mt s on thng, mi on ni mt cp im cnh nhau trn cng mt dng ( on ngang ) hoc trn cng mt ct ( on dc ). Cn phi m s cc hnh vung vi kch thc nht nh c to thnh bi cc on thng cho ca li nu trn. Chng hn hnh 1 di y c 3 hnh vung; 2 hnh kch thc 1 v 1 hnh kch thc 2 ( kch thc ca hnh vung l s cc on thng to thnh 1 cnh ca hnh vung ).

Su tm v bin son: Nguyn Minh c

Bi tp Pascal

Hnh 1 Yu cu: Hy xc nh s lng cc loi hnh vung v s hnh vung mi loi trong li im cho ( hnh vung c cng kch thc c xp vo cng mt loi ). D liu: Vo t file vn bn SQUARE.INP c khun dng nh sau: Dng 1 cha s nguyn N l s ct ca li. Dng 2 cha s nguyn M l s cc on thng c cho trn li. Mi dng trong M dng tip theo c 1 trong 2 dng sau: H i j ch mt on ngang trn dng th i ni hai im ct j v ct j+1. Hoc: V j i ch mt on dc trn ct th j ni hai im dng i v dng i +1. S liu c ghi t v tr u tin ca mi dng, gia k t v s v gia hai s lin tip trn mt dng c ng mt du cch. Kt qu: Ghi ra file vn bn SQUARE.OUT Dng u tin ghi s nguyn P l s loi hnh vung c trn li. Mi dng trong P dng tip theo ghi thng tin m t v mt loi hnh vung v s lng hnh vung bao gm hai s nguyn a, b cho bit c a hnh vung c cnh di b. Cc thng tin v cc loi hnh vung phi c a ra theo th t tng dn ca di cnh. Trong trng hp khng tm c bt c mt hnh vung no file SQUARE.OUT gm mt dng duy nht cha thng bo NO SQUARES. V d: File d liu m t li cho trong hnh 1 v file kt qu tng ng c dng: SQUARE.INP SQUARE.OUT 4 2 16 2 1 H 1 1 1 2 H 1 3 H 2 1 H 2 2 H 2 3 H 3 2 H 4 2 H 4 3 V 1 1 V 2 1 V 2 2 V 2 3 V 3 2 V 4 1 V 4 2 V 4 3 Program square; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
var a:array [1..100,1..100] of integer; b,kq:array [1..1000,1..2] of integer; i,k,m,n,p,q,z,s,l:integer; c:char; f:Text; Procedure kt(x1,y1,x2,y2:integer); var i,k,t,p,q:integer; begin t:=0; i:=0; k:=x2-x1; Repeat i:=i+1; if a[x1+i,y1]=0 then t:=1; if a[x1+i,y2]=0 then t:=1; if a[x1,y1+i]=0 then t:=1; if a[x2,y1+i]=0 then t:=1; Until (i=k) or (t=1); if t=0 then begin q:=0; For p:=1 to l do if kq[p,2]=k div 2 then begin kq[p,1]:=kq[p,1]+1;q:=1;Break;end; if q=0 then begin l:=l+1;kq[l,1]:=1;kq[l,2]:=k div 2; end; end; end; Procedure doc; begin Assign(f,'square.inp'); Reset(f); Readln(f,m); Readln(f,k); For i:=1 to k do begin Repeat Read(f,c); Until Upcase(c) in ['H','V']; if c='H' then Readln(f,q,p) else Readln(f,p,q); if n<q then n:=q; a[p*2-1,q*2-1]:=1; if c='H' then begin a[p*2,q*2-1]:=1;a[p*2+1,q*2-1]:=1; end else begin a[p*2-1,q*2]:=1;a[p*2-1,q*2+1]:=1; end; end; Close(f); Su tm v bin son: Nguyn Minh c

Bi tp Pascal
end; Procedure tinh; begin For i:=1 to n-1 do For k:=1 to m-1 do if a[i*2-1,k*2-1]=1 then For p:=1 to m-i do kt(i*2-1,k*2-1,i*2-1+p*2,k*2-1+p*2); end; Procedure ghi; begin Assign(f,'square.out'); Rewrite(f); Writeln(f,l); For i:=1 to l do Writeln(f,kq[i,1],' ',kq[i,2]); Close(f); end; Begin doc; tinh; ghi; End. Bi 12.Hai xu k t c gi l ANAGRAM ca nhau nu xu ny c th to c bng cch hon v cc k t ca xu kia, t n c hiu l xu k t vit lin nhau khng cha du cch. Cho mt tp vn bn bt k c tn VANBAN.TXT, hy lp trnh hin ln mn hnh nhng nhm t l ANAGRAM ca nhau bng cch xt cc t trong tp vn bn cho. uses crt; var a,b:array[1..100] of string; c:array[1..100,1..2] of word; i,j,k,m,n:word; s:string; f:text; Procedure chg(k:integer); var i,j:word; c:char; begin b[k]:=a[k]; For i:=1 to length(b[k]) do For j:=i+1 to length(b[k]) do if b[k,j]<b[k,i] then begin c:=b[k,j];b[k,j]:=b[k,i];b[k,i]:=c; end; end; Procedure xl; var i:word; begin While Pos(' ',s)<>0 do Delete(s,pos(' ',s),1); If s[length(s)]=' ' then Delete(s,length(s),1); s:=s+' '; if s[1]=' ' then Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Delete(s,1,1); While s<>'' do begin inc(n); a[n]:=copy(s,1,pos(' ',s)-1); Delete(s,1,pos(' ',s)); chg(n); For i:=1 to n-1 do if b[i]=b[n] then Writeln(a[i],' ',a[n]); end; end; Begin clrscr; Assign(f,'vanban.txt'); Reset(f); i:=0; n:=0; While not eof(f) do begin inc(i); Readln(f,s); xl; end; Close(f); Readln; End. Bi 13. M s sch nh m s cho tng quyn sch, mt cn b th vin d nh dng mt t c 5 k hiu lin tip nhau gm : 2 k t (A....Z) tip theo l 3 k s (001...999). Em hy lp trnh to tt c t c th dng lm m s. Yu cu k thut Xut : File text MASO.INP Mi dng c 8 t, mi t cch nhau mt khong trng. Ghi ch:M s sch khng c 3 k hiu cui l 000 uses crt; var i,k,m,n:integer; s,s2:string; f:text; Begin Assign(f,'maso.inp'); Rewrite(f); For i:=1 to 25 do For k:=1 to 25 do For m:=1 to 999 do begin Str(m,s); While length(s)<3 do s:='0'+s; Write(f,chr(i+64)+chr(k+64)+s,' '); n:=n+1; if n mod 8=0 then begin Writeln(f);n:=0; end; end; Close(f); End. Bi 14. Nhn dng hng s thc (real con-stant) Su tm v bin son: Nguyn Minh c

Bi tp Pascal
Ngi ta nh ngha, mt hng s c coi l s thc nu ngoi cc s ch s ra n cn c du chm ( . ) hoc mt s m ( bt u bi e hay E thng c gi l s lu tha ) hoc c hai. Nu c du chm ( . ) th mi bn ca du chm phi c t nht mt ch s. Ngoi ra, trc s v trong s m cn c th c mt du cng ( + ) hoc tr ( - ). Phn s lu tha phi l s nguyn. S thc c th c cc khong trng ( BLANK ) trc hoc sau nhng bn trong th khng. Hng s thc khng c gii hn v gi tr. Vit chng trnh kim tra xem cc chui k t cho trc c phi l nhng s thc theo nh ngha trn y hay khng. D liu vo: D liu vo cho trong tp tin vn bn SOTHUC.INP gm nhiu dng cho nhiu trng hp cn kim tra. Mi dng cha mt chui k th Si l chui cn kim tra. Dng cui cng cha k t ' * ', dng ny khng c xt trong chng trnh. Mi dng ti a 255 k t. D liu ra Kt qu ghi trong tp tin vn bn SOTHUC.OUT gm nhiu dng. Mi dng cha cu tr li l "DUNG" hoc "SAI" tng ng vi mt dng trong tp tin SOTHUC.INP.V d: D liu vo D liu ra 1,2 DUNG 5,300 DUNG 1 SAI 1.0e55 DUNG +1e-12 DUNG 6 SAI e-12 SAI *. Program sothuc; uses crt; var i,k,m,n:integer; s,s2:string; f,f2:text; Function kt(s:string):string; var b:string; begin b:='DUNG'; While s[1]=' ' do Delete(s,1,1); While s[length(s)]=' ' do Delete(s,length(s),1); if pos(' ',s)>0 then b:='SAI' else begin For i:=1 to length(s) do begin s[i]:=Upcase(s[i]); if not (s[i] in ['0'..'9']) then begin if not (s[i] in ['+','-','E','.',',']) then b:='SAI'; if i=length(s) then b:='SAI'; Su tm v bin son: Nguyn Minh c

Bi tp Pascal
if not ((s[i] in ['+','-']) and ((i=1) or (s[i-1]='E'))) then b:='SAI'; if (s[i]='E') and (pos('.',s)>i) then b:='SAI'; if b='SAI' then Break; end; end; if (pos('.',s)=0) and (pos('E',s)=0) then b:='SAI' else begin k:=0; For i:=pos('.',s)+1 to length(s) do if s[i] in ['0'..'9'] then begin k:=1;Break; end; if k=0 then b:='SAI'; if pos('E',s)=length(s) then b:='SAI'; if pos('.',s)=0 then Delete(s,pos('.',s),1); if pos('E',s)=0 then Delete(s,pos('E',s),1); if (pos('.',s)>0) or (pos('E',s)>0) then b:='SAI' end; end; kt:=b; end; Begin clrscr; Assign(f,'sothuc.inp'); Assign(f2,'sothuc.out'); Reset(f); Rewrite(f2); While not eof(f) do begin Readln(f,s); if pos('*',s)<>0 then break; Writeln(f2,kt(s)); end; Close(f); Close(f2); End. Bi 15. Chui i xng Mi chui k t c gi l i xng nu n c khng t hn 1 k t v nu ta c t phi sang tri hay t tri sang phi u ging nhau. V d ' Z ' , ' TOT ' , ' NAN ' l cc chui i xng cn ' NAM ' khng phi.Yu cu: Vit chng trnh nhn vo chui k t cho trc S v hy cho bit c bao nhiu chui con khc nhau ca S l chui i xng. Chui con ca S l chui gm mt s k t nm lin tip nhau trong S. D liu vo cho trong tp tin vn bn CHUOI.INP gm nhiu dng, mi dng l mt chui k t cn xem xt(cc chui c di khng qu 80 k t ). Kt qu ghi trong tp tin vn bn CHUOI.OUT c s dng bng vi s dng ca CHUOI.INP. Mi dng cha mt s nguyn l con s cho bit s chui con i xng ca chui dng tng ng trong CHUOI.INP.V d: D liu vo: Su tm v bin son: Nguyn Minh c D liu ra:

Bi tp Pascal
Z TOT 1 3

NANG 4 program chuoi; use crt; var s:string; f,f1:text; a:array[1..200] of string; Function dx(s:string):boolean; var bl:boolean; i:word; Begin bl:=true; For i:=1 to length(s) do If s[i] <> s[length(s)-i+1] then bl:=false; dx:=bl; End; Function from(s:string;d:word):boolean; var i:word; bl:boolean; Begin bl:=false; If d=0 then bl:=false Else For i:=1 to d do If s=a[i] then bl:=true; from:=bl; End; Function xet(s:string):word; var s1:string; d,i,j:word; Begin fillchar(a,sizeof(a),0); d:=0; For i:=1 to length(s) do For j:=1 to length(s)-i+1 do Begin s1:=copy(s,i,j); If dx(s1) then If not from(s1,d) then Begin inc(d); a[d]:=s1; End; End; xet:=d; End; Begin assign(f,'chuoi.inp'); Reset(f); assign(f1,'chuoi.out'); Rewrite(f1); While not eof(f) do Begin Readln(f,s); Writeln(f1,xet(s)); End; Close(f);Close(f1); End. Bi 16. Cho dy s nguyn A = {a1, a2, a3, ..., an} v mt s K (c nhp vo t phm). Hy vit chng trnh in ra tt c cc phn t m tng cc phn t bng K. Mi phn t c s dng mt ln Su tm v bin son: Nguyn Minh c

Bi tp Pascal
V d: A= {2 3 6 7 1 4 5}; K=5 Ta c cc dy s l: {2 3}; {1 4} Const fi='ptk.inp'; fo='ptk.out'; nmax = 100; var n:Byte; k:Integer; a:array[1..nmax] of integer; cx:array[1..nmax] of boolean; f:text; procedure Dulieu; Var f:text; i:byte; Begin assign(f,fi); reset(f); readln(f,n,k); for i:=1 to n do read(f,a[i]); close(f); end; procedure ghinhan; var i:integer; begin for i:=1 to n do if not cx[i] then write(f,a[i]:5); writeln(f); end; procedure try(S:Integer;i:byte); var j:byte; Begin if S = 0 then ghinhan else begin for j:=i to n do if cx[j] then begin cx[j]:=false; try(s-a[j],j+1); cx[j]:=true; end; end; End; BEGIN Dulieu; assign(f,fo); rewrite(f); fillchar(cx,sizeof(cx),true); Try(K,1); close(f); END.

1 s bi pascal...

Su tm v bin son: Nguyn Minh c

Bi tp Pascal
1) Cho 1 s N c th c n 200 ch s, tm s p ln nht sao cho p^3+p^2+p<=n. 2) Cho trc mt s t nhin K (K>1). Nu tn ti 2 s t nhin M v N (M>N) sao cho KM v KN u khng nh hn 1000, ng thi 3 ch s tn cng ca K^M v K^N l ging nhau, th cp s M v N c gi l mt Cp s K cui ging nhau. Hy cp s M,N tha mn l Cp s K cui ging nhau sao cho tng M+N l nh nht. 3)Cho trc n, x v n+1 s a0,a1,a2,,an vi ai l cc s nguyn, (1n6,1x10,|ai|10) v a thc P(x) = a^n*x^n+a^(n-1)*x^(n-1)++a^1*x+a^0. Hy xc nh k sao cho P(k) t c gi tr nh nht. 4)Khi chng ta vit mt s thp phn, chng ta c th phn tch nh sau: 345 = 3x102+4x101+5x100. Tc l vi c s R v N, chng ta s c: N = anxRn+an-1xRn-1++a0xR0 Tuy nhin y R cng c th l s nguyn m, lc ny ta gi l c s m. Vi c s R m, ta cng s dng cc ch s sau biu din: {0,1,.,|R|-1}. Nu |R|>10, ta dng cc ch ci hoa theo th t t A. V d vi h 16 (thp lc phn), A din t gi tr 10 (trong h thp phn),, F din t gi tr 15 (trong h thp phn). Nhp vo 1 s trong h thp phn n v s R (c s m). Hy tnh ra s tng ng trong h c s R. V d: s -15 trong h c s -2 c bin din l 110001. -15= 1x(-2)^5+1x(-2)^4+0x(-2)^3+0x(-2)^2+0x(-2)^1+1x(-2)^0. 5)Khi lp phng rubic bao gm 6 mt. Mi mt nh th n c sn bng 1 mu nht nh. Chng ta bit c 2 dy mu, (mi dy c 6 mu l mu 6 mt ca 1 rubic). Hi xem 2 rubic ny c phi l ng dng khng ? Hai rubic c xem l ng dng bng 1 cch t no , chng ta c 2 rubic ging nhau hon ton (cc mu ging nhau). 6)S nguyn nguyn t l s nguyn t m khi b mt s tu cc ch s bn phi ca n th phn cn li vn to thnh mt s nguyn t. V d 3797 l mt s nguyn nguyn t c 4 ch s v 379, 37, 3 cng l cc s nguyn t. Cho trc s n, cho bit tt c s cc s nguyn nguyn t c N ch c. 7)Nic v Susan chi mt tr chi s nh sau: n lt mi ngi i, h s ly s t nhin p nhn vi mt s t t 2 n 9. Nic lun lun l ngi i trc vi p=1. Sau Susan s ly kt qu ny v thc hin php nhn tip tc v c th chi. Trc khi mi tr chi bt u, h s bc thm ly mt s t nhin n (1n104) v ngi thng cuc l ngi lm cho s pn. Tm ngi thng cuc ca cuc chi. 8)Trong s t nhin quan h th t a>b ng khi m a-b c gi tr dng. V d: 6>5, 3>111. Tuy nhin, y chng ta s nh ngha quan h tri nh sau: a tri b c k hiu l a b khi tha mn mt trong hai iu kin sau: - S(a) > S(b) - S(a) = S(b) v a<b. vi S(a) l tng cc ch s ca a, S(b) l tng cc ch s ca b. Cho trc s N (1N105). Hy tm mt s t nhin a tha mn: - a l c s ca N. - Vi b l mt c s bt k ca N (khc a), ta u c: a b. 9)Cho s N (N10000) v N s nguyn, mi s nguyn c tr tuyt i khng vt qu 1000. N s ny c xp trn 1 vng trn. Hy tm on lin tip c tng ln nht. 10)Trong mt khu rng c 1 loi cn trng c cch pht trin kh th v nh sau: - Mi cp cn trng c sau X thng s sinh sn ra Y cp trng. - Mi cp trng phi tri qua 2 thng s bin thnh mt cp cn trng. thng ban u, c 1 cp cn trng va c bin thnh t cp trng. Hi sau Z thng, qun th ny c tt c bao nhiu cp cn trng ?

Su tm v bin son: Nguyn Minh c

You might also like