Tải bản đầy đủ (.docx) (65 trang)

De thi HSG Tin

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (310.97 KB, 65 trang )

<span class='text_page_counter'>(1)</span>Bµi tËp lËp tr×nh pascal II.CÂU LỆNH RẼ NHÁNH Bài 1: Nhập vào 2 số nguyên dương a và b. + Tính và in ra màn hình tổng, hiệu, tích, thương và UCLN của 2 số đó + Tính tổng các ước số dương của |a+b| Lời giải: uses crt; var a,b,tg,i,tong:integer; function tinh(x,y:integer):integer; begin tg:= x mod y; if tg=0 then tinh:=y else tinh:=tinh(y,tg); end; BEGIN clrscr; write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); tong:=1; for i:=2 to abs(a+b) do if (abs(a+b) mod i =0) then tong:=tong+i; writeln('Tong 2 so la: ',a+b); writeln('Hieu 2 so la: ',a-b); writeln('Tich 2 so la: ',a*b); writeln('Thuong 2 so la: ',a/b:0:4); writeln('UCLN 2 so la: ',tinh(a,b)); writeln('Tong cac uoc cua ',a+b,' la: ',tong); readln END. Bµi 2: Cho 3 sè thùc x, y, z. T×m. a. max ( x - y, y - z, z - x ) vµ min ( x +y, y + z , z + x) ; b. max ( x +y+z , xyz) program bai1; uses crt; var x,y,z,max,min:longint; begin clrscr; write('x= '); readln(x); write('y= '); readln(y); write('z= '); readln(z); max:=x-y; if max<(y-z)then max:=y-z else if max<(z-x)then max:=z-x; min:=x+y; if min>(y+z)then min:=y+z else if min>(z+x)then min:=z+x; writeln('a.max(x-y,y-z,z-x)= ',max,' & min(x+y,y+z,z+x)= ',min); max:=x+y+z; if max<(x*y*z) then max:=x*y*z; writeln('b.max(x+y+z,x*y*z)= ',max); readln; end. Bµi 3: LËp ph¬ng tr×nh t×m gi¸ trÞ lín nhÊt, nhá nhÊt cña 4 sè a,b, c, d nhËp tõ bµn phÝm program bai2; uses crt; var a,b,c,d,max,min:integer; begin clrscr; write('a= '); readln(a); write('b= '); readln(b);.

<span class='text_page_counter'>(2)</span> write('c= '); readln(c); write('d= '); readln(d); max:=-32768; min:=maxint; if max<a then max:=a; if max<b then max:=b; if max<c then max:=c; if max<d then max:=d; if min>a then min:=a; if min>b then min:=b; if min>c then min:=c; if min>d then min:=d; writeln('Max= ',max); writeln('Min= ',min); readln; end. Bµi 4: Cho sè tù nhiªn n ( n ≤ 1000 ) a. Sè tù nhiªn n cã bao nhiªu ch÷ sè. b. T×m tæng c¸c ch÷ sè cña n. c. T×m ch÷ sè cuèi cïng cña n. d. T×m ch÷ sè ®Çu tiªn cña n. e. Víi n ≥ 10. H·y t×m ch÷ sè hµng chôc cña n. program bai7; uses crt; var ok:boolean; dau,a,b,c,n,cs:integer; begin clrscr; write('n= '); readln(n); ok:=false; if n>=10 then ok:=true; b:=0; c:=0; a:=n mod 10; n:=n div 10; if n=0 then begin cs:=1; dau:=a end else begin b:=n mod 10; n:=n div 10; if n=0 then begin cs:=2; dau:=b end else begin cs:=3; c:=n mod 10; dau:=c; end end; writeln('a. So tu nhien co ',cs,' chu so'); writeln('b. Tong cac chu so cua n= ',a+b+c); writeln('c. Chu so cuoi cung cua n la: ',a); writeln('d. Chu so dau tien cua n la: ',dau); if ok then writeln('e. Chu so hang chuc cua n la: ',b); readln; end. II.CÂU LỆNH LỰA CHỌN CASE-OF:.

<span class='text_page_counter'>(3)</span> Bµi 1: Viết phơng trình nhập vào số nguyên n ( 0 ≤ n ≤ 9) in ra màn hình cách đọc tiếng Việt của số đó. program bai1; uses crt; var n:byte; begin clrscr; write('n= '); readln(n); case n of 0:writeln('khong'); 1:writeln('mot'); 2:writeln('hai'); 3:writeln('ba'); 4:writeln('bon'); 5:writeln('nam'); 6:writeln('sau'); 7:writeln('bay'); 8:writeln('tam'); 9:writeln('chin'); else writeln('Yeu cau: 0<=n<=9'); end; readln; end. Bµi 2: ViÕt ph¬ng tr×nh thùc hiÖn viÖc sau: NÕu biÕn chän nhËn gi¸ trÞ = 'A' th× yªu cÇu tÝnh diÖn tÝch h×nh ch÷ nhËt, nÕu biÕn chän gi¸ trÞ = ' B ' th× tÝnh diÖn tÝch tam gi¸c, b»ng ' C ' th× tÝnh chu vi h×nh trßn, c¸c trêng hîp cßn l¹i th× tÝnh diÖn tÝch h×nh thang. program bai2; uses crt; var a,b,c:integer; ch:char; begin clrscr; write('ch= '); readln(ch); case ch of 'A': begin writeln('Tinh dien tich hinh chu nhat:'); write('Chieu dai= '); readln(a); write('Chieu rong= '); readln(b); writeln('Dien tich hinh chu nhat = ',a*b); end; 'B': begin writeln('Tinh dien tich hinh tam giac:'); write('Chieu cao= '); readln(a); write('Do dai canh day= '); readln(b); writeln('Dien tich tam giac= ',1/2*a*b:0:2); end; 'C': begin writeln('Tinh chu vi hinh tron:'); write('Ban kinh= '); readln(a); writeln('Chu vi hinh tron= ',2*a*pi:0:2); end; else begin.

<span class='text_page_counter'>(4)</span> writeln('Tinh dien tich hinh thang:'); write('Do dai day lon= '); readln(a); writeln('Do dai day be= '); readln(b); writeln('Chieu cao= '); readln(c); writeln('Dien tich hinh thang= ',(a+b)*c/2:0:2); end; end; readln; end. Bµi 3: Mét cöa hµng cã 4 lo¹i s¶n phÈm gi¸ cho 1 mÐt khèi tõng lo¹i lµ nh sau : Lo¹i 1 lµ 200.000 ® , lo¹i 2 lµ 100.000 ®, lo¹i 3 lµ 70.000 ® , lo¹i 4 lµ 20.000 ®. ViÕt ph¬ng tr×nh tÝnh tiÒn cho kh¸ch hµng. program bai3; uses crt; var loai, sl:integer; tong:real; begin clrscr; write('Nhap vao loai san pham can mua: '); readln(loai); write('Nhap vao so luong can mua: '); readln(sl); case loai of 1: tong:=sl*200000; 2: tong:=sl*100000; 3: tong:=sl*70000; 4: tong:=sl*20000; end; writeln('Tong tien: ',tong:0:0); readln; end. Bµi 4: NhËp c¸c sè thùc x, y vµ ký tù ch. NÕu ch lµ ký hiÖu phÐp to¸n + , - , *, / th× thùc hiÖn phÐp toán đó với x, y nếu không thì thông báo không phải là phép toán. Trờng hợp chia cho 0 cũng phải th«ng b¸o. program bai4; uses crt; var x, y, kq:real; ch:char; begin clrscr; write('x= '); readln(x); write('y= '); readln(y); write('ch= '); readln(ch); case ch of '+': writeln('Ket qua= ',x+y:0:1); '-': writeln('Ket qua= ',x-y:0:1); '*': writeln('Ket qua= ',x*y:0:1); '/': if y=0 then writeln('Khong the chia 1 so cho 0!') else writeln('Ket qua= ',x/y:0:1); else writeln('Khong phai phep tinh!'); end; readln; end. IV. Vßng lÆp FOR Bµi 2: Viết phơng trình tìm tất cả các số tự nhiên có 3 chữ số. Biết số đó chia cho 6 d 2 và tổng các chữ sè cña nã b»ng 20. program bai2; uses crt; var i,j,k,so:integer; begin clrscr; writeln('So cac so co 3 chu so chia 6 du 2 & tong cac chu so = 20 la:'); for i:=1 to 9 do for j:=0 to 9 do.

<span class='text_page_counter'>(5)</span> for k:=0 to 9 do begin so:=i*100+j*10+k; if (so mod 6)=2 then if i+j+k=20 then write(so,' '); end; readln; end. Bµi 3. ViÕt ph¬ng tr×nh t×m tÊt c¶ c¸c sè cã ba ch÷ sè abc sao cho tæng c¸c lËp ph¬ng cña c¸c ch÷ sè bằng chính số đó. program bai3; uses crt; var a,b,c,so,tonglp: integer; begin clrscr; writeln('Cac so co 3 chu so co tong lap phuong bang chinh no la:'); for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do begin so:=a*100+b*10+c; tonglp:=a*a*a+b*b*b+c*c*c; if so=tonglp then write(so,' '); end; readln; end. Bµi 5: L·i suÊt hµng th¸ng göi tiÕt kiÖm kh«ng kú h¹n lµ t % ( t nhËp tõ bµn phÝm ) a. Nhập số vốn ban đầu n và số tháng gửi k. Tính số tiền nhận đợc sau k tháng b. NhËp sè vèn ban ®Çu n vµ sè tiÒn cÇn nhËn m.TÝnh sè th¸ng cÇn göi. c. NhËp sè tiÒn cÇn nhËn m vµ sè th¸ng göi k. TÝnh sè vèn cÇn göi ban ®Çu. Tính số tiền thu đợc sau t tháng với tiền gửi ban đầu là x. Bài 5: program bai5; uses crt; var i,t,k:integer; lai,tien,m,n,x:real; begin clrscr; {Phan a} write('Lai suat t= '); readln(t); write('So von ban dau n= '); readln(n); write('So thang gui k= '); readln(k); tien:=n; for i:=1 to k do tien:=tien+tien*t*0.01; writeln('So tien nhan duoc sau ',k,' thang la: ',tien:0:1); {Phan b} write('So von ban dau n= '); readln(n); write('So tien can nhan m= '); readln(m); tien:=n; for i:=1 to 100 do begin tien:=tien+tien*t*0.01; if tien=m then begin k:=i; break; end; end; writeln('So thang can gui la: ',k); {Phan c}.

<span class='text_page_counter'>(6)</span> write('So tien can nhan m= '); readln(m); write('So thang gui k= '); readln(k); n:=m; for i:=1 to k do n:=n/(t*0.01+1); writeln('So von ban dau la: ',n:0:1); {Phan cuoi} write('So von ban dau x= '); readln(x); write('So thang gui k= '); readln(k); tien:=x; for i:=1 to k do tien:=tien+tien*t*0.01; lai:=tien-x; writeln('So tien lai nhan duoc sau ',k,' thang la: ',lai:0:1); readln; end. Bµi 8 : ViÕt ph¬ng tr×nh gi¶i bµi to¸n Võa gµ võa chã 36 con Bã l¹i cho trßn 100 ch©n ch½n Hái cã bao nhiªu con gµ cã bao nhiªu con chã program bai8; uses crt; var i,j,slchan:integer; begin clrscr; for i:=1 to 50 do for j:=1 to 25 do begin slchan:=i*2+j*4; if (i+j=36)and (slchan=100) then write('Ga: ',i,' con & Cho: ',j,' con'); end; readln; end. Bµi 9 : ViÕt ph¬ng tr×nh gi¶i bµi to¸n 100 con tr©u, 100 bã cá Trâu đứng ăn 5, trâu nằm ăn 3 Lô khu tr©u giµ 3 con mét bã. Hái mçi lo¹i tr©u cã bao nhiªu con program bai9; uses crt; var i,j,k:integer; co:real; begin clrscr; for i:=1 to 20 do for j:=1 to 33 do begin k:=100-i-j; co:=i*5+j*3+k/3; if co=100 then writeln('Trau dung: ',i,' con. Trau nam: ',j,' con. Trau gia: ',k,' con'); end; readln; end. Bài 10 : Tìm các nguyện nguyên dơng của phơng trình vô định 4x + 3y = 50 program bai10; uses crt; var x,y:byte;.

<span class='text_page_counter'>(7)</span> begin clrscr; for x:=1 to 12 do for y:=1 to 16 do if(4*x+3*y)=50 then writeln('x= ',x,' & y= ',y); readln; end. Bµi 11 : LËp ch¬ng tr×nh vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc 1 1 1 1+ 1+ 2 1+ 2 a.nl = 1.2.3...n; b. 2n ; c. 1 2 n program bai11; uses crt; var i,n:integer; tmp,gt,lt,tich:real; begin clrscr; write('n= '); readln(n); gt:=1; for i:=1 to n do gt:=gt*i; writeln('a. ',n,'!= ',gt:0:0); lt:=1; for i:=1 to n do lt:=lt*2; writeln('b. 2^',n,'= ',lt:0:0); tich:=1; for i:=1 to n do tich:=tich*(1+1/sqr(i)); writeln('c. Ket qua la: ',tich:0:2); readln; end. Bµi 12 : LËp ch¬ng tr×nh vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc S = 1+ 1/2 + 1/3 + ...+ 1/n program bai12; uses crt; var i,n:integer; tong:real; begin clrscr; write('n= '); readln(n); tong:=0; for i:=1 to n do tong:=tong+1/i; writeln('Ket qua: ',tong:0:2); readln; end. Bµi 13 : LËp ch¬ng tr×nh vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc S = 1 + 22 + 32 + ...n2 program bai13; uses crt; var i,n:integer; tong:real; begin clrscr; write('n= '); readln(n); tong:=0; for i:=1 to n do tong:=tong+sqr(i); writeln('Ket qua: ',tong:0:0); readln; end. Bµi 14 : NhËp sè tù nhiªn n vµ sè thùc x. TÝnh A = sinx + sin2x + ...+ sinn x B = sinx + sin2x + ...+ sinxn. ( )(. )( ).

<span class='text_page_counter'>(8)</span> program bai14; uses crt; var i,j,n:integer; lt1,lt2,a,b,x:real; begin clrscr; write('n= '); readln(n); write('x= '); readln(x); a:=0; b:=0; for i:=1 to n do begin lt1:=1; lt2:=1; for j:=1 to i do begin lt1:=lt1*sin(i); lt2:=lt2*i; end; a:=a+lt1; b:=b+sin(lt2); end; writeln('A= ',a:0:2); writeln('B= ',b:0:2); readln; end. Bµi 16 : Cho sè thùc a vµ sè tù nhiªn n. H·y tÝnh a. an ; b.a ( a + 1 ) ...( a + n + 1 ) ; c.. 1 1 1 + +. ..+ a a (a+1) a (a+1). . .(a+n). program bai16; uses crt; var lt,a,t,tam:real; i,n,j:integer; begin clrscr; write('a= '); readln(a); write('n= '); readln(n); lt:=1; for i:=1 to n do lt:=lt*a; writeln('a. ',a:0:2,'^',n,'= ',lt:0:2); t:=a; for i:=0 to n do t:=t*(a+1+i); writeln('b. Ket qua la: ',t:0:0); t:=1/a; tam:=1; for i:=1 to n do begin for j:=1 to i do tam:=tam*(a+i); t:=t+1/(a*tam); end; writeln('c. Ket qua la: ',t:0:2); readln; end. Bµi 17 : NhËp vµo 2 sè thùc a vµ x vµ sè tù nhiªn n. H·y tÝnh : ((...(( x+ an ) + an-1) + ...+a3 ) + a2 ) + a n dÊu ngoÆc program bai17; uses crt; var a,x,lt,t:real; n,i,j:integer; begin clrscr; write('a= '); readln(a); write('x= '); readln(x); write('n= '); readln(n); t:=x; for i:=n downto 0 do begin.

<span class='text_page_counter'>(9)</span> lt:=1; for j:=1 to i do lt:=lt*a; t:=t+lt; end; writeln('Ket qua: ',t:0:0); readln; end. Bµi 18 : NhËp vµo sè thùc x vµ tÝnh gi¸ trÞ cña biÓu thøc ( x − 2)(x − 4)(x − 8). ..( x −64) ( x −1)( x − 3)(x −7) .. .( x −63) program bai18; uses crt; var x,tu,mau:real; i,a:integer; begin clrscr; write('x= '); readln(x); tu:=1; mau:=1; for i:=0 to 31 do begin a:=2*(i+1); tu:=tu*(x-a); end; for i:=0 to 31 do begin a:=1+2*i; mau:=mau*(x-a); end; mau:=mau*(x-i); writeln('Ket qua: ',tu/mau); readln; end. Bµi 20 : NhËp n lµ sè tù nhiªn. TÝnh n ! 1.3.5.... n víi n lÎ n !! = 2,4,6....n víi n ch½n program bai20; uses crt; var i,n:integer; t:real; begin clrscr; write('n= '); readln(n); t:=1; for i:=1 to n do if (n mod 2)=0 then begin if(i mod 2)=0 then t:=t*i end else if(i mod 2)=1 then t:=t*i; writeln(n,'!!= ',t:0:0); readln; end. Bµi 21 : NhËp vµo sè tù nhiªn n. TÝnh 1 3 5 2 n −1 a. ; b. . . .. . 2 4 6 2n. 1 3 5 2 n −1 . . .. . 1 2 3 n.

<span class='text_page_counter'>(10)</span> program bai21; uses crt; var i,n:integer; t:real; begin clrscr; write('n= '); readln(n); t:=1; for i:=1 to 2*n-1 do if (i mod 2)=1 then t:=t*(i/(i+1)); writeln('a. Ket qua: ',t:0:2); t:=1; for i:=1 to n do t:=t*((2*i-1)/i); writeln('b. Ket qua: ',t:0:2); readln; end. Bµi 22 : H·y tÝnh gi¸ trÞ biÓu thøc 1 1 1 1 1+ −. . .+ − 2 3 9999 10000 Theo c¸ch sau ®©y : a. TÝnh tõ tr¸i sang ph¶i b. TÝnh tõ ph¶i sang tr¸i program bai22; uses crt; var t:real; i,dau:integer; begin clrscr; t:=0; for i:=1 to 10000 do begin if (i mod 2)=0 then dau:=-1 else dau:=1; t:=t+dau*(1/i); end; writeln('a. Ket qua tinh tu trai sang phai: ',t); for i:=10000 downto 1 do begin if (i mod 2)=0 then dau:=1 else dau:=-1; t:=t+dau*(1/i); end; writeln('b. Ket qua tinh tu phai sang trai: ',t); readln; end. Bµi 24. ViÕt ph¬ng tr×nh nhËp sè tù nhiªn N ( N < 2l ) vµ sè x < l. TÝnh tæng sin x sin x+ sin 2 x sin x sin 2 x+ ..+sin nx + +.. .+ cos x cos x +cos 2 x cos x +cos 2 x+ .. cos nx program bai24; uses crt; var i,j,n:integer; tu,mau,t,x:real; begin clrscr; write('n= '); readln(n); write('x= '); readln(x); t:=0; for i:=1 to n do begin tu:=0; mau:=0; for j:=1 to i do.

<span class='text_page_counter'>(11)</span> begin tu:=tu+sin(j*x); mau:=mau+cos(j*x); end; t:=t+tu/mau; end; writeln('Ket qua: ',t); readln; end. Bài 25 : Viết chơng trình tìm tất cả các số tự nhiên có bốn chữ số sao cho số đó chia hết cho 5 và tổng các ch÷ sè cña nã b»ng 20. program bai25; uses crt; var a,b,c,tcs:byte; begin clrscr; writeln('Cac so co 4 chu so chia het cho 5 & co tong cac chu so = 20 la:'); for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do begin tcs:=a+b+c; if tcs=15 then write(a,b,c,5,' ') else if tcs=20 then write(a,b,c,0,' '); end; readln; end. Bµi 26 : Mét sè hoµn h¶o lµ mét sè cã tæng c¸c íc sè cña nã b»ng chÝnh nã. H·y lËp tr×nh t×m c¸c sè hoµn h¶o nhá h¬n 5000 ( vd 6 lµ sè hoµn h¶o v× cã c¸c íc lµ 1, 2, 3 vµ 1 + 2 + 3 = 6 ) program bai26; uses crt; var i,j,tonguoc:integer; begin clrscr; writeln('Cac so hoan hao <5000 la:'); for i:=1 to 5000 do begin tonguoc:=0; if i=1 then tonguoc:=1 else for j:=1 to i-1 do if (i mod j)=0 then tonguoc:=tonguoc+j; if tonguoc=i then write(i,' '); end; readln; end. Bµi 27 : Tìm tất cả các số nguyên tố có 3 chữ số đối xứng nhau ( hàng trăm = hàng đơn vị ) program bai27; uses crt; var i,j:integer; begin clrscr; writeln('Cac so co 3 chu so doi xung la:'); for i:=1 to 9 do for j:=0 to 9 do write(i,j,i,' '); readln; end..

<span class='text_page_counter'>(12)</span> Bµi 29 : NhËp sè tù nhiªn n. TÝnh √ 5+ √ 10+ .. .+ √ 5 n ( PhÇn tö cuèi cïng cã n lÇn lÊy c¨n bËc 2 ) program bai29; uses crt; var i,n:integer; t:real; begin clrscr; write('n= '); readln(n); t:=0; for i:=n downto 1 do t:=sqrt(5*i+t); writeln('Ket qua: ',t:0:2); readln; end. Bµi 30 : Viết chơng trình tìm tất cả các số tự nhiên có 3 chữ số. Biết rằng số đó chia cho 6 d 2 và tổng c¸c ch÷ sè cña nã lµ 20. program bai30; uses crt; var a,b,c,so:integer; begin clrscr; writeln('Cac so chia 6 du 2 co tong cac chu so = 20 la:'); for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do begin so:=a*100+b*10+c; if a+b+c=20 then if (so mod 6)=2 then write(so,' '); end; readln; end. Bµi 31 : NhËp mét d·y n sè nguyªn. TÝnh trung b×nh céng cña c¸c phÇn tö d¬ng vµ c¸c phÇn tö ©m trong d·y võa nhËp. program bai31; uses crt; var n,ta,td,sa,sd,i,x:integer; begin clrscr; write('n= '); readln(n); td:=0; ta:=0; sd:=0; sa:=0; for i:=1 to n do begin write('So ',i,': '); readln(x); if x>0 then begin td:=td+x; sd:=sd+1; end else if x<0 then begin ta:=ta+x; sa:=sa+1; end; end; if td>0 then writeln('Trung binh cong cac phan tu duong la: ',td/sd:0:2); if ta<0 then writeln('Trung binh cong cac phan tu am la: ',ta/sa:0:2);.

<span class='text_page_counter'>(13)</span> readln; end. Bµi 32 : NhËp mét d·y n phÇn tö . H·y tÝnh tÝch cña chóng. NÕu tÝch d¬ng th× tÝnh trung b×nh nh©n cña dãy đó. program bai32; uses crt; var t,i,x,n:integer; begin clrscr; write('n= '); readln(n); t:=1; for i:=1 to n do begin write('So ',i,': '); readln(x); t:=t*x; end; writeln('Tich cua ',n,' so tren la: ',t); if t>0 then writeln('Trung binh nhan cua ',n,' so tren la: ',t/n:0:2); readln; end. Bµi 33: NhËp n vµ liÖt lª c¸c sè d¬ng bÐ h¬n hoÆc b»ng n tæng c¸c íc cña nã bÐ h¬n hoÆc b»ng chÝnh nã. program bai33; uses crt; var i,j,n,tonguoc:integer; begin clrscr; write('n= '); readln(n); writeln('Cac so <=',n,' co tong cac uoc = chinh no la:'); for i:=1 to n do begin tonguoc:=0; for j:=1 to i do if (i mod j)=0 then tonguoc:=tonguoc+j; if i<>1 then tonguoc:=tonguoc-i; if tonguoc=i then write(i,' '); end; readln; end. V.VÒNG LẶP WHILE, DO… WHILE Bµi 1: ViÕt ph¬ng tr×nh ph©n tÝch sèn thµnh thõa sè nguyªn tè. program bai1; uses crt; var n,i:integer; begin clrscr; write('n= '); readln(n); i:=2; while (n<>1)or(i<n) do begin while (n mod i)=0 do begin write(i,' '); n:=n div i; end; i:=i+1; end;.

<span class='text_page_counter'>(14)</span> readln; end. Bµi 2: LËp ph¬ng tr×nh nhËp vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc n! = 1.2.3...n vµ 2n program bai2; uses crt; var i,gt,lt,n:integer; begin clrscr; write('n= '); readln(n); gt:=1; i:=1; lt:=1; while i<=n do begin gt:=gt*i; lt:=lt*2; i:=i+1; end; writeln(n,'!= ',gt); writeln('2^',n,'= ',lt); readln; end. Bµi 3: LËp ph¬ng tr×nh nhËp vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc program bai3; uses crt; var i,n:integer; s:real; begin clrscr; s:=0; i:=1; write('n= '); readln(n); while i<=n do begin s:=s+1/i; i:=i+1; end; writeln('S= ',s:0:2); readln; end. Bµi 4: LËp ph¬ng tr×nh nhËp vµo mét sè tù nhiªn n. TÝnh gi¸ trÞ biÓu thøc Bài 4: program bai4; uses crt; var n,i:integer; s:real; begin clrscr; write('n= '); readln(n); i:=1; s:=0; while i<=n do begin s:=s+sqr(i); i:=i+1; end; write('S= ',s:0:0); readln; end. Bµi 5: LËp ph¬ng tr×nh tÝnh ex theo c«ng thøc xÊp xØ 2. ex = 1 +. n. S = 1 + 1/2 +1/3 +.... + 1/n. S = 1 +22 + 32 + ....+ n2. x x x Với độ chính xác 0.00001. Tức là n cần chọn sao cho + +. ..+ 1 ! 2! n!. program bai5; uses crt; var i,j:integer; tu,mau,e,x:real;. n. x n!. ||. < 0.00001.

<span class='text_page_counter'>(15)</span> begin clrscr; i:=1; e:=1; write('x= '); readln(x); tu:=1; mau:=1; while abs(tu/mau)>=0.00001 do begin j:=1; tu:=1; mau:=1; while j<=i do begin tu:=tu*x; mau:=mau*j; end; e:=e+tu/mau; i:=i+1; end; writeln('ế,x:0:2,'= ',e:0:5); readln; end.. j:=j+1;. Bµi 6: LËp ch¬ng tr×nh tÝnh sin (x) theo c«ng thøc sau: 2 n+1 2 n+1 x x − 1¿ n − 1¿ n (2 n+1)! (2 n+1)! sin ( x) = x 5 5 x x x x + − .. .+¿ + − .. .+¿ 3! 5! 3! 5! độ chính xác là esp. x2 n +1 (2 n+1)!. |. |. < esp. víi x lµ esp nhËp tõ bµn phÝm. Bài 6: program bai6; uses crt; var i,j,dau:integer; x,tu,mau,sinx,esp:real; begin clrscr; i:=0; write('x= '); readln(x); write('esp= '); readln(esp); sinx:=x; tu:=1; mau:=1; while abs(tu/mau)<esp do begin tu:=1; mau:=1; dau:=1; j:=1; while j<=(2*i+1) do begin dau:=dau*(-1); tu:=tu*x; mau:=mau*j; end; sinx:=sinx+dau*(tu/mau); i:=i+1; end; writeln('sin(',x:0:2,')= ',sinx:0:2); readln; end. Bµi 7 : LËp ch¬ng tr×nh tÝnh cos (x) theo c«ng thøc sau : cos (x) =1-. x2 x4 + 2! 4!. j:=j+1;. 2n. - ...+ ( -1 ) ❑n x (2 n)!. tõ bµn phÝm. program bai7; uses crt; var i,j,dau:integer; x,tu,mau,cosx,esp:real;. độ chính xác là esp. x 2n (2 n)!. | |. < esp. Víi x vµ esp nhËp.

<span class='text_page_counter'>(16)</span> begin clrscr; i:=0; write('x= '); readln(x); write('esp= '); readln(esp); cosx:=1; tu:=1; mau:=1; while abs(tu/mau)<esp do begin tu:=1; mau:=1; dau:=1; j:=1; while j<=(2*i) do begin dau:=dau*(-1); tu:=tu*x; mau:=mau*j; end; cosx:=cosx+dau*(tu/mau); i:=i+1; end; writeln('cos(',x:0:2,')= ',cosx:0:2); readln; end.. j:=j+1;. Bµi 8 TÝnh tæng S = 1 + 1/2 + 1/3 + ... yªu cÇu dõng l¹i khi 2 - S < 0.001S program bai8; uses crt; var i:integer; s:real; begin clrscr; s:=0; i:=1; while (2-s)>=0.001 do begin s:=s+1/i; i:=i+1; end; writeln('S= ',s:0:4); readln; end. Bài 9 : Lập chơng trình nhập vào một dãy số đến khi gặp số 0 thì kết thúc. Tính tổng của dãy số vừa nhập. program bai9; uses crt; var i:integer; x,t:real; begin clrscr; writeln('Nhap 1 day so ket thuc = cach nhap so 0:'); t:=0; i:=1; x:=1; while x<>0 do begin write('So thu ',i,'= '); readln(x); t:=t+x; i:=i+1; end; writeln('Tong cua day so vua nhap la: ',t:0:2); readln; end. Bµi 10 : NhËp vµo n sè bÊt kú. §Õm c¸c sè lín h¬n 10 vµ nhá h¬n 20. TÝnh tæng cña chóng program bai10; uses crt; var dem,i,n:integer; x,t:real; begin clrscr; write('n= '); readln(n); dem:=0; t:=0; i:=1;.

<span class='text_page_counter'>(17)</span> while i<=n do begin write('So thu ',i,'= '); readln(x); if(x>10)and(x<20) then begin dem:=dem+1; t:=t+x; end; i:=i+1; end; writeln('Co ',dem,' so >10 & <20 trong day tren & tong cua chung = ',t:0:2); readln; end. Bài 12 : Đếm xem trong số các số từ 1 đến 150 có bao nhiêu số là bội của 3 và 5. Tính tổng các số đó. program bai12; uses crt; var i,dem,t:integer; begin clrscr; i:=1; dem:=0; t:=0; while i<150 do begin if((i mod 3)=0)and((i mod 5)=0) then begin dem:=dem+1; t:=t+i; end; i:=i+1; end; writeln('Tu 1 den 150 co ',dem,' so la boi so cua 3 & 5. Tong cua chung la: ',t); readln; end. Bài 13 : Đọc vào một dãy số cho đến khi tổng của chúng lớn hơn 200 . Tính trung bình cộng các số đã đọc. program bai13; uses crt; var t,i,x:integer; begin clrscr; t:=0; i:=0; writeln('Nhap day so:'); while t<=200 do begin readln(x); t:=t+x; i:=i+1; end; writeln('Trung binh cong day so la: ',t/i:0:2); readln; end. Bµi 14 : Lập chơng trình xác định số hạng thứ n của dãy Fibonaci biết : fn = f 1 = 1 fn =fn-1 + fn - 2 program bai14; uses crt; var a,b,i,n,tam:integer; begin clrscr; a:=1; b:=1; write('n= '); readln(n); i:=2; while i<=n do.

<span class='text_page_counter'>(18)</span> begin tam:=a; a:=b; b:=b+tam; i:=i+1; end; writeln('F(',n,')= ',b); readln; end. Bµi 15 : Cho sè thùc a. lËp ch¬ng tr×nh t×m sè tù nhiªn bÐ nhÊt tho¶ m·n 1 + 1/2 + 1/3 + 1/4 + ...+1/n >a program bai15; uses crt; var i:integer; a,t:real; begin clrscr; write('a= '); readln(a); i:=1; t:=0; while t<=a do begin t:=t+1/i; i:=i+1; end; writeln('n= ',i-1); readln; end. Bµi 16 : NhËp sè m nguyªn d¬ng díi d¹ng thùc vµ liÖt kª m sè nguyªn tè ®Çu tiªn lªn mµn h×nh. program bai16; uses crt; var i,j,dem,m:integer; ngto:boolean; begin clrscr; write('m= '); readln(m); dem:=1; i:=1; writeln(m,' so nguyen to dau tien la:'); while dem<=m do begin j:=2; ngto:=true; while j<=sqrt(i) do begin if (i<>1)and((i mod j)=0) then begin ngto:=false; break; end; j:=j+1; end; if ngto=true then begin dem:=dem+1; write(i,' '); end; i:=i+1; end; readln; end. Bµi 17 : Nhập tử số và mẫu số của một phân số, tìm dạng tối giảm của phân số đó. program bai17; uses crt; var a,b,tu,mau,du:integer; begin clrscr; write('Tu= '); readln(tu); write('Mau= '); readln(mau); a:=tu; b:=mau; while b<>0 do begin.

<span class='text_page_counter'>(19)</span> du:=a mod b; a:=b; b:=du; end; writeln('Dang toi gian cua phan so ',tu,'/',mau,'= ',tu/a:0:0,'/',mau/a:0:0); readln; end. Bµi 18 : Nhập một số nguyên dơng n tính tổng các chữ số và số các chữ số của số đó. program bai18; uses crt; var tcs,socs,n:integer; begin clrscr; write('n= '); readln(n); tcs:=0; socs:=0; while n<>0 do begin tcs:=tcs+n mod 10; socs:=socs+1; n:=n div 10; end; writeln('Tong cac chu so: ',tcs); writeln('So cac chu so: ',socs); readln; end. ( Bài 10:Nhập n in ra tổng các chữ số của n: uses crt; var n,m:longint;tong:byte; BEGIN clrscr; write('Nhap n: ');readln(n); tong:=0;m:=n; while m>0 do begin tong:=tong+m mod 10; m:=m div 10; end; writeln('Tong cac chu so cua ',n,' la: ',tong); readln END.) Bµi 19 : NhËp c¸c sè nguyªn d¬ng n,m. T×m hai ch÷ sè cuèi cña n luü thõa m program bai19; uses crt; var n,m,i,t:integer; begin clrscr; write('n= '); readln(n); write('m= '); readln(m); i:=0; t:=1; while i<m do begin t:=t*n; i:=i+1; end; writeln('2 chu so cuoi cua ',n,'^',m,'= ',t mod 100); readln; end. Bài 5: Nhập vào 1 số nguyên gồm 4 chữ số -Kiểm tra tình chắn lể -kiểm tra xem có phải là số nguyên tố không -kiểm tra xem có phải là số hoàn hảo không uses crt; var n,i:integer;ok:boolean; BEGIN.

<span class='text_page_counter'>(20)</span> clrscr; write('Nhap n: ');readln(n); if n mod 2=0 then writeln('So ',n,' la so chan') else writeln('So ',n,' la so le'); if n<2 then write('So ',n,' khong la so nguyen to') else begin ok:=true; for i:=2 to trunc(sqrt(n)) do if n mod i=0 then ok:=false; if ok then writeln('So ',n,' la so nguyen to') else writeln('So ',n,' khong la so nguyen to'); end; readln END. Có thể thay câu lệnh lặp “for i:=2 to trunc(sqrt(n)) do” bằng câu lệnh while..do..khi đó ta không cần biến ok nữa. Bài 6: Nhập n,a hãy tính căn bậc n của a: uses crt; var n:integer;a,s:real; BEGIN clrscr; write('Nhap a: ');readln(a); repeat write('Nhap n: ');readln(n); until (n>0); if (n mod 2=0) and (a>=0) then begin s:=exp(1/n*ln(a)); writeln('Ket qua la: ',s:0:4); end else if (n mod 2<>0) then begin s:=exp(1/n*ln(abs(a))); writeln('Ket qua la: ',s:0:4); end else writeln('Khong xac dinh'); readln END. Bài 19: Nhập số nguyên dương n lập chương trình tính: S1= 1+3+5+7+…+(2*n+1) uses crt; var i,n,s1:integer; BEGIN clrscr; write('Nhap n: ');readln(n); s1:=0; for i:=1 to 2*n+1 do if i mod 2<>0 then s1:=s1+i; writeln('Tong S1 la: ',s1); readln END. Bài 20:Tính S2=13+23+33+…+n3 trong đó n nhập từ bàn phím. uses crt; var i,n:integer;s2:longint; BEGIN clrscr;.

<span class='text_page_counter'>(21)</span> write('Nhap so n: ');readln(n); s2:=0; for i:=1 to n do s2:=s2+i*i*i; writeln('Tong S2 la: ',s2); readln END. Bài 21:Nhập 2 số n,m sao cho m<n lập trình tính S3= Cnm = (n(n-1)…(n-m+1))/m! (Tổ hợp chập m của n) uses crt; var i,m,n,tu,mau:integer; s3:longint; BEGIN clrscr; repeat write('Nhap n: ');readln(n); until n>0; repeat write('Nhap m: ');readln(m); until (m<=n) and (m>0); tu:=1;mau:=1; for i:=n-m+1 to n do tu:=tu*i; for i:=2 to m do mau:=mau*i; s3:= tu div mau; writeln('to hop chap ',m,' cua ',n,' la: ',s3); readln END. Bài 22: Nhập số thực dương e(e<0.01) rồi tính tổng:S4=1+1/22+1/32+…+1/n2 +… (chương trình kết thúc khi 1/n2<e) uses crt; var s4,e:real;i:integer; BEGIN clrscr; repeat write('Nhap so thuc duong e<0.01: '); readln(e); until (e>0) and (e<0.01); s4:=0;i:=1; while 1/(i*i)>e do begin s4:=s4+1/(i*i); i:=i+1; end; writeln('Ket qua la: ',s4:0:4); readln END. Bài 23:Nhập số thực dương e(e<0.01) rồi tính tổng S5= 1- 1/3+1/5-1/7+…+(-1)n/(2*n+1) (dừng khi 1/(2*n+1) <e) uses crt; var s5,e:real;i:integer; BEGIN clrscr; repeat write('Nhap so thuc duong e<0.01: '); readln(e); until (e>0) and (e<0.01);.

<span class='text_page_counter'>(22)</span> s5:=1;i:=1; while 1/(2*i+1)>e do begin if i mod 2=0 then s5:=s5+1/(2*i+1) else s5:=s5-1/(2*i+1); end; writeln('ket qua la: ',s5:0:4); readln END.. i:=i+1;. Bài 25:Cho các số tự nhiên n (khai bảo longint), và cho biết: n có bao nhiêu chữ số, tổng các chữ số của n và số đảo ngược của n. VD: số 123 có 3 chữ số, tổng các chữ số bằng 6, số đảo ngược là 321 uses crt; var m,n:longint;tong,dem:byte; BEGIN clrscr; write('Nhap so n: ');readln(n); m:=n;dem:=0;tong:=0; while m>0 do begin tong:=tong+ m mod 10; dem:=dem+1; m:=m div 10; end; writeln(n,' co ',dem,' chu so va tong cac chu so cua ',n,' la: ',tong); write('So dao nguoc cua ',n,' la: '); m:=n; while m>0 do begin write(m mod 10); m:=m div 10; end; readln END..

<span class='text_page_counter'>(23)</span> VI. MẢNG Bài 1 : Lập chơng trình đọc từ bàn phím dãy n số thực rồi đếm xem có bao nhiêu số dơng, tính tổng của chúng råi ®a kÕt qu¶ ra mµn h×nh. program bai1; uses crt; var a:array[1..100]of real; dem,i,n:integer; t:real; begin clrscr; write('n= '); readln(n); dem:=0; t:=0; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>0 then begin dem:=dem+1; t:=t+a[i]; end; end; writeln('Co ',dem,' so duong & tong cua chung la: ',t:0:2); readln; end. Bµi 2 : NhËp vµo mét d·y sè thùc tèi ®a 50 ph©n tö. NhËp vµo sè nguyªn k. a. Xo¸ phÇn tö ë vÞ trÝ k trong d·y võa nhËp. b. NhËp vµo sè thùc x. ChÌn x vµo vÞ trÝ thø k. program bai2; uses crt; var i,n,k:integer; x:real; a:array[1..50]of real; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=1 to n do write(a[i]:0:2,' '); writeln; write('k= '); readln(k); for i:=k to n do a[i]:=a[i+1]; n:=n-1; writeln('a.Mang sau khi xoa di phan tu thu ',k,' la:'); for i:=1 to n do write(a[i]:0:2,' '); writeln; write('x= '); readln(x); for i:=n downto k do a[i+1]:=a[i]; a[k]:=x; n:=n+1; writeln('b.Mang sau khi chen phan tu ',x:0:2,' vao vi tri thu ',k,' la:'); for i:=1 to n do write(a[i]:0:2,' '); readln;.

<span class='text_page_counter'>(24)</span> end. Bài 3 : Nhập vào một dãy số nguyên. Hãy sắp xếp dãy số đó theo chiều tăng dần. Chèn vào dãy một số x sao cho kh«ng mÊt tÝnh t¨ng dÇn cña d·y. In d·y míi ra mµn h×nh. program bai3; uses crt; var a:array[1..100]of integer; n,i,j,tg,x:integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; writeln('Day sau khi sap xep:'); for i:=1 to n do write(a[i],' '); writeln; write('x= '); readln(x); i:=n; while (i>=1)and(a[i]>x) do begin a[i+1]:=a[i]; i:=i-1; end; a[i+1]:=x; n:=n+1; writeln('Day sau khi da chen x:'); for i:=1 to n do write(a[i],' '); readln; end. Bµi 4 : LËp ch¬ng tr×nh nhËp vµo mét d·y sè. T×m phÇn tö lín nhÊt, nhá nhÊt vµ vÞ trÝ cña nã trong d·y võa nhËp. program bai4; uses crt; var min,mini,max,maxi,i,n:integer; a:array [1..100]of integer; begin clrscr; max:=-32767; min:=maxint; maxi:=1; mini:=1; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>max then begin maxi:=i; max:=a[i]; end; if a[i]<min then begin mini:=i; min:=a[i]; end; end; writeln('Phan tu lon nhat cua day la ',max,' tai vi tri ',maxi);.

<span class='text_page_counter'>(25)</span> writeln('Phan tu nho nhat cua day la ',min,' tai vi tri ',mini); readln; end. Bµi 5 : ViÕt ch¬ng tr×nh nhËp vµo mét m¶ng sè thùc. S¾p xÕp m¶ng theo thø tù t¨ng dÇn, gi¶m dÇn. program bai5; uses crt; var i,j,n:integer; a:array[1..100]of real; tg:real; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg end; writeln('Day sau khi sap xep tang dan la:'); for i:=1 to n do write(a[i]:0:2,' '); writeln; for i:=1 to n-1 do for j:=i+1 to n do if a[i]<a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg end; writeln('Day sau khi sap xep giam dan la:'); for i:=1 to n do write(a[i]:0:2,' '); readln; end. Bài 6 : Viết chơng trình nhầp vào một dãy số, sau đó tách dãy này thành 2 dãy chứa số âm và dơng riêng biệt. Tính tổng số phần tử của mỗi dãy sau đó sắp xếp dãy dơng theo thứ tự tăng dần, dãy âm theo thứ tự giảm dần. program bai6; uses crt; var a,b,c:array[1..100] of integer; i,j,k,x,y,tg,n:integer; begin clrscr; write('n= '); readln(n); j:=0; k:=0; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>0 then begin j:=j+1; b[j]:=a[i]; end else begin k:=k+1; c[k]:=a[i]; end end; for x:=1 to j-1 do.

<span class='text_page_counter'>(26)</span> for y:=x+1 to j do if b[x]>b[y] then begin tg:=b[x]; b[x]:=b[y]; b[y]:=tg; end; writeln('Day so duong sap xep tang dan:'); for x:=1 to j do write(b[x],' '); writeln; for x:=1 to k-1 do for y:=x+1 to k do if c[x]<c[y] then begin tg:=c[x]; c[x]:=c[y]; c[y]:=tg; end; writeln('Day so am sap xep giam dan:'); for x:=1 to k do write(c[x],' '); readln; end. Bµi 7 : ViÕt ch¬ng tr×nh nhËp vµo mét d·y sè. H·y t×m phÇn tö ©m lín nhÊt vµ phÇn tö d¬ng nhá nhÊt trong mảng đó. program bai7; uses crt; var n,min,max,i:integer; a:array[1..100] of integer; begin clrscr; write('n= '); readln(n); max:=0; min:=-1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>max then max:=a[i]; if a[i]<min then min:=a[i]; end; writeln('So duong lon nhat la: ',max); writeln('So am nho nhat la: ',min); readln; end. Bµi 8 : ViÕt ch¬ng tr×nh nhËp vµo sè n<20. TÝnh vµ in ra n sè h¹ng F ( 1 ), F (2),..., F(n) cña d·y Fibonnaci, biÕt r»ng. F (1) = F (2) = 1 ; F (i) = F ( i -1) + F(i - 2) víi i > = 3 program bai8; uses crt; var n,i:integer; a:array[1..20] of integer; begin clrscr; write('n= '); readln(n); a[1]:=1; a[2]:=1; for i:=3 to n do a[i]:=a[i-1]+a[i-2]; for i:=1 to n do write(a[i],' '); readln; end. Bµi 9: Cho mét m¶ng A gåm N sè thùc. H·y tÝnh vµ in ra tæng. T1 = A1 - A2 + A3 - A 4 + .... + ( -1) N-1 AN T2 = 1/A1 - 1/A2 + 1/A3 - 1/A 4 + .... + ( -1) N-1 1/AN program bai9; uses crt;.

<span class='text_page_counter'>(27)</span> var dau,i,n:integer; t1,t2:real; a:array[1..100] of integer; begin clrscr; dau:=-1; write('n= '); readln(n); t1:=0; t2:=0; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); dau:=dau*(-1); t1:=t1+dau*a[i]; t2:=t2+dau*(1/a[i]); end; writeln('T1= ',t1:0:0); writeln('T2= ',t2:0:2); readln; end. Bµi 10 Cho m¶ng A[1...50] gåm c¸c phÇn tö tù nhiªn víi A[1] = 12m +2 . H·y tÝnh - Tæng c¸c phÇn sö chia hÕt cho 3 cña m¶ng. - Tæng c¸c c¨n bËc 2 cña c¸c phÇn tö chia cho 7 d 4. - Tích các phần tử từ thứ 20 đến thứ 22 trong mảng. program bai10; uses crt; var i:integer; t1,t2,t3:real; a:array[1..50] of integer; begin clrscr; t1:=0; t2:=0; t3:=1; for i:=1 to 50 do begin a[i]:=sqr(i)+2; if(a[i] mod 3)=0 then t1:=t1+a[i]; if(a[i] mod 7)=4 then t2:=t2+sqrt(a[i]); if(i=20)or(i=21)or(i=22) then t3:=t3*a[i]; end; writeln('Tong cac phan tu chia het cho 3 la: ',t1:0:0); writeln('Tong can bac 2 cua cac phan tu chia 7 du 4 la: ',t2:0:2); writeln('Tich cac phan tu tu thu 20 den 22 la: ',t3:0:0); readln; end. Bµi 11: NhËp vµo mét d·y n sè thùc, in d·y võa nhËp ra mµn h×nh. T×m vµ in gi¸ trÞ cña phÇn tö Max, Min và vị trí của chúng trong mảng, sau đó đổi chỗ 2 phần tử này cho nhau. IN ra dãy sau khi đổi chỗ. program bai11; uses crt; var maxi,mini,i,n:integer; max,min,tg:real; a:array[1..100]of real; begin clrscr; write('n= '); readln(n); max:=-32767; min:=maxint; maxi:=1; mini:=1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>max then begin max:=a[i]; maxi:=i; end; if a[i]<min then begin min:=a[i]; mini:=i; end; end;.

<span class='text_page_counter'>(28)</span> for i:=1 to n do write(a[i]:0:2,' '); writeln; writeln('Phan tu max la: ',max:0:2,' o vi tri: ',maxi); writeln('Phan tu min la: ',min:0:2,' o vi tri: ',mini); writeln('Sau khi doi cho 2 phan tu max & min:'); tg:=a[maxi]; a[maxi]:=a[mini]; a[mini]:=tg; for i:=1 to n do write(a[i]:0:2,' '); readln; end. Bµi 12. Cho hai dãy số a1,...,an và b1 ,...., bm cả hia đều sắp xếp theo thứ tự tăng dần. Lập chơng trình để từ hai dãy trên xây dựng một dãy mới cũng theo thứ tự tăng. program bai12; uses crt; var a,b,c:array[1..100] of integer; tg,n,i,j,k,m:integer; begin clrscr; write('n= '); readln(n); k:=1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); c[k]:=a[i]; k:=k+1; end; write('m= '); readln(m); for i:=1 to m do begin write('B[',i,']= '); readln(b[i]); c[k]:=b[i]; k:=k+1; end; k:=k-1; for i:=1 to k-1 do for j:=i+1 to k do if c[i]>c[j] then begin tg:=c[i]; c[i]:=c[j]; c[j]:=tg; end; for i:=1 to k do write(c[i],' '); readln; end. Bµi 13. Cho hai d·y sè a1,...,an . LËp ch¬ng tr×nh in c¸c sè ©m trªn mét dßng, c¸c sè d¬ng trªn dßng tiÕp theo . program bai13; uses crt; var i,j,k,n:integer; a,b,c:array[1..100] of integer; begin clrscr; write('n= '); readln(n); j:=1; k:=1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>0 then begin b[j]:=a[i]; j:=j+1; end else if a[i]<0 then begin.

<span class='text_page_counter'>(29)</span> c[k]:=a[i]; k:=k+1; end; end; for i:=1 to j-1 do write(b[i],' '); writeln; for i:=1 to k-1 do write(c[i],' '); readln; end. Bµi 14: NhËp vµo mét d·y n sè thùc, in d·y võa nhËp ra mµn h×nh. T×m vµ in gi¸ trÞ cña phÇn sö Max, Min vµ vị trí của chúng trong mảng, sau đó đổi chỗ 2 phần tử này cho nhau. In ra dãy sau khi đổi chỗ. program bai14; uses crt; var maxi,mini,i,n:integer; max,min,tg:real; a:array[1..100]of real; begin clrscr; write('n= '); readln(n); max:=-32767; min:=maxint; maxi:=1; mini:=1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]>max then begin max:=a[i]; maxi:=i; end; if a[i]<min then begin min:=a[i]; mini:=i; end; end; for i:=1 to n do write(a[i]:0:2,' '); writeln; writeln('Phan tu max la: ',max:0:2,' o vi tri: ',maxi); writeln('Phan tu min la: ',min:0:2,' o vi tri: ',mini); writeln('Sau khi doi cho 2 phan tu max & min:'); tg:=a[maxi]; a[maxi]:=a[mini]; a[mini]:=tg; for i:=1 to n do write(a[i]:0:2,' '); readln; end. Bµi 15 : NhËp vµo mét d·y n sè nguyªn. In ra c¸c sè chia hÕt cho 3 trªn mét dßng, c¸c sè cßn l¹i th× in trªn dßng tiÕp theo. Dßng thø 3 in tÊt c¶ c¸c phÇn tö cña d·y trªn. program bai15; uses crt; var i,j,k,n:integer; a,b,c:array[1..100] of integer; begin clrscr; write('n= '); readln(n); j:=1; k:=1; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if(a[i] mod 3)=0 then begin b[j]:=a[i]; j:=j+1; end else begin.

<span class='text_page_counter'>(30)</span> c[k]:=a[i]; k:=k+1; end; end; for i:=1 to j-1 do write(b[i],' '); writeln; for i:=1 to k-1 do write(c[i],' '); writeln; for i:=1 to n do write(a[i],' '); readln; end. Bµi 16 : NhËp vµo d·y sè nguyªn, ®a sè nhá nhÊt vÒ ®Çu d·y, c¸c sè cßn l¹i s¾p xÕp theo chiÒu gi¶m dÇn. program bai16; uses crt; var i,j,tg,n,min,mini:integer; a:array[1..50]of integer; begin clrscr; write('n= '); readln(n); min:=maxint; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if a[i]<min then begin mini:=i; min:=a[i]; end; end; tg:=a[1]; a[1]:=a[mini]; a[mini]:=tg; for i:=2 to n-1 do for j:=i+1 to n do if a[i]<a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; for i:=1 to n do write(a[i],' '); readln; end. Bµi 17 : ViÕt ch¬ng tr×nh nhËp vµo m¶ng nguyªn A kh«ng qu¸ 50 phÇn tö vµ sè x. a. §a ra th«ng b¸o cã phÇn tö nµo trong m¶ng cã gi¸ trÞ b»ng x kh«ng. Trong m¶ng cã bao nhiªu phÇn tử có giá trị = x, hãy chỉ ra các vị trí trong mảng của các phần tử đó. b. Lo¹i khái m¶ng A c¸c phÇn tö cã gi¸ trÞ b»ng x. program bai17; uses crt; var dem,i,j,k,m,n,x:integer; a,b:array[1..50]of integer; co:boolean; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; write('x='); readln(x); i:=n; co:=false; dem:=0; j:=1; while i>0 do begin if a[i]=x then begin.

<span class='text_page_counter'>(31)</span> co:=true; dem:=dem+1; b[j]:=i; j:=j+1; for k:=i to n-1 do a[k]:=a[k+1]; n:=n-1; end; i:=i-1; end; if not co then writeln('Khong co phan tu nao co gia tri = ',x) else begin writeln('Co ',dem,' phan tu co gia tri = ',x,' tai cac vi tri:'); for m:=1 to dem do write(b[m],' '); writeln; end; writeln('Sau khi loai bo cac phan tu tren ta duoc mang sau:'); for i:=1 to n do write(a[i],' '); readln; end. Bµi 18: NhËp mét d·y sè nguyªn : a. §Õm c¸c sè n»m trong ®o¹n [ 50, 100 ] b. §Õm xem cã bao nhiªu sè b»ng sè lín nhÊt. c. TÝnh tæng c¸c sè vµ trung b×nh céng cña c¸c sè ch½n. d. TÝnh trung b×nh cña c¸c sè thuéc ®o¹n [ 20, 200 ] e. S¾p c¸c sè lÎ lªn d·y ®Çu, c¸c sè ch½n xuèng cuèi d·y. program bai18; uses crt; var i,min,max,n:integer; a:array[1..50] of integer; begin clrscr; write('n= '); readln(n); min:=maxint; max:=-32768; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if (a[i] mod 2)=0 then begin if a[i]<min then min:=a[i]; end else if a[i]>max then max:=a[i]; end; writeln('Min so chan la: ',min); writeln('Max so le la: ',max); readln; end. Bµi 20: NhËp vµo d·y sè a1 , .... . an . TÝnh tæng tÊt c¶ c¸c phÇn tö cña d·y mµ : a. lµ sè ch½n vµ kh«ng ©m ;b. Tho¶ m·m ®iÒu kiÖn |a1| < i2 program bai20; uses crt; var n,i,t1,t2:integer; a:array[1..50]of integer; begin clrscr; write('n= '); readln(n); t1:=0; t2:=0; for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); if((a[i] mod 2)=0)and(a[i]>0) then t1:=t1+a[i];.

<span class='text_page_counter'>(32)</span> if abs(a[i])<sqr(i) then t2:=t2+a[i] end; writeln('Tong cac so chan khong am la: ',t1); writeln('Tong cac so thoa man |A[i]|<i^2 la: ',t2); readln; end. Bài 21: Lập trình đọc vào từ bàn phím n số nguyên từ bàn phím a. Xo¸ c¸c sè ch½n vµ chia hÕt cho 3 cã trong d·y b. Xo¸ c¸c sè lÎ thuéc [ 10, 30 ] §a ba d·y ra mµn h×nh. program bai21; uses crt; var n,i,j:integer; a:array[1..50]of integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=1 to n do write(a[i],' '); writeln; i:=n; while i>=1 do begin if((a[i] mod 2)=0)and((a[i] mod 3)=0) then begin for j:=i to n-1 do a[j]:=a[j+1]; n:=n-1; end; i:=i-1; end; writeln('Day sau khi loai cac so chan chia het cho 3'); for i:=1 to n do write(a[i],' '); writeln; i:=n; while i>=1 do begin if(a[i]>=10)and(a[i]<=30)and((a[i] mod 2)=1) then begin for j:=i to n-1 do a[j]:=a[j+1]; n:=n-1; end; i:=i-1; end; writeln('Day sau khi loai cac so le thuoc [10,30]:'); for i:=1 to n do write(a[i],' '); readln; end. Bài 22 : Lập trình đọc vào từ bàn phím một dãy số nguyên a. S¾p xÕp d·y theo thø tù sau : §Çu d·y lµ c¸c sè ch½n chia hÕt cho 3, cuèi d·y lµ c¸c sè lÎ chia hÕt cho 5. ®o¹n gi÷a lµ c¸c sè cßn l¹i. b. §a ra mµn h×nh c¸c sè vµ vÞ trÝ cña nã trong d·y tho¶ m·n ®iÒu kiÖn : lÎ vµ chia hÕt cho 7 . program bai22; uses crt; var tg,i,dem,j,n,vtri:integer; co:boolean; a:array[1..50]of integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end;.

<span class='text_page_counter'>(33)</span> for i:=1 to n do write(a[i],' '); writeln; for i:=1 to n-1 do for j:=i+1 to n do begin if((a[j] mod 2)=0)and((a[j] mod 3)=0) then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; end; for i:=1 to n-1 do for j:=i+1 to n do begin if((a[i] mod 2)=1)and((a[i] mod 5)=0) then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; end; writeln('Day sau khi sap xep kieu a:'); for i:=1 to n do write(a[i],' '); writeln; co:=false; for i:=1 to n do if ((a[i] mod 2)=1)and((a[i] mod 7)=0) then begin dem:=dem+1; vtri:=i; co:=true; end; if co then begin writeln('Co ',dem,' so le chia het cho 7 o vi tri thu ',vtri); end else writeln('Day khong chua so le nao chia het cho 7!'); readln; end. Bài 23 : Lập trình đọc vào từ bàn phím một dãy n số nguyên ( n>3) a. §äc mét sè nguyªn x, thay gi¸ trÞ cña sè thø 3 b»ng x b, Thay tÊt c¶ c¸c sè ©m b»ng sè 0 . c, §Õm sè phÇn tö b¶n th©n lµ sè ch½n, chØ sè lµ sè lÎ. d. LËp tr×nh nhËp vµo sè nguyªn d¬ng N, In ra biÓu diÔn nhÞ ph©n cña N. program bai23; uses crt; var i,j,n,x,dem:integer; a:array[1..50] of integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; write('x= '); readln(x); a[3]:=x; for i:=1 to n do write(a[i],' '); writeln; for i:=1 to n do if a[i]<0 then a[i]:=0; for i:=1 to n do write(a[i],' '); writeln; dem:=0; for i:=1 to n do.

<span class='text_page_counter'>(34)</span> if ((i mod 2)=1)and((a[i] mod 2)=0) then dem:=dem+1; writeln('Co ',dem,' phan tu ban than la so chan, chi so la le'); write('n= '); readln(n); write('Bieu dien nhi phan cua ',n,' la: '); i:=1; while n>0 do begin a[i]:=n mod 2; n:=n div 2; i:=i+1; end; for j:=i-1 downto 1 do write(a[j]); readln; end. Bài 24: Viết phơng trình nhập vào số nguyên dơng cho đến khi nào số 99999 đợc nhập vào thì kết thúc và cho biÕt. a. Số phân tử đã nhập . b. Sè c¸c phÇn t chia hÕt cho 2 vµ cho 5. c. Sè c¸c phÇn tö lµ sè nguyªn tè. program bai24; uses crt; var j,d1,d2,d3,i:integer; x:longint; ngto:boolean; begin clrscr; x:=maxint; j:=1; while (x>0)and(x<>99999) do begin write('A[',j,']= '); readln(x); d1:=d1+1; if ((x mod 2)=0)and((x mod 5)=0) then d2:=d2+1; ngto:=true; for i:=2 to round(sqrt(x)) do if (x mod i)=0 then begin ngto:=false; break; end; if ngto then d3:=d3+1; j:=j+1; end; writeln('So phan tu da nhap: ',d1-1); writeln('So phan tu chia het cho 2 & 5 la: ',d2); writeln('So phan tu la so nguyen to: ',d3); readln; end. Bµi 25: NhËp mét d·y sè thùc a. H·y thùc hiÖn c«ng viÖc lo¹i bá sau : c¸c phÇn tö trïng nhau trong d·y chØ gi÷ l¹i mét . program bai25; uses crt; var i,j,n:integer; a:array[1..50] of integer; begin clrscr; write('n= '); readln(n); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; for i:=1 to n do write(a[i],' '); writeln; i:=1; while i<n do.

<span class='text_page_counter'>(35)</span> begin j:=i+1; while j<=n do begin if a[j]=a[i] then begin if j<>n then a[j]:=a[j+1]; n:=n-1; j:=j-1; end; j:=j+1; end; i:=i+1; end; for i:=1 to n do write(a[i],' '); writeln; readln; end. Bài 27: Cho mảng Amxn các số thực đợc nhập từ bàn phím . Hãy a. Tính tổng các căn bậc hai của trị tuyệt đối của các phần tử > 3 hoặc không lớn hơn -1 b. Tính tổng các phần nguyên của các phần tử có trị tuyệt đối > 1. Bài 29: Viết phơng trình nhận vào mảng A các số nguyên với các dòng đợc đánh số từ 1...7 và các cột đợc đánh số từ 1... 14 trong đó [i, j ] = i * j a. TÝnh tæng c¸c phÇn tö ë cét 3. b. TÝnh tæng c¸c c¨n bËc 2 cña c¸c phÇn tö ë dßng 5. c. TÝnh tæng c¸c phÇn tö ë c¸c dßng 2,4,6. d. T×m phÇn tö bÐ nhÊt cña c¸c hµng program bai27; uses crt; var i,j,m,n:integer; t1,t2:real; a:array[1..50,1..50]of real; begin clrscr; write('m= '); readln(m); write('n= '); readln(n); for i:=1 to m do for j:=1 to n do begin write('A[',i,',',j,']= '); readln(a[i,j]); end; t1:=0; t2:=0; for i:=1 to m do begin for j:=1 to n do write(a[i,j]:0:2,' '); if(a[i,j]>3)or(a[i,j]<-1) then t1:=t1+sqrt(abs(a[i,j])); if abs(a[i,j])>1 then t2:=t2+round(a[i,j]); writeln; end;; writeln('a. Tong can bac 2 cua tri tuyet doi cua cac phan tu >3 hoac <-1 la: ',t1:0:2); writeln('b. Tong cac phan nguyen cua cac phan tu co tri tuyet doi >1 la: ',t2:0:2); readln; end. Bài 24: Lập chương trình để nhập vào 4 dãy số a1,..,an;b1,…bn;c1,…,cn;d1,…,dn. Sau đó in ra kết quả n dòng 6 giá trị theo mẫu sau: Ai bi ci di max(ai,bi,ci,di) min(ai,bi,ci,di) Lời giải: uses crt; var a,b,c,d:array[1..1000]of integer; n,max,min,i:integer; BEGIN clrscr;.

<span class='text_page_counter'>(36)</span> write('Nhap n: ');readln(n); for i:=1 to n do begin write('Nhap A[',i,']: '); readln(a[i]); write('Nhap B[',i,']: '); readln(b[i]); write('Nhap C[',i,']: '); readln(c[i]); write('Nhap D[',i,']: '); readln(d[i]); end; for i:=1 to n do begin write(a[i],' ',b[i],' ',c[i],' ',d[i],' '); max:=a[i];min:=a[i]; if b[i]>max then max:=b[i]; if c[i]>max then max:=c[i]; if d[i]>max then max:=d[i]; write(max,' '); if b[i]<min then min:=b[i]; if c[i]<min then min:=c[i]; if d[i]<min then min:=d[i]; writeln(min); end; readln END. Bài 26: Nhập số nguyên dương n và dãy số a1,a2,…,an hãy in ra max, min dãy đó Lời giải: uses crt; var n,i,max,min:integer; a:array[1..1000] of integer; BEGIN clrscr; repeat write('Nhap so nguyen duong n: '); readln(n); until (n>0) and (n<=1000); for i:=1 to n do begin write('Nhap A[',i,']: '); readln(a[i]); end; max:=a[1];min:=a[1]; for i:=2 to n do begin if a[i]>max then max:=a[i]; if a[i]<min then min:=a[i]; end; writeln('Max cua day so la: ',max); writeln('Min cua day so la: ',min); readln END. Bài 27:.

<span class='text_page_counter'>(37)</span> Nhập số nguyên dương n và dãy số a1,a2,…,an. Hãy sắp xếp dãy đó tăng dần và in dãy đã được sắp xếp ra màn hình. Lời giải: uses crt; var n,i,j,tg:integer; a:array[1..1000]of integer; BEGIN clrscr; repeat write('Nhap so nguyen duong n: '); readln(n); until (n>0) and (n<1000); for i:=1 to n do begin write('Nhap A[',i,']: ');readln(a[i]); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; writeln('Day sau khi duoc sap xep la: '); for i:=1 to n do write(a[i]:4); readln END..

<span class='text_page_counter'>(38)</span> VII. X©u Bµi 1: LËp ph¬ng tr×nh nhËp mét x©u tõ bµn phÝm. a. §Õm sè tõ cã trong x©u võa nhËp. b. In mçi tõ trªn mét dßng. VD: HA NOI -> HA NOI. Bµi 2: NhËp vµo mét x©u kh«ng qu¸ 80 ký tù tõ bµn phÝm. LËp tr×nh thùc hiÖn c«ng viÖc sau : - Chuyển xâu đó thành xâu chữ hoa. - Chuyển xâu đó thành xâu chữ thờng. - Các kỹ tự thờng trong xâu cũ đợc chuyển thành hoa và ngợc lại. Bµi 3: Nhập vào 2 xâu. Kiểm tra 2 xâu đó bằng nhau không. Nếu không thì thông báo vị trí khác nhau đầu tiªn. Bµi 4: Viết phơng trình nhập vào một xâu.Kiểm tra xem xâu đó có phải là xâu đối xứn hay không? Bµi 5: ViÕt ph¬ng tr×nh nhËp 2 x©u. H·y ghÐp 2 x©u l¹i thµnh 1 x©u míi. Bµi 6: LËp ph¬ng tr×nh vµo mét d·y ký tù. TÝnh sè lÇn xuÊt hÖn cña mçi ký tù trong x©u võa nhËp. Bµi 7: Nhập vào một xâu ký tự. Hãy chuẩn hoá xâu ký tự đó ( giữa mỗi từ chỉ có 1 dấu cách, tất cả viết thành chữ thờng, đầu xâu và cuối xâu không có dấu cách) Đếm số từ có trong xâu đó. Bµi 8: NhËp vµo mét x©u v¨n b¶n. ViÕt ch¬ng tr×nh thay tÊt c¶ c¸c ký tù 'a' trong x©u = ký tù 'b' vµ t×m sè lÇm xuất hiện của ký tự a trong xâu đó. Bµi 9: Nhập vào một xâu. Viết phơng trình hiển thị xâu đó chạy từ trái sang phải, từ phải sang trái. Bµi 10: Viết phơng trình đọc vào xâu , sau đó nhập vào một ký tự bất kỳ. Hãy kiểm tra xem trong xâu có bao nhiêu ký tự vừa nhập vào. Xoá tất cả các ký tự đó. Bµi 11: Lập chơng trình đọc vào một xâu v ăn bản, chèn vào vị trí thứ i trong xâu đó một xâu mới. Đa xâu v¨n b¶n sau khi chÌn ta mµn h×nh ( vÞ trÝ i vµ x©u chÌm thªm nhËp tõ bµn phÝm ) Bµi 12:.

<span class='text_page_counter'>(39)</span> LËp ch¬ng tr×nh nhËp mét x©u tõ bµn phÝm. KiÓm tra vµ ®a ra th«ng b¸o x©u nµy cã ph¶i lµ x©u chuÈn bÞ kh«ng. In x©u theo thø tù ngîc l¹i. Bµi 13: Lập chơng trình nhập vào một xâu gồm họ và tên . Đa ra màn hình họ, tên, họ đệm ( nếu có ) dới dạng : Họ ..... Tên ...... Họ đệm... ..... Bµi 14: LËp tr×nh thùc hiÖn c«ng viÖc sau a. NhËp mét x©u st kh«ng qu¸ 80 ký tù tõ bµn phÝm. §a x©u võa nhËp ra mµn h×nh. b. Nhập 2 số nguyên n, m từ bàn phím . Kiểm tra nếu n khác m và 1 ≤ n , m ≤ length(st) thì đổi chỗ hai ký tự thứ n và m cho nhau. Đa xâu sau khi đổi chỗ ra màn hình. Bµi 15: LËp ch¬ng tr×nh nhËp vµo mét x©u ký tù. a, §a x©u vÒ d¹ng chuÈn b. NhËp vµo sè nguyªn k, ®a ra mµn h×nh tõ thø cã k trong x©u. c. Xoá tất cả các từ bằng tự thứ k vừa tìm đợc . Đếm số từ vừa bị xoá . Đa xâu sau khi xoá ra màn h×nh. VII.XÂU Bài 1: program bai1; uses crt; var s:string; i,dem:integer; begin clrscr; write('S= '); readln(s); s:=' '+s; dem:=0; for i:=1 to length(s) do begin if (s[i]=' ')and(s[i+1]<>' ') then dem:=dem+1; if s[i]<>' ' then write(s[i]) else if (s[i-1]<>' ')and(i<>1) then writeln; end; writeln; writeln('Co tong cong ',dem,' tu'); readln; end. Bài 2: program bai2; uses crt; var s,s1:string[80]; i:integer; begin clrscr; write('S= '); readln(s); s1:=s; for i:=1 to length(s) do.

<span class='text_page_counter'>(40)</span> s[i]:=upcase(s[i]); writeln(s); for i:=1 to length(s) do if (ord(s[i])>=65)and(ord(s[i])<=90) then s[i]:=chr(ord(s[i])+32); writeln(s); for i:=1 to length(s1) do if (ord(s1[i])>=97)and(ord(s1[i])<=122) then s1[i]:=upcase(s1[i]) else if (ord(s1[i])>=65)and(ord(s1[i])<=90) then s1[i]:=chr(ord(s1[i])+32); writeln(s1); readln; end. Bài 3: program bai3; uses crt; var s1,s2:string; i:integer; giong:boolean; begin clrscr; write('S1= '); readln(s1); write('S2= '); readln(s2); giong:=true; if length(s1)<>length(s2) then writeln('2 xau co do dai # nhau') else begin for i:=1 to length(s1) do if s1[i]<>s2[i] then begin giong:=false; writeln('2 xau # nhau o vi tri thu ',i); break; end; if giong then writeln('2 xau giong nhau'); end; readln; end. Bài 4: program bai4; uses crt; var s:string; i,n:integer; dxung:boolean; begin clrscr;.

<span class='text_page_counter'>(41)</span> write('S= '); readln(s); n:=length(s); dxung:=true; for i:=1 to n div 2 do if s[i]<>s[n-i+1] then begin dxung:=false; writeln('Xau khong doi xung'); break; end; if dxung then writeln('Xau doi xung'); readln; end. Bài 5: program bai5; uses crt,strings; var s,s1,s2:string; begin clrscr; write('S1= '); readln(s1); write('S2= '); readln(s2); s:=s1+s2; writeln(s); readln; end. Bài 6: program bai6; uses crt; var i,j,n:integer; dem:array[1..255]of integer; s:string; exist:boolean; begin clrscr; write('S= '); readln(s); n:=length(s); for i:=1 to n do begin dem[i]:=0; for j:=1 to n do if s[i]=s[j] then dem[i]:=dem[i]+1; end; for i:=1 to n do begin exist:=false; if i<>1 then.

<span class='text_page_counter'>(42)</span> for j:=1 to i-1 do if s[i]=s[j] then begin exist:=true; break; end; if not exist then writeln('"',s[i],'"',': ',dem[i]); end; readln; end. Bài 7: program bai7; uses crt; var s:string; i,dem:integer; begin clrscr; write('S= '); readln(s); s:=' '+s+' '; i:=1; dem:=0; while i<length(s)do begin if(s[i]=' ')and(s[i+1]=' ')then begin delete(s,i,1); dec(i); end; if(s[i]=' ')and(s[i+1]<>' ')then dem:=dem+1; if(s[i]>='A')and(s[i]<='Z')then s[i]:=chr(ord(s[i])+32); inc(i); end; s:=copy(s,2,length(s)-2); writeln('Xau da chuan hoa: "',s,'"'); writeln('Xau tren co ',dem,' tu'); readln; end. Bài 8: program bai8; uses crt; var dem,i:integer; s:string; begin clrscr; write('S= '); readln(s); dem:=0; for i:=1 to length(s) do.

<span class='text_page_counter'>(43)</span> if s[i]='a' then begin dem:=dem+1; s[i]:='b'; end; writeln('Co tat ca ',dem,' ki tu a trong xau tren'); writeln(s); readln; end. Bài 9: program bai9; uses crt; var s:string; i,n:integer; begin clrscr; write('s= '); readln(s); n:=80-length(s); for i:=1 to n do begin clrscr; write(s:i); delay(100); end; for i:=n downto 1 do begin clrscr; write(s:i); delay(100); end; readln; end. Bài 10: program bai10; uses crt; var s:string; ch:char; i,dem:integer; begin clrscr; write('s= '); readln(s); write('ch= '); readln(ch); i:=1; dem:=0; while i<=length(s) do begin if s[i]=ch then begin dem:=dem+1;.

<span class='text_page_counter'>(44)</span> delete(s,i,1); dec(i); end; inc(i); end; writeln('Co tat ca ',dem,' ki tu ',ch,' trong xau tren'); writeln(s); readln; end. Bài 11: program bai11; uses crt; var s,s1:string; i:integer; begin clrscr; write('s= '); readln(s); write('Vi tri can chen la: '); readln(i); write('Xau moi muon chen vao la: '); readln(s1); insert(s1,s,i); writeln(s); readln; end. Bài 12: program bai12; uses crt; var s,s1:string; i:integer; chuan:boolean; begin clrscr; write('s= '); readln(s); s1:=s; s:=' '+s+' '; i:=1; chuan:=true; while chuan and (i<length(s)) do begin if(s[i]=' ')and(s[i+1]=' ')then begin chuan:=false; break; end; if(s[i]>='A')and(s[i]<='Z')then begin chuan:=false; break; end;.

<span class='text_page_counter'>(45)</span> inc(i); end; if chuan then writeln('Day la 1 xau chuan') else writeln('Xau tren khong phai la 1 xau chuan'); for i:=length(s) downto 1 do write(s1[i]); readln; end. Bài 13: program bai13; uses crt; var s,ho,tendem,ten:string; dem,i,j,k,d:integer; begin clrscr; write('Ho & ten: '); readln(s); s:=' '+s+' '; dem:=0; for i:=1 to length(s)-1 do if(s[i]=' ')and(s[i+1]<>' ')then inc(dem); i:=1; j:=1; while i<(length(s)-1)do begin if(s[i]=' ')and(s[i+1]<>' ')then begin inc(i); if j=1 then begin d:=i; while s[i]<>' 'do inc(i); ho:=copy(s,d,i-d); end; if j=2 then d:=i; if j<dem then begin while s[i]<>' 'do inc(i); tendem:=copy(s,d,i-d); end; if j=dem then begin d:=i; while s[i]<>' 'do inc(i); ten:=copy(s,d,i-d); end; inc(j);.

<span class='text_page_counter'>(46)</span> end else inc(i); end; write('Ho: "',ho,'" '); write('Ten: "',ten,'" '); writeln('Ho dem: "',tendem,'"'); readln; end. Bài 14: program bai14; uses crt; var tg:char; s:string[80]; m,n:byte; begin clrscr; write('s= '); readln(s); writeln(s); write('n= '); readln(n); write('m= '); readln(m); if(n<>m)and(1<=n)and(1<=m)and(n<length(s))and(m<length(s))then begin tg:=s[n]; s[n]:=s[m]; s[m]:=tg; end; writeln(s); readln; end. Bài 15: program bai15; uses crt; var s,s1,tu:string; i,j,c,dem,k:integer; begin clrscr; write('S= '); readln(s); s:=' '+s+' '; i:=1; dem:=0; while i<length(s)do begin if(s[i]=' ')and(s[i+1]=' ')then begin delete(s,i,1); dec(i); end;.

<span class='text_page_counter'>(47)</span> if(s[i]=' ')and(s[i+1]<>' ')then dem:=dem+1; if(s[i]>='A')and(s[i]<='Z')then s[i]:=chr(ord(s[i])+32); inc(i); end; s1:=s; s:=copy(s,2,length(s)-2); writeln('Xau da chuan hoa: "',s,'"'); j:=0; write('k= '); readln(k); for i:=1 to length(s)-1 do if (s1[i]=' ')and(s[i+1]<>' ')then begin inc(j); if j=k then begin c:=i+1; while s[c]<>' 'do inc(c); if j=dem then tu:=copy(s1,i+1,c-i-1) else tu:=copy(s1,i+1,c-i); end; end; writeln('Tu thu ',k,' trong xau la: "',tu,'"'); dem:=0; while pos(tu,s)<>0 do begin delete(s,pos(tu,s),length(tu)); inc(dem); end; writeln('Co ',dem,' tu ',tu,' trong xau'); writeln('Xau sau khi bi xoa het cac tu ',tu,' la: "',s,'"'); readln; end. VIII. Ch¬ng tr×nh CON Bµi 1: ViÕt hµm tÝnh gi¸ trÞ : F (x) = 1 +x + x2 + x3 + x4 + x5 Sau đó nhập vào 4 số a,b,c,d. Tính tổng F(a) + F ( b) + F (c) + F ( d) Bµi 2: Viết chơng trình con tìm USCLN của hai số nguyên dơng. Sử dụng để tính USCLN của 4 số nguyên dơng a,b,c,d nhập từ bàn phím. Bµi 3: Cho hµm : ¿ ∫ ( x , y )=|a − b|.(a+ b) ¿ Trong đó : a = x sin ( x+2)+5 khi x > 100 ¿ khi x ≤ 100 √3 2 x +3 b = phÇn nguyªn cña y -> modf ( y&b) a. LËp ch¬ng tr×nh con tÝnh gi¸ trÞ hµm f(x) víi x,y lµ sè thùc nhËp tõ bµn phÝm. b. LËp ch¬ng tr×nh tÝnh f( 2,3,14).

<span class='text_page_counter'>(48)</span> ( sö dông hµm k = modf ( x&y) víi x,y,k thuéc kiÓu double- t¸ch sè nguyªn x thµnh 2 phÇn: phÇn nguyªn y vµ thËp ph©n k) Bài 4: a. Lập chơng trình con chèm thêm một phần tử vào mảng các số thực đã đợc sắp xếp. b.Lập chơn trình trộn hai mảng số thực đã sắp xếp thành một mnảg số tứuc đã sắp xếp. Bµi 5: a. ViÕt hµm tÝnh gi¸ trÞ. F (x) = 1 + sin (x) + sin2 (x) +sin3 (x) + ...+ sin50 (x) b. LËp ph¬ng tr×nh nhËp vµo 4 sè a,b,c,d. TÝnh tæng F (a) +F (b) +F (c) +F (d) Bµi 6: NhËp vµo sè tù nhiªn n a. LËp ph¬ng tr×nh con kiÓm tra mét sè cã ph¶i lµ sè nguyªn tè hay kh«ng? b. T×m tæng tÊt c¶ c¸c sè nguyªn tèt nhá h¬n n. Bµi 7: NhËp vµo sè tù nhiªn n a. LËp ch¬ng tr×nh con kiÓm tra xem, n, m cã nguyªn tè cïng nhau hay kh«ng. ? b. LËp ph¬ng tr×nh kiÓm kª c¸c sè bÐ h¬n n vµ nguyªn tè cïng nhau víi n. Bµi 8: Một số nguyên dơng đợc gọi là đối xứng nếu chữ số thứ nhất bằng chữ số cuối cùng, chữ số thứ hai b»ng ch÷ sè gÇn cuèi. a. Lập chơng trình con kiểm tra tính đối xứng của một số nguyên dơng. b. LËp ch¬ng tr×nh nhËp vµo c¸c sè nguyªn d¬ng , n, m . Liệt kê các đối xứng nằm giữa n và m. Bµi 9: Cho hµm sè. |15 x − cos(2 x)| 5 √ x+5. {. 2. + log 3 (x +1) Khi -10 < x < 10 ❑ Trêng hîp cßn l¹i. a. NhËp ch¬ng tr×nh con tÝnh hµm f (x) b. NhËp mét sè a tõ bµn phÝm. TÝnh vµ ®a ra mµn h×nh gi¸ trÞ f ( a) Bµi 10 : a. LËp ch¬ng tr×nh con tÝnh giai thõa cña 1 sè n bÊt kú. b. Sử dụng chơng trình con để tính giá trị của biểu thức sau : n! +m! ( n+m) Bµi 11 : LËp ch¬ng tr×nh thùc hiÖn c¸c c«ng viÖc sau : a. LËp ph¬ng tr×nh cã tÝnh giai ®o¹n thõa cña mét sè n bÊt kú. b. Sử dụng chơng trình con để tính giá trị của biểu thức sau s = 1 +2! +3! +... +n! Bµi 12. LËp ph¬ng tr×nh thùc hiÖn c«ng viÖc sau : a. ViÕt ph¬ng tr×nh con t×m gi¸ trÞ lín nhÊt cña hai sè x, y bÊt kú. b. Sử dụng chơng trình con trên để tìm giá trị lớn nhất của 4 số a, b, c, d nhập từ bàn phím VIII.CHƯƠNG TRÌNH CON Bài 1: program bai1; uses crt; var a,b,c,d:integer; t:longint; function f(x:integer):longint; var i,j:integer; lt,t:longint; begin t:=1; for i:=1 to 5 do begin lt:=1; for j:=1 to i do lt:=lt*x; t:=t+lt;. ∫ ( x).

<span class='text_page_counter'>(49)</span> end; f:=t; end; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); write('c= '); readln(c); write('d= '); readln(d); t:=f(a)+f(b)+f(c)+f(d); writeln('F(',a,')+F(',b,')+F(',c,')+F(',d,')= ',t); readln; end. Bài 2: program bai2; uses crt; var uc1,uc2,uc,a,b,c,d:integer; function ucln(a,b:integer):integer; var du:integer; begin while b<>0 do begin du:=a mod b; a:=b; b:=du; end; ucln:=a; end; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); write('c= '); readln(c); write('d= '); readln(d); uc1:=ucln(a,b); uc2:=ucln(c,d); uc:=ucln(uc1,uc2); writeln('UCLN: ',uc); readln; end. Bài 3: program bai3; uses crt; var.

<span class='text_page_counter'>(50)</span> x,y:real; function modf(x:real;var y:real):real; begin y:=int(x); modf:=frac(x); end; function f(x,y:real):real; var a,b:real; begin if x>100 then a:=x*sin(x+2)+5 else a:=exp(1/3*ln(2*x+3)); modf(y,b); f:=abs(a-b)*(a+b); end; begin clrscr; write('x= '); readln(x); write('y= '); readln(y); writeln('F(x,y)= ',f(x,y):0:2); writeln('F(2,3.14)= ',f(2,3.14):0:2); readln; end. Bài 4: program bai4; uses crt; type mang=array[1..50]of real; var a,b:mang; m,n,i,j:integer; x:real; procedure nhap(var a:mang;n:integer); begin for i:=1 to n do begin write('Mang[',i,']= '); readln(a[i]); end; end; procedure hienthi; begin for i:=1 to n do write(a[i]:8:2); writeln; end; procedure sapxep; var tg:real; begin for i:=1 to n-1 do.

<span class='text_page_counter'>(51)</span> for j:=i+1 to n do if a[i]>a[j] then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; end; procedure chen(x:real); var i,j:integer; begin if x>a[n] then begin inc(n); a[n]:=x; exit; end; i:=n-1; while(a[i]>=x)and(i>=1) do dec(i); inc(i); for j:=n downto i do a[j+1]:=a[j]; a[i]:=x; inc(n); end; begin clrscr; write('So phan tu cua mang A la: '); readln(n); nhap(a,n); sapxep; hienthi; write('Phan tu can chen vao mang x= '); readln(x); chen(x); hienthi; write('So phan tu cua mang B la: '); readln(m); nhap(b,m); for i:=1 to m do chen(b[i]); writeln('Mang A sau khi chen mang B vao:'); hienthi; readln; end. Bài 5: program bai5; uses crt; function f(x:integer):real; var t,tam:real; i,j:integer; begin.

<span class='text_page_counter'>(52)</span> t:=1; for i:=1 to 50 do begin tam:=1; for j:=1 to i do tam:=tam*sin(x); t:=t+tam; end; f:=t; end; var a,b,c,d:integer; t:real; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); write('c= '); readln(c); write('d= '); readln(d); t:=f(a)+f(b)+f(c)+f(d); writeln('F(a)+F(b)+F(c)+F(d)= ',t:0:3); readln; end. Bài 6: program bai6; uses crt; var i,n,t:longint; function nguyento(x:integer):boolean; var i,n:integer; begin n:=trunc(sqrt(x)); for i:=2 to n do if (x mod i)=0 then begin nguyento:=false; exit; end; nguyento:=true; end; begin clrscr; write('n= '); readln(n); if nguyento(n) then writeln(n,' la 1 so nguyen to!') else writeln(n,' khong phai la 1 so nguyen to!'); t:=0; for i:=1 to n-1 do.

<span class='text_page_counter'>(53)</span> if nguyento(i) then t:=t+i; writeln('Tong cac so nguyen to < ',n,' = ',t); readln; end. Bài 7: program bai7; uses crt; var i,m,n:integer; function nguyento(x,y:integer):boolean; var i,n:integer; begin n:=trunc(sqrt(x)); for i:=2 to n do if (x mod i)=0 then begin nguyento:=false; exit; end; n:=trunc(sqrt(y)); for i:=2 to n do if (y mod i)=0 then begin nguyento:=false; exit; end; nguyento:=true; end; begin clrscr; write('m= '); readln(m); write('n= '); readln(n); if nguyento(m,n) then writeln('m & n la 2 so nguyen to cung nhau!') else writeln('m & n khong phai nguyen to cung nhau'); writeln('Cac so nho hon n & nguyen to cung nhau voi n la:'); for i:=1 to n-1 do if nguyento(n,i) then write(i,' '); readln; end. Bài 8: program bai8; uses crt; var tg,x,n,m,i:longint; function doixung(x:longint):boolean; var s:string;.

<span class='text_page_counter'>(54)</span> n,i:byte; begin str(x,s); n:=length(s); for i:=1 to n div 2 do if s[i]<>s[n-i+1] then begin doixung:=false; exit; end; doixung:=true; end; begin clrscr; write('x= '); readln(x); if doixung(x) then writeln('Day la 1 so doi xung') else writeln('Day khong phai la so doi xung'); write('n= '); readln(n); write('m= '); readln(m); if m<n then begin tg:=m; m:=n; n:=tg; end; writeln('Cac so doi xung nam giua n & m la:'); for i:=n to m do if doixung(i) then write(i,' '); readln; end. Bài 9: program bai9; uses crt; var a:integer; function f(x:integer):real; begin if (-10<x)and(x<10)then f:=abs(15*x-cos(2*x))+ln(sqr(x)+1)/ln(3) else f:=exp(1/5*ln(x+5)); end; begin clrscr; write('a= '); readln(a); writeln('F(a)= ',f(a):0:2); readln; end..

<span class='text_page_counter'>(55)</span> Bài 10: program bai10; uses crt; var i,n,m:integer; s:real; function giaithua(n:integer):real; var i:integer; gt:real; begin gt:=1.0; for i:=1 to n do gt:=gt*i; giaithua:=gt; end; begin clrscr; write('n= '); readln(n); writeln(n,'!= ',giaithua(n):0:0); write('m= '); readln(m); s:=(giaithua(n)+giaithua(m))/giaithua(m+n); writeln('Ket qua= ',s:0:4); readln; end. Bài 11: program bai11; uses crt; var i,n:integer; s:real; function giaithua(n:integer):real; var i:integer; gt:real; begin gt:=1.0; for i:=1 to n do gt:=gt*i; giaithua:=gt; end; begin clrscr; write('n= '); readln(n); writeln(n,'!= ',giaithua(n):0:0); s:=0; for i:=1 to n do s:=s+giaithua(i); writeln('S= ',s:0:0); readln; end..

<span class='text_page_counter'>(56)</span> Bài 12: program bai12; uses crt; var a,b,c,d,x,y:integer; function max(x,y:integer):integer; begin if x>y then max:=x else max:=y; end; begin clrscr; write('a= '); readln(a); write('b= '); readln(b); write('c= '); readln(c); write('d= '); readln(d); x:=max(a,b); y:=max(c,d); writeln('Max= ',max(x,y)); readln; end. IX. CÊu tróc Bài 1: Lập chơng trình nhập vào danh sách sinh viên ( số phần tử không biết trớc ) đến khi hoten thì dừng .Mçi sinh viªn gåm cã c¸c th«ng tin , hä tªn tuæi, ®iÓm to¸n, ®iÓm lý , tæng ®iÓm. 1. In ra mµn h×nh nh÷ng sinh viªn cã tæng ®iÓm > 14. 2. In ra nh÷ng sinh viªn ph¶i thi l¹i. 3. S¾p xÕp theo thø tù t¨ng dÇn cña tæng ®iÓm. Bµi 2: LËp ch¬ng tr×nh qu¶n lý c¸n bé gåm c¸c th«ng tin: hä tªn, ngµy sinh ( ngµy, th¸ng, n¨m ) bËc l¬ng. 1.S¾p xÕp danh s¸ch theo trêng hä tªn ( cïng tªn th× s¾p theo tuæi ) 2. T×m kiÕm ngêi cã tªn nhËp tõ bµn phÝm . 3.TÝnh tæng sè l¬ng cña n ngêi ( l¬ng = bËc l¬ng *210.000 ) Bµi 3: ViÕt ph¬ng tr×nh qu¶n lý ®iÓm cña mét líp gåm cã nh÷ng nhiÖm vô sau : 1.NhËp hå s¬ cña mçi häc sinh gåm cã hä tªn, n¨m sinh, ®iÓm trung b×nh häc kúI , ®iÓm trung b×nh häc kú II , ®iÓm trung b×nh c¶ n¨m. 2. In ra danh s¸ch c¸c häc sinh cã ®iÓm trung b×nh c¶ n¨m tõ 5,0 trë lªn theo thø tù gi¶m dÇn cña ®iÓm trung b×nh c¶ n¨m. 3.In ra c¸c danh s¸ch häc sinh lu ban. 4. TÝnh tû lÖ häc sinh giái, kh¸, trung b×nh, yÕu cña líp. Bµi 4: LËp ch¬ng tr×nh qu¶n lý c¸n bé gåm cã c¸c th«ng tin ; Hä tªn, ngµy sinh (ngµy, th¸ng, n¨m ) giíi tÝnh , bËc l¬ng. 1.NhËp danh s¸ch c¸n bé. 2.Đa ra danh sách những ngời đã đến tuổi về hu ( nam là 60 tuổi, nữ là 55 tuổi) theo thứ tự a,b,c của tªn. 3. Nh÷ng ngêi cã l¬ng cao nhÊt. 4. ChÌn vµo vÞ trÝ thø 3 trong danh s¸ch mét c¸n bé míi. IX.CẤU TRÚC Bài 1: program bai1; uses crt; type.

<span class='text_page_counter'>(57)</span> svien=record hoten:string; tuoi,toan,ly,tdiem:byte; end; var a:array[1..50]of svien; i,j,n:byte; tg:svien; begin clrscr; i:=0; repeat inc(i); with a[i] do begin write('Ho ten: '); readln(hoten); write('Tuoi: '); readln(tuoi); write('Diem toan: '); readln(toan); write('Diem ly: '); readln(ly); tdiem:=toan+ly; end; n:=i-1; until a[i].hoten=''; writeln('Danh sach cac sinh vien co tong diem >14 la:'); for i:=1 to n do if a[i].tdiem>14then writeln(a[i].hoten); writeln("DANH SACH SINH VIEN PHAI THI LAI:"); for i:=1 to n do if a[i].tdiem<=14 then writeln(a[i].hoten); writeln("DANH SACH SAP THEO TONG DIEM"); for i:=1 to n-1 do for j:=i+1 to n do if a[i].tdiem>a[j].tdiem then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; for i:=1 to n do writeln(a[i].hoten); readln; end. Bài 2: program bai2; uses crt; type canbo=record hoten:string; ngay,thang,nam,bacluong:integer;.

<span class='text_page_counter'>(58)</span> end; var a:array[1..50]of canbo; tg:canbo; i,j,n:integer; s:string; tontai:boolean; luong:longint; begin clrscr; write('n= '); readln(n); for i:=1 to n do with a[i] do begin write('Ho ten: '); readln(hoten); write('Ngay: '); readln(ngay); write('Thang: '); readln(thang); write('Nam: '); readln(nam); write('Bac luong: '); readln(bacluong); end; for i:=1 to n-1 do for j:=i+1 to n do if a[i].hoten>a[j].hoten then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end else if (a[i].hoten=a[j].hoten)and(a[i].nam>a[j].nam) then begin tg:=a[i]; a[i]:=a[j]; a[j]:=tg; end; writeln('Danh sach sau khi sap xep:'); for i:=1 to n do writeln(a[i].hoten); write('Nhap ho ten nguoi ban can tim: '); readln(s); tontai:=false; for i:=1 to n do if a[i].hoten=s then with a[i] do begin tontai:=true; writeln('Ho ten: ',hoten); writeln('Ngay: ',ngay); writeln('Thang: ',thang); writeln('Nam: ',nam);.

<span class='text_page_counter'>(59)</span> writeln('Bac luong: ',bacluong); end; if not tontai then writeln('Khong tim duoc nguoi co ten nhu tren'); luong:=0; for i:=1 to n do with a[i] do begin luong:=luong+bacluong*210000; end; writeln('Tong so luong cua ',n,' nguoi la: ',luong); readln; end. Bài 3: program bai3; uses crt; type hocsinh = record hoten:string; namsinh,dtbk1,dtbk2,dtb:real; end; var hs:array[1..50] of hocsinh; tg:hocsinh; gioi,kha,tb,yeu,i,j,n:integer; begin clrscr; write('So hoc sinh can nhap n= '); readln(n); for i:=1 to n do with hs[i] do begin write('Ho ten: '); readln(hoten); write('Nam sinh: '); readln(namsinh); write('Diem trung binh hoc ky 1: '); readln(dtbk1); write('Diem trung binh hoc ky 2: '); readln(dtbk2); write('Diem trung binh ca nam: '); readln(dtb); end; for i:=1 to n-1 do for j:=i+1 to n do if hs[i].dtb<hs[j].dtb then begin tg:=hs[i]; hs[i]:=hs[j]; hs[j]:=tg; end; j:=1; writeln(' DANH SACH HOC SINH LEN LOP'); writeln(' ______________________________________________________________________'); writeln('| STT | Ho & ten | Nam sinh | DTB HK1 | DTB HK2 | DTB ca nam |');.

<span class='text_page_counter'>(60)</span> writeln('|_____|__________________|____________|_________|_________|____________|'); for i:=1 to n do begin with hs[i] do if dtb>5 then writeln('|',j:3,'|':3,hoten:15,'|':4,namsinh:8:0,'|':5,dtbk1:7:2,'|':3,dtbk2:8:2,'|':2,dtb:8:2,'|':5); inc(j); end; writeln('|_____|__________________|____________|_________|_________|____________|'); j:=1; writeln(' DANH SACH HOC SINH LUU BAN'); writeln(' ______________________________________________________________________'); writeln('| STT | Ho & ten | Nam sinh | DTB HK1 | DTB HK2 | DTB ca nam |'); writeln('|_____|__________________|____________|_________|_________|____________|'); for i:=1 to n do begin with hs[i] do if dtb<5 then writeln('|',j:3,'|':3,hoten:15,'|':4,namsinh:8:0,'|':5,dtbk1:7:2,'|':3,dtbk2:8:2,'|':2,dtb:8:2,'|':5); inc(j); end; writeln('|_____|__________________|____________|_________|_________|____________|'); gioi:=0; kha:=0; tb:=0; yeu:=0; for i:=1 to n do if hs[i].dtb>8 then inc(gioi) else if hs[i].dtb>6.5 then inc(kha) else if hs[i].dtb>5 then inc(tb) else inc(yeu); writeln('Ty le hoc sinh gioi la: ',round(gioi/n*100),'%'); writeln('Ty le hoc sinh kha la: ',round(kha/n*100),'%'); writeln('Ty le hoc sinh trung binh la: ',round(tb/n*100),'%'); writeln('Ty le hoc sinh yeu la: ',round(yeu/n*100),'%'); readln; end. Bài 4: program bai4; uses crt; type canbo = record hoten:string; ngay,thang,nam:integer; gt:string; bluong:byte; end; var cb:array[1..50] of canbo;.

<span class='text_page_counter'>(61)</span> tg:canbo; max,n,i,j:integer; begin clrscr; write('So can bo nhap n= '); readln(n); for i:=1 to n do with cb[i] do begin write('Ho & ten: '); readln(hoten); write('Ngay: '); readln(ngay); write('Thang: '); readln(thang); write('Nam: '); readln(nam); write('Gioi tinh: '); readln(gt); write('Bac luong: '); readln(bluong); end; writeln(' DANH SACH CAN BO'); writeln(' ________________________________________________________________________'); writeln('| STT | Ho & ten | Ngay | Thang | Nam | Gioi tinh | Bac luong |'); writeln('|_____|__________________|______|_______|_______|____________|___________|'); for i:=1 to n do with cb[i] do writeln('|',j:3,'|':3,hoten:14,'|':5,ngay:4,'|':3,thang:4,'|':4,nam:4,'|':4,gt:6,'|':7,bluong:8,'|':4); writeln('|_____|__________________|______|_______|_______|____________|___________|'); for i:=1 to n-1 do for j:=i+1 to n do if cb[i].hoten>cb[j].hoten then begin tg:=cb[i]; cb[i]:=cb[j]; cb[j]:=tg; end; j:=1; writeln(' DANH SACH CAN BO VE HUU'); writeln(' ________________________________________________________________________'); writeln('| STT | Ho & ten | Ngay | Thang | Nam | Gioi tinh | Bac luong |'); writeln('|_____|__________________|______|_______|_______|____________|___________|'); for i:=1 to n do with cb[i] do if((gt='Nam')and(nam<=1948))or((gt='Nu')and(nam<=1953))then writeln('|',j:3,'|':3,hoten:14,'|':5,ngay:4,'|':3,thang:4,'|':4,nam:4,'|':4,gt:6,'|':7,bluong:8,'|':4); writeln('|_____|__________________|______|_______|_______|____________|___________|'); max:=-32768; j:=0; for i:=1 to n do if cb[i].bluong>max then begin j:=i; max:=cb[i].bluong; end;.

<span class='text_page_counter'>(62)</span> writeln('Can bo co muc luong cao nhat la:'); writeln('Ho & ten: ',cb[j].hoten); writeln('Ngay sinh: ',cb[j].ngay,'/',cb[j].thang,'/',cb[j].nam); writeln('Gioi tinh: ',cb[j].gt); writeln('Bac luong: ',cb[j].bluong); writeln('Nhap thong tin ve can bo can them:'); with tg do begin write('Ho & ten: '); readln(hoten); write('Ngay: '); readln(ngay); write('Thang: '); readln(thang); write('Nam: '); readln(nam); write('Gioi tinh: '); readln(gt); write('Bac luong: '); readln(bluong); end; for i:=n downto 3 do cb[i+1]:=cb[i]; inc(n); cb[3]:=tg; writeln(' DANH SACH CAN BO'); writeln(' ________________________________________________________________________'); writeln('| STT | Ho & ten | Ngay | Thang | Nam | Gioi tinh | Bac luong |'); writeln('|_____|__________________|______|_______|_______|____________|___________|'); for i:=1 to n do with cb[i] do writeln('|',j:3,'|':3,hoten:14,'|':5,ngay:4,'|':3,thang:4,'|':4,nam:4,'|':4,gt:6,'|':7,bluong:8,'|':4); writeln('|_____|__________________|______|_______|_______|____________|___________|'); readln; end..

<span class='text_page_counter'>(63)</span> SYSTEM . write(): in ra màn hình liền sau kí tự cuối.. . writeln(): in xuống một hàng..  . read( ): đọc biến. readln( ): đọc biến và xuống dòng. [sửa]Unit. CRT.  . clrscr : xoá toàn bộ màn hình.. . textcolor() : in chữ màu.. . textbackground() : tô màu cho màn hình.. . sound() : tạo âm thanh.. . delay() : dừng chương trình trong x miligiây trước khi chạy tiếp. . nosound : tắt âm thanh.. . windows(x1,y1,x2,y2) : thay đổi cửa sổ màn hình.. . highvideo : tăng độ sáng màn hình.. . lowvideo : giảm độ sáng màn hình.. . normvideo : màn hình trở lại chế độ sáng bình thường.. . gotoxy(x,y) : đưa con trỏ đến vị trí x,y trên màn hình.. . deline : xoá một dòng đang chứa con trỏ.. . clreol : xoá các ký tự từ vị trí con trỏ đến cuối mà không di chuyển vị trí con trỏ.. . insline : chèn thêm một dòng vào vị trí của con trỏ hiện hành.. . exit : thoát khỏi chương trình.. . textmode(co40) : tạo kiểu chữ lớn.. . randomize : khởi tạo chế độ ngẫu nhiên.. . move(var 1,var 2,n) : sao chép trong bộ nhớ một khối n byte từ biến Var 1 sang biến Var 2.. . halt : Ngưng thực hiện chương trình và trở về hệ điều hành.. . Abs(n) : Giá trị tuyệt đối.. . Arctan(x) : cho kết quả là hàm Arctan(x).. . Cos(x) : cho kết quả là cos(x).. . Exp(x) : hàm số mũ cơ số tự nhiên ex.. . Frac(x) : cho kết quả là phần thập phân của số x.. . int(x) : cho kết quả là phần nguyên của số thập phân x.. . ln(x) : Hàm logarit cơ số tự nhiên.. . sin(x) : cho kết quả là sin(x), với x tính bằng Radian.. . Sqr(x) : bình phương của số x.. . Sqrt(x) : cho kết quả là căn bậc hai của x.. . pred(x) : cho kết quả là số nguyên đứng trước số nguyên x.. . Succ(x) : cho kết quả là số nguyên đứng sau số nguyên x.. . odd(x) : cho kết quả là true nếu x số lẻ, ngược lại là false.. . chr(x) : trả về một kí tự có vị trí là x trong bảng mã ASCII.. . Ord(x) : trả về một số thứ tự của kí tự x..

<span class='text_page_counter'>(64)</span> . round(n) : Làm tròn số thực n tới số nguyên gần n nhất.. . trunc(n) : Làm tròn số thực n tới số nguyên có giá trị tuyệt đối bé hơn n.. . Random(n) : cho một số ngẫu nhiên trong phạm vi n.. . upcase(n) : đổi kí tự chữ thường sang chữ hoa.. . assign(f,'<đường dẫn><tên file>.<phần mở rộng>') : tạo file.. . rewrite(f) : ghi file lên đĩa.. . append(f) : chèn thêm dữ liệu cho file.. . close(f) : tắt file.. . erase(f) : xóa.. . rename() : đặt lại tên.. . str(a: integer,s: string) : đổi từ số a thành xâu s.. . length(s) : cho kết quả là chiều dài của xâu.. . copy(s: string,a: integer,b: integer) : copy b kí tự từ vị trí a trong xâu s.. . insert(x: string,s: string,a: integer) : chèn xâu x vào vị trí a cho xâu s.. . delete(s:string,a:integer,b:integer) : xóa b ký tự từ vị trí a trong xâu s.. [sửa]Unit. GRAPH.  . initgraph(a,b,) : khởi tạo chế độ đồ hoạ.. . closegraph; : tắt chế độ đồ hoạ.. . setcolor(x) : chọn màu.. . outtext() : in ra màn hình tại góc trên bên trái.. . outtextxy(x,y,); : in ra màn hình tại toạ độ màn hình.. . rectangle(x1,y1,x2,y2): vẽ hình chữ nhật.. . line(x1,y1,x2,y2) : vẽ đoạn thẳng.. . moveto(x,y) : lấy điểm xuất phát để vẽ đoạn thẳng.. . lineto(x,y) : lấy điểm kết thúc để vẽ doạn thảng.. . circle(x,y,n) : vẽ đường tròn.. . ellipse(x,y,o1,o2,a,b): vẽ hình elip.. . floodfill(a,b,n) : tô màu cho hình.. . getfillpattern(x) : tạo biến để tô.. . setfillpattern(x,a) : chọn màu để tô.. . cleardevice; : xoá toàn bộ màn hình.. . settextstyle(n,a,b) : chọn kiểu chữ.. . bar(a,b,c,d) : vẽ thanh.. . bar3d(a,b,c,d,n,h) : vẽ hộp.. . arc(a,b,c,d,e) : vẽ cung tròn.. . setbkcolor(n) : tô màu nền.. . putpixel(x,y,n) : vẽ điểm.. . setfillstyle(a,b) : tạo nền cho màn hình.. . setlinestyle(a,b,c) : chọn kiểu đoạn thẳng.. . getmem(p,1) : chuyển biến để nhớ dữ liệu.. . getimage(x1,y1,x2,y2,p): nhớ các hình vẽ trên vùng cửa sổ xác định..

<span class='text_page_counter'>(65)</span> putimage(x,y,p,n) : in ra màn hình các hình vừa nhớ. ....  [sửa]Unit. DOS. . getdate(y,m,d,t): lấy các dữ liệu về ngày trong bộ nhớ..   . gettime(h,m,s,hund): lấy các dữ liệu về giờ trong bộ nhớ. findnext(x): tìm kiếm tiếp. Findfirst($20,dirinfo): tìm kiếm. .... [sửa]Đọc . thêm. Kathleen Jensen and Niklaus Wirth: PASCAL - User Manual and Report. Springer-Verlag, 1974, 1985, 1991, ISBN 0387-97649-3and ISBN 0-540-97649-3 [1]. . Niklaus Wirth: The Programming Language Pascal. Acta Informatica, 1, (Jun 1971) 35-63. . N. Wirth, M. Broy, ed, and E. Denert, ed: Pascal and its Successors in Software Pioneers: Contributions to Software Engineering.Springer-Verlag, 2002, ISBN 3-540-43081-4 also in N. Wirth, and A. I. Wasserman, ed: Programming Language Design. IEEE Computer Society Press, 1980. . N. Wirth: Recollections about the Development of Pascal. ACM SIGPLAN Notices, Volume 28, No 3, March 1993.. . ISO/IEC 10206: Extended Pascal. [2].  . ISO/IEC 7185: Programming Languages - PASCAL. [3] Brian W. Kernighan, Why Pascal is Not My Favorite Programming Language.  . Bill Catambay, The Pascal Programming Language How To Code: Pascal.

<span class='text_page_counter'>(66)</span>

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×