Viết chương trình nhập từ bàn phím 2 số nguyên a b và in ra màn hình số lớn nhất và số nhỏ nhất

Pascal co ban

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 (187.34 KB, 46 trang )

(1)MỤC LỤC. BÀI TẬP LÀM QUEN..........................................................................................1 PHÉP TOÁN TRONG PASCAL..........................................................................4 CẤU TRÚC RẼ NHÁNH.....................................................................................8 VÒNG LẶP BIẾT TRƯỚC SỐ LẦN LẶP LẠI.................................................19 VÒNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC............................................23 KIỂU MẢNG......................................................................................................26 KIỂU XÂU (Chuỗi)............................................................................................31 KIỂU DỮ LIỆU TỆP (FILE/TẬP TIN)..............................................................34 CHƯƠNG TRÌNH CON.....................................................................................37 BÀI TẬP LÀM QUEN 1. Viết chương trình in ra màn hình câu: “Hello World” Begin Writeln(‘Hello World’); Readln; End. 2. In đoạn thơ sau ra màn hình(sử dụng lệnh Write): Thuở còn thơ ngày hai buổi đến trường Yêu quê hương qua từng trang sách nhỏ Ai bảo chăn trâu là khổ Tôi mơ màng nghe chim hót trên cao Gợi ý: Begin Write(‘Thuo con tho ngay hai buoi đen truong’); Write(‘Yêu quê hương qua ….’); … Readln; End. 3. In đoạn thơ sau ra màn hình(sử dụng lệnh Writeln): Thuở còn thơ ngày hai buổi đến trường Yêu quê hương qua từng trang sách nhỏ Ai bảo chăn trâu là khổ Tôi mơ màng nghe chim hót trên cao 4. Viết chương trình tính chu vi và diện tích hình chữ nhật, với chiều dài và chiều rộng là các số nguyên nhập từ bàn phím. VD: CDai=6, CRong=4  ChuVi=20, DienTich=24; CDai=10, CRong=5  ChuVi=30, DienTich=50; CDai=7, CRong=3  ChuVi=20, DienTich=21; Giải: Var d, r: integer; S, cv: integer; Begin Write(‘nhap chieu dai:’);.

(2) Readln(d); Write(‘nhap chieu rong:’); Readln(r); cv:=(d+r)*2; S:=d*r; Writeln(‘Chu vi la:’,cv); Writeln(‘Dien tich la:’,s); Readln; End. 5. Viết chương trình tính chu vi và diện tích hình tròn, với bán kính là số nguyên nhập từ bàn phím. VD: R=1  VD: R=1  Cvi=6.28, DTich=3.14; R=2  Cvi=12.56, DTich=12.56; R=5  Cvi=31.4, DTich=78.5; Giải: Var R:integer; Cv,S: real; Begin Write(‘Nhap ban kinh:); Readln(r); Cv:=r*2*3.14; S:=r*r*3.14; Writeln(‘Chu vi la:’,cv:10:3); Writeln(‘Dien tich la:’,S:8:5); Readln; End. 6. Viết chương trình tính chu vi và diện tích hình vuông, với cạnh hình vuông là số nguyên nhập từ bàn phím. Vd: Canh=2 CVi=8, DTich=4; Canh=5 CVi=20, DTich=25; Canh=3 CVi=12, DTich=9; 7. Viết chương trình tính tổng và tích 2 số nguyên a và b nhập từ bàn phím. Vd: a = -3, b = 1 S = -2, T = -3; a = 4, b = 2 S = 6, T = 8; a = 2, b = 5 S = 7, T = 10; Giải: Var a,b:integer; S,T: integer; Begin Write(‘Nhap so nguyen thu nhat:’); Readln(a); Write(‘Nhap so nguyen thu hai:’); Readln(b); S:=a+b; Writeln(‘Tong cua 2 so nguyen do la:’,s); Readln; End. 8. Viết chương trình tính tổng và tích 3 số nguyên a, b, c nhập từ bàn phím. Vd: a = -3, b = 1, c = 4 S = 2, T = -12; a = 4, b = 2, c = 1 S = 7, T = 8; a = 2, b = 4, c = 3 S = 9, T = 24;.

(3) 9. Viết chương trình tính trung bình cộng của 3 số nguyên a, b, c nhập từ bàn phím. Vd: a = -3, b = 1, c = 4 TB = 0.666; a = 4, b = 2, c = 1 TB = 2.333; a = 2, b = 4, c = 3 TB = 3; 10. Viết chương trình tính chu vi và diện tích một tam giác có 3 cạnh a, b, c nhập từ bàn phím (s=sqrt(p*(p-a)*(p-b)*(p-c)) với p=(a+b+c)/2). Vd: a = 3, b = 4, c = 5  CV = 12, s = 6; a = 2, b = 3, c = 4  CV = 9, s = 2.9; a = 3, b = 3, c = 3  CV = 9, s = 3.89; 11. Viết chương trình tính diện tích tam giác có chiều dài cạnh đáy và chiều cao tương ứng là các số nguyên nhập từ bàn phím.

(4) PHÉP TOÁN TRONG PASCAL + : cộng - : trừ * : nhân / : chia Mod: chia lấy dư Vd: 5 mod 3 =2 7 mod 3 =1 8 mod 2=0 Div: chia lấy phần nguyên Vd: 5 div 3= 1 7 div 3 = 2 8 div 2 =4 BT: 1. Chuyển các biểu thức sau sang biểu thức trong pascal: a) a2 +b-c  a*a+b-c b) (a-b)(c+d)  (a-b)*(c+d) 2 c) 2x -5x+2y  2*x*x-5*x+2*y d) 1+2xyz  1+2*x*y*z 2 3 + 5 2 1 f) -x(x+y) x 2 3 g) X2+2xy- 5 + 2. . x*x+2*x*y-2/5+3/2. h) 2x2+y3+1 . 2*x*x+y*y*y+1 . 1/(a+1)*(a-b)+1 . 2*x-1>=5. e). i). 1 (a −b)+1 a+1. j) 2x-1>5. . 2/5+3/2 . 1/x-x*(x+y). 1 1 1 k) 1+ 3 + 4 + 5 < 0  1+1/3+1/4+1/5<=0 1 l) S= 1+ 1  S=1/(1+1/2) 2 1 m) S= 1+ 1  S=1/(1+1/(x*x)) 2 x. 2. Chuyển các biểu thức pascal sau sang biểu thức toán học: a) 2*x*x*x+3*y-z  2x3+3y-z 1 1 1 - 1 x x2. b) 1/(1/x)-1/(1/(x*x)) . c) X+y+z >= a+b+c . x+y+z > a+b+c. d) X*x+2*x+1/2*x . x2+2x+ 2 x. e) 1/2*3/(2+sqrt(2))*8+7/4*2*2 . 1. 1 3 7 . .8  .22 2 2 2 4 1. 3. Viết chương trình tính: f(x)= 2x5 - 5x4+4x3+ 3 x-2, với x nhập từ bàn phím. Vd: X=1: f(1) = 2.(1)5-5.(1)4+4.(1)3+1/3.1-2=2-5+4+1/3-2=-0.667 X=-2: f(-2) = 2.(-2)5-5.(-2)4+4.(-2)3+1/3.(-2)-2=2.(-32)-5.16+4.(-8)+2/3-2 = -178.667.

(5) X=0  f(0) = -2 Giải: Var x,f:real; BEGIN Write(‘Nhap x:’); Readln(x); F:=2*x*x*x*x*x-5*x*x*x*x+4*x*x*x+1/3*x-2; Writeln(‘f=’,f:5:3); Readln; END. 1. 4. Viết chương trình tính: f(x)= 3x5 + 6x4-5x3+ 3 x-2, với x nhập từ bàn phím. Vd: X = 1f(1) = 2.333; X = 2f(2) = 150.667; X = -1f(-1) = 5.667 Giải: Var F, x,y,z: real; BEGIN Write(‘Nhap gia tri cua x:’); Readln(x); F:=3*x*x*x*x*x+6*x*x*x*x-5*x*x*x+1/3*x-2; Writeln(‘f(’,x:1:2,’)=’,F:10:3); Readln; END. x+y x −z − 5. Viết chương trình tính: f(x,y,z)= x − 1 xy , với x,y,z nhập từ bàn phím. Vd: 2. Gợi ý:. x = 1, y = 2, z =3  f(1,2,3)=7; x = 1, y = -1, z = 0  f(1,-1,0)=1; x = 2, y = 3, z =4  f(2,3,4)=3.667; F:=(x+y)/(x-1/2)-(x-z)/(x*y);. y z 6. Viết chương trình tính: f(x,y,z)= (1+ z) , với x,y,z nhập từ bàn phím. VD: 1 2− 1+ x 3 x+. Gợi ý:. x = 1, y = 2, z =3  f(1,2,3)=4.444; x = 1, y = -1, z = 2  f(1,-1,2)=1; x = 2, y = 3, z =4  f(2,3,4)=7.279; F:=(1+z)*(x+y/z)/(2-1/(1+x*x*x)).

(6) 1 x 2 3  1 x (1  x) 1 1 2 x 3 1 x 2 3 1 x 2 , với x nhập từ bàn phím. 7. Viết chương trình tính: f(x)= x. VD: X = 0f(0) = 1.333; X = 2f(2) = 3.706; X = -3f(-3) = 2.9 Gợi ý: F:=(1+x)*(x+1/3)/(2-1/(1+x*x*x))+(x/(1-x)+2)/(3+(x-1/2)/(x+1/2)) 8. Viết chương trình tính: G:=5a3 – 4a2b + 10(b2 + c)a - 50b - 20c; Với a=3, b=4, c=5 Gợi ý: const a=3; b=4; c=5; Var G:integer; Begin G:=…. Writeln(‘g=’,g); Readln; End. 9. Viết chương trình tính: f(x) =. Giải:. Vd: x = 1  f(1) = 1.477 x = 2  f(2) = 1.142 x = 5  f(5) = 0.875. √. 2 3 1+ + −0 . 7 , với x nhập từ bàn phím x 5+ √ 2+ x. Var x,F:real; BEGIN Write(‘nhap gia tri cua x:’); Readln(x); F:=Sqrt(1+2/x)+3/(5+sqrt(2+x))-0.7; Writeln(‘F=’,F:10:8); Readln; END. 10. Viết chương trình tính:. 3 1 1 x +1 +¿ + −0 . 7 , với x nhập từ bàn phím 2 2+3 x 5+ √ 2+ x √¿. Vd: x = 1  f(1) = 0.677 x = 2  f(2) = 0.503 x = 5  f(5) = 0.315. √.

(7) 11. Chuyển các biểu thức toán học sau sang biểu thức Pascal a 1 1   a3  2 b a). b a  b a 1 (a+b) 2   2 5 2 ( a  b) a b).. 1 5 4 3 4    3 2 3 3 a a  b a2 c)..  a/b+1/(a+b)+a*a*a+1/(b*b)  (a+b)*(a+b)-a/((a+b)*(a+b))-1/(a*a)+5.  4+1/3-5/3/a+4/3/(a+b)-3/2/(a*a) 12. Chuyển các biểu thức Pascal sau sang biểu thức toán học a.. 1+1/2+1/2*3+1/3*4+1/4*5. b.. 1/a + 2/a*b + 3/a+b. c.. 1/(a*b)+2/a+a+3/(a*a+1)*b. 1 1 1 1 1   .3  .4  .5 3 4  2 2 1 2 3  .b   b a  a a 1 2 3   a  2 .b a 1  a.b a. 13. Viết chương trình tính bán kính đường tròn ngọai tiếp tam giác có ba cạnh a,b,c nhập abc. vào từ bàn phím (công thức R= 4 S , với S là diện tích tam giác). Vd: a=3 b=4 c=5 r=2.5 14. Viết chương trình nhập vào điểm Toán, văn, Anh văn của 1 học sinh. Tính trung bình của học sinh đó, biết rằng Toán, Văn là hệ số 2. Vd: Toan=7, Van=6, AV=8 thì TB=(Toan*2+Van*2+AV)/5= 6.8 15. Viết chương trình nhập vào số học sinh của 1 lớp và số táo trong rổ. Hãy chia đều số táo cho tất cả học sinh trong lớp, mỗi bạn sẽ được bao nhiêu quả táo? Còn dư lại bao nhiêu quả? Vd: sohocsinh=11, tongsotao=28 thì sotaomoiban=28 div 11 =2, sotaodu=28 mod 11=6 16. Viết chương trình nhập vào số giây, in ra giờ:phút:giây. Vd: 4010 giây Gio=4010 div 3600=1 Phut=(4010 mod 3600) div 60 =6 Giay=(4010 mod 3600) mod 60=50 Kết quả: 1:6:50 Gợi ý: h:= t div 3600; m:= (t mod 3600) div 60; s:=(t mod 3600) mod 60; 8. Viết chương trình nhập vào một số nguyên có 3 chữ số. In ra màn hình 2 chữ số cuối của số vừa nhập. Vd: nhập 351 thì in ra 51.

(8) CẤU TRÚC RẼ NHÁNH * Dạng thiếu: If <Điều kiện> Then ; Nếu Điều Kiện đúng thì Câu Lệnh được thực hiện * Dạng đủ: If <Điều kiện> Then Else ; Nếu Điều Kiện đúng thì Câu Lệnh 1 được thực hiện, ngược lại thì Câu Lệnh 2 được thực hiện (Chú ý: Trước ELSE không có dấu “;”) * Case of : Xử lý; : Xử lý; : Xử lý; Else Xử lý; End; Vd: Viết chương trình kiểm tra 1 số nguyên n nhập từ bàn phím là số chẵn hay lẽ. vd: n=4  so chan; n=7  so le Giải: Var n : Integer; BEGIN Write(‘Nhap so nguyen n:’); Readln(n); If n mod 2 =0 then Writeln(n,‘ la so chan’) Else Writeln(n,‘ la so le’); Readln; END. BT: 1. Viết chương trình kiểm tra 1 số nguyên n nhập từ bàn phím có chia hết cho 5 hay không? Vd: n=22  khong chia het cho 5; n=30  chia het cho 5 2. Viết chương trình nhập vào 2 số nguyên a va b, in ra màn hình số lớn hơn (trả lời “bằng nhau” nếu chúng bằng nhau). Vd: a=3 b=4 4; a=5 b=-6 5; a= 8 b=8  Bang nhau; Giải * Cách 1: Var a,b: integer; BEGIN Writeln(‘Nhap so nguyen thu nhat:’); Readln(a); Writeln(‘Nhap so nguyen thu hai:’); Readln(b); If a>b then writeln(a);.

(9) If b>a then writeln(b); If a=b then writeln(‘Bang nhau’); Readln; END. * Cách 2: Var a,b: integer; BEGIN Writeln(‘Nhap so nguyen thu nhat:’); Readln(a); Writeln(‘Nhap so nguyen thu hai:’); Readln(b); If a>b then writeln(a) Else If b>a then writeln(b) else writeln(‘Bang nhau’); Readln; END. 3. Viết chương trình nhập vào 3 số nguyên a, b, c; in ra màn hình số lớn nhất. vd: a=1 b=2 c=3  Max=3; a=4 b=2 c=3  Max=4; a=2 b=2 c=1  Max=2; a=2 b=2 c=2  3 so bang nhau; Giải: Var a, b,c: integer; Max:Integer; BEGIN Write(‘Nhap vao 3 so nguyen:’); Readln(a,b,c); Max:=a; If b>Max then Max:=b; If c>Max then Max:=c; If (a=b) and (b=c) then writeln(‘3 so bang nhau’) Else Writeln(‘So lon nhat la:’,Max); Readln; END. 4. Viết chương trình nhập vào tuổi của 1 người, in ra màn hình: Thiếu nhi nếu tuổi<=11 Thiếu niên nếu 11< tuổi <=25 Trung niên nếu 25< tuổi <=50 Lão niên nếu tuổi >50 Vd: tuoi=12  thieu nien; tuoi=6 thieu nhi; tuoi=30  trung nien. Giải: Var Tuoi:integer; BEGIN Write(‘Nhap tuoi:’);.

(10) Readln(tuoi); If tuoi<=11 then writeln(‘Thieu nhi’) else If tuoi<=25 then writeln(‘Thieu nien’) else If tuoi<=50 then writeln(‘Trung nien’) else writeln(‘Lao nien’); Readln; END. 5. Viết chương trình kiểm tra xem 3 số a, b, c nhập từ bàn phím có là 3 cạnh của một tam giác hay ko? Nếu phải thì tính chu vi và diện tích của tam giác đó, ngược lại thông báo 3 số đó ko phải là 3 cạnh của tam giác Giải: Var a,b,c,CV,S,p:real; BEGIN Write(‘nhap 3 so a,b,c:’); Readln(a,b,c); If (a+b>c) and (a+c>b) and (b+c>a) and (a>0) and (b>0) and (c>0) then Begin Writeln(‘Day la 3 canh cua tam giac’); CV:= a+b+c; P:=CV/2; S:=Sqrt(p*(p-a)*(p-b)*(p-c)); Writeln(‘Chu vi la:’,cv:5:2); Writeln(‘Dien tich la:’,s:6:3); End Else Writeln(‘Day Khong la 3 canh cua tam giac’); Readln; END. 6. Viết chương trình giải phương trình bậc nhất 1 ẩn số: ax + b = 0 Vd: 2x + 3=0 (a=2; b=3)X=-3/2 0x+0=0 (a=0, b=0)  nghiem dung voi moi x 0x-5=0 (a=0, b=-5) vô nghiệm Gợi ý: + a = 0:  b=0: nghiem dung voi moi x  b<>0: vo n + a <> 0: x = -b/a Giải: * Cách 1: Var a,b:real; BEGIN Write(‘Nhap he so a, b’);.

(11) Readln(a,b); If a= 0 then Begin If b=0 then writeln(‘nghiem dung voi moi x); If b<>0 writeln(‘vn’); End; If a <> 0 then writeln(‘Phuong trinh co nghiem la:x=’,-b/a); Readln; END. * Cách 2: Var a,b:real; BEGIN Write(‘Nhap he so a, b’); Readln(a,b); If a= 0 then If b=0 then writeln(‘nghiem dung voi moi x) Else writeln(‘vn’) Else writeln(‘Phuong trinh co nghiem la:x=’,-b/a); Readln; END. 7. Viết chương trình giải phương trình bậc hai 1 ẩn số : ax2+bx+c=0 (a khác 0) Vd: a=1, b=2, c=-3 x1=1, x2=-3; a=1, b=2, c=1 x1=x2=-1 a=1, b=2, c=3 vô nghiệm; Gợi ý: D := b*b-4*a*c * D > 0: x1 = (-b+sqrt(D))/(2*a); x2 = (-b-sqrt(D))/(2*a); * D = 0: x = -b/(2*a) * D < 0: vn Giải: Var a,b,c,d,x1,x2,x:real; Begin Write(‘Nhap a,b,c (a<>0)’); Readln(a,b,c); D:= b*b-4*a*c; If d>0 then Begin x1:=(-b+sqrt(d))/(2*a); x2= (-b-sqrt(d))/(2*a); writeln(‘PT co 2 nghiem x1=’,x1:8:3,’ x2=‘,x2:8:3); end; if d=0 then Begin x:= -b/(2*a); writeln(‘PT co nghiem kep x1=x2’,x:8:3); end;.

(12) if d<0 then writeln(‘ptvn’); readln; end. 8. Viết chương trình giải hệ phương trình bậc nhất 2 ẩn số: ¿ a 1 x+b1 y=c 1 a 2 x+b 2 y=c 2 ¿{ ¿. Vd:. ¿ ¿ x +2 y=−1 x=1 − x + y=− 2 (a1=1, b1=2,c1=-1; a2=-1, b2=1,c1=-2) y=− 1 ¿{ ¿{ ¿ ¿ ¿ ¿ x +2 y=2 x=0 − x + y=1 (a1=1, b1=2,c1=2; a2=-1, b2=1,c1=1) y=1 ¿{ ¿{ ¿ ¿ ¿ x +2 y=2 − x − 2 y=1 VN ¿{ ¿ ¿ x+2 y=2 − x − 2 y=−2 VSN ¿{ ¿. Gợi ý:. a1b1 a2b2 Tính D= ¿ rli =a1*b2-a2*b1 ¿ || ¿ c1b1 c2b2 Dx= ¿ rli =… ¿ || ¿ a1c1 a2c2 Dy= ¿ rli =… ¿ || ¿. + D<>0: Hệ có duy nhất nghiệm: x = Dx/D; y = Dy/D + D = 0: Dx = Dy = 0: VSN Dx<>0 hoặc Dy <>0: VN Giải: Var a1,b1,c1,a2,b2,c2,D,Dx,Dy:real; Begin.

(13) Write(‘Nhap a1,b1,c1:’); Readln(a1,b1,c1); Write(‘Nhap a2,b2,c2:’); Readln(a2,b2,c2); D:= a1*b2-a2*b1; Dx:=c1*b2-c2*b1; Dy:=a1*c2-a2*c1; If D<>0 then writeln(‘He co duy nhat nghiem:x=’,Dx/D:5:3,’ y=’,Dy/D:5:3); if D=0 then Begin if (dx=0) and (dy=0) then writeln(‘vo so nghiem’); if (dx<>0) or (dy<>0) then writeln(‘vo nghiem’); end; readln; end. 9. Viết chương trình giải bất phương trình bậc nhất 1 ẩn số: ax+b>0 Gợi ý: + a > 0: x > -b/a (vd: 2x+3>0 x>-3/2) + a < 0: x < -b/a (vd: -2x+3>0 x<3/2) + a = 0:  -b >= 0: VN (vd: 0x-3>0  0x>3 Vô nghiệm )  -b < 0: nghiem đúng voi moi x (vd: 0x+3>0  0x>-3  nghiem đúng voi moi x ) Giải: Var a,b:real; Begin Write(‘Nhap he so a,b:’); Readln(a,b); If a>0 then writeln(‘x>’,-b/a:5:3); If a<0 then writeln(‘x<’,-b/a:5:3); If a=0 then Begin If -b>=0 then writeln(‘VN’); If -b<0 then writeln(‘nghiem đúng voi moi x ); End; Readln; End. 10. Viết chương trình giải bất phương trình bậc nhất 1 ẩn số: ax + b>=0 Gợi ý: vd: ax>= -b: * 2x +3 >= 0 * -2x +3 >= 0 + a > 0: x >= -b/a 2x >= -3 -2x >= -3 + a < 0: x <= -b/a x >=-3/2 x <=-3/2 + a = 0: * 0x -3 >= 0 * 0x +3 >= 0  -b>0 : VN 0x >= 3 0x >= -3 VN nghiem dung voi moi x.

(14)  -b <= 0: nghiem dung voi moi x 11. Viết chương trình giải phương trình bậc hai 1 ẩn số : ax2+bx+c=0 Gợi ý: +a=0 +b=0 + c = 0: vsn + c<>0: vn + b <> 0: x = - c / b + a <> 0: D := b*b-4*a*c * D > 0: x1 = (-b+sqrt(D))/(2*a); x2 = (-b-sqrt(D))/(2*a); * D = 0: x = -b/(2*a) * D < 0: vn Giải: Var a,b,c,x,x1,x2,D:real; BEGIN Writeln(' nhap a,b,c:'); Readln(a,b,c); If a=0 then Begin If (b=0) then Begin If (c=0) then Writeln('vo so nghiem'); If (c<>0) then Writeln('vo nghiem'); End; If (b<>0) then Writeln('nghiem cua phuong trinh la:', -c/b:1:2) End; If a<>0 then Begin D:=(b*b-4*a*c); If (D>0) then Begin x1:=(-b+sqrt(D))/(2*a); x2:=(-b-sqrt(D))/(2*a); Writeln('Phuong trinh co 2 nghiem la:x1=',x1,' x2=',x2); End; If (D=0) then Begin x:=(-b/(2*a)); Writeln('PT co nghiem kep la:',x); End;.

(15) If (D<0) then Writeln('PT vo nghiem '); end; Readln; END. 12. Viết chương trình nhập vào điểm trung bình học kỳ I và trung bình học kỳ II, tính trung bình cả năm theo công thức: TBCN=(TBHKI+TBHKII*2)/3. Xếp lọai theo cách: Giỏi nếu TBCN>=8 Khá nếu 6.5<=TBCN <8 If (tbcn>=6.5) and (tbcn<8) then Trung bình nếu 5.0<=TBCN <6.5 Yếu nếu 3.5<=TBCN <5 Kém nếu TBCN<3.5 Vd: TBKHI=7 TBHKII=8  TBCN=(7+8*2)/3=7.6 Xếp loại: Khá Giải: Var HKI,HKII,CN: Real; BEGIN Write(‘Nhap trung binh HKI, HKII’); Readln(HKI,HKII); CN:=(HKI+HKII*2)/3; Writeln(‘TBCN=’,CN:5:1); If CN>=8 then writeln(‘Gioi’); If (6.5<=CN) And (CN <8 ) then writeln(‘Kha’); If (5<=CN) And (CN <6.5 ) then writeln(‘Trung binh’); If (3.5<=CN) And (CN <5 ) then writeln(‘Yeu’); If CN <3.5 then writeln(‘Kem’); Readln; END. 13. Viết chương trình nhập vào 1 số tự nhiên N<=10.000, hãy cho biết số đó có mấy chữ số. vd: 15 có 2 chữ số; 2345 có 4 chữ số. Giải: Var n: integer; BEGIN Write(‘Nhap so n’); Readln(n); If (n>=0) And (n<=9 ) then writeln(‘so co 1 chu so’); If (n>=10) And (n<=99) then writeln(‘so co 2 chu so’); If (n>=100) And (n<=999 ) then writeln(‘so co 3 chu so’); If (n>=1000) And (n<=9999 ) then writeln(‘so co 4 chu so’); If (n=10000) then writeln(‘so co 5 chu so’); Readln; END..

(16) 14. Nhập một tháng, cho biết tháng đó thuộc mùa nào (Xuân, Hạ, Thu, Ðông), biết rằng tháng 2, 3, 4 là mùa Xuân, tháng 5, 6, 7: mùa Hạ, tháng 8, 9, 10: mùa Thu, và tháng 11, 12, 1: mùa Ðông. Vd: Thang = 3  thuộc mùa Xuân; Thang = 11  thuộc mùa Đông Giải: Var thang:integer; BEGIN Write(‘Nhap thang:’); Readln(thang); If (thang>=2) and (thang<=4) then writeln(‘Mua Xuan’); If (thang>=5) and (thang<=7) then writeln(‘Mua Ha’); If (thang>=8) and (thang<=10) then writeln(‘Mua Thu’); If ((thang>=11) and (thang<=12)) or (thang=1) then writeln(‘Mua Dong’); Readln; END. * Sử dụng Case …of: Var thang:integer; BEGIN Write(‘Nhap thang:’); Readln(thang); case thang of 2,3,4 : writeln(' Mua Xuan '); 5,6,7 : writeln(' Mua Ha'); 8,9,10 : writeln(' Mua Thu'); 11,12,1 : writeln(' Mua Dong'); Else writeln(' Khong biet!');. End; Readln; END. 15. Viết chương trình nhập vào 1 tháng của năm 2012, cho biết tháng đó có bao nhiêu ngày Vd: Tháng 3  31 ngày Tháng 6  30 ngày Tháng 2  29 ngày Giải: var sn,t:integer; Begin write('Nhap vao thang: '); readln(t); if (t=1) or (t=3) or (t=5) or (t=7) or (t=8) or (t=10) or (t=12) then sn:=31; if (t=4) or (t=6) or (t=9) or (t=11) then sn:=30; if t=2 then sn:=29; writeln('Thang ',t, ‘co ',sn,' ngay'); readln; End..

(17) * Sử dụng Case …of: var sn,t:integer; Begin write('Nhap vao thang: '); readln(t); Case t of 1,3,5,7,8,10,12: sn:=31; 4,6,9,11:sn:=30; 2: sn:=29; End; writeln('Thang ',t, ‘co ',sn,' ngay'); readln; End. 16. Viết chương trình nhập 1 số nguyên từ 1 đến 10. In ra chữ tiếng Anh của số đó. vd: nhập 3 thì in ra màn hình “Three” nhập 8 thì in ra màn hình “Eight” Gợi ý: if n=1 then writeln(‘one’) else if n=2 then writeln(‘two’) ….. If (n<1) or (n>10) then writeln(‘ko biet!’); * Viết lại bằng cách sử dụng Case …of: 17. Nhập vào số xe (có bốn chữ số) trong biển số xe máy của bạn. Cho biết số xe của bạn được mấy nút. Bạn là người may mắn nếu số nút=9. Bạn có may mắn không ? Ví du: số xe là 4546, tổng các chữ số là 4+ 5 + 4 + 6 = 19. 19 mod 10 =9. Số nút là 9, may mắn. Gợi ý: Tong :=0; Tong:= tong + SoXe mod 10; SoXe:= SoXe div 10; Tong:= tong + SoXe mod 10; SoXe:= SoXe div 10; Tong:= tong + SoXe mod 10; SoXe:= SoXe div 10; Tong:= tong + SoXe mod 10; 18. Nhập một số tiền N (N<=500) đồng, đổi ra xem được bao nhiêu tờ 5 đồng, bao nhiêu tờ 2 đồng, bao nhiêu tờ 1 đồng sao cho tổng số tờ là ít nhất. Ví dụ N= 43 đ = 8 tờ 5 đ + 1 tờ 2 đ + 1 tờ 1 đ. Cách tính như sau : Số tờ 5 đ = 43 div 5 = 8 Số tiền dư = 43 mod 5 = 3.

(18) Số tờ 2 đ = Số tiền dư div 2 = 3 div 2 =1 Số tờ 1 đ = Số tiền dư mod 2 = 3 mod 2 = 1 Giải: Var N, st5, st2, st1, sodu : integer; Begin Write(‘ Nhap so tien : ’); Readln(N); st5 := N div 5; Sodu := N mod 5; st2 := Sodu div 2; st1 := Sodu mod 2; Writeln(‘ KET QUA DOI TIEN LA: ’ ) ; Writeln(‘ So to 5đ= ‘, st5); Writeln(‘ So to 2đ= ‘, st2); Writeln(‘ So to 1đ=‘, st1); Readln; End. 19. Viết thuật toán tính tiền taxi căn cứ vào đoạn đường đi nhập từ bàn phím biết rằng (chú ý người nhập nhập số km>0)  Km đầu giá 12000đ  Km thứ 2 đến km thứ 30 giá 10000đ  Km thứ 31 trở đi tính 9000đ Vd: + km=3 thì Tien=1*12000+(3-1)*10000=12000+20000=32000 + km=40 thì Tien=12000+29*10000+(40-30)*9000=… Gợi ý: Nếu Km<=0 thì tiền:=0 Ngược lại nếu Km<=30 thì tiền:=12000+(km-1)*10000 Ngược lại thì tiền:=12000+29*10000+(km-30)*9000 Giải: Var km,t:longint; BEGIN Write(‘Nhap so km:’); Readln(km); If km<0 then t:=0 Else If km<30 then T:=12000+(km-1)*10000 Else T:=1200+29*10000+(km-30)*9000; Writeln(‘Tien phai tra:’,t); Readln; End. 20. Viết chương trình nhập vào số KW/h điện tiêu thụ trong 1 tháng và tính tiền điện sử dụng trong 1 tháng đó. Biết rằng, 50 KW/h đầu được tính với giá 600đ mỗi KW/h, 50 KW/h tiếp theo được tính với giá 800đ mỗi KW/h, 100 KW/h tiếp theo được tính với giá 1100đ mỗi KW/h, những KW/h tiếp theo được tính với giá 1500đ mỗi KW/h..

(19) Vd:. Số điện = 40 thì số tiền = 40*600 Số điện = 70 thì số tiền = 50*600 + (70-50)*800 Số điện = 110 thì số tiền = 50*600 + 50*800 + (110-50-50)*1100 Số điện = 230 thì số tiền = 50*600 + 50*800 + 100*1100 + (230-50-50100)*1500 Giải: Var d, t: longint; Begin Write(‘so KW/h da su dung’); Readln(d); If d<=50 then T:=d*600 Else If d<=100 then T:=50*600+(d-50)*800 Else If d<=200 then T:=50*600+50*800+(d-50-50)*1100 Else T:= 50*600+50*800+100*1100+(d-50-50-100)*1500; Writeln(‘So tien phai tra la:’,T); Readln; END..

(20) VÒNG LẶP BIẾT TRƯỚC SỐ LẦN LẶP LẠI For := to do ; Chú ý:  Vòng lặp được thực hiện khi giá trị đầu còn <= giá trị cuối. + Sau mỗi lần lặp, biến đếm tăng lên 1 đơn vị. + Vòng lặp sẽ dừng lại sau khi thực hiện câu lệnh nếu giá đầu = giá trị cuối.  Biến đếm, giá trị đầu, giá trị cuối là số nguyên. Vd1: Tính S = 3 + 4 + 5 + 6 + 7 + 8. Giải Var i: Integer; S: LongInt; BEGIN S:=0; For i:=3 to 8 do S:=S + i; Writeln(‘s=’,s); Readln; END. 1 1 1 1 1 + + Vd2: Tính S=1+ 2 3 + 4 5 +…+ 15 .. Var i: Integer; S: Real; BEGIN S:=0; For i:=1 to 15 do S:=S + 1/i; Writeln(‘s=’,s:10:3); Readln; END. BT: 1. Tính S = 1 + 2 + 3 + 4 + …+ n, với n nguyên dương nhập từ bàn phím. Vd: n=6  s = 21; n=10  s = 55 Var i,n:integer; S:longint; Begin Write(‘nhap n:’); Readln(n); S:=0; For i:=1 to n do s:= s + i; … 1 1. 1 1. 1. 2. Tính S=1+ 2 + 3 + 4 + 5 +…+ n , với n nguyên dương nhập từ bàn phím. Vd: n=6  s = 2.45; n=10  s = 2.92.

(21) 3. Tính S=1+3+5+7+…+2n-1, với n nguyên dương nhập từ bàn phím. Vd: n=3: 2*3-1=5 s=1+3+5 =9 n=7: 2*7-1=13 s=1+3+5+7+9+11+13 =49 1 1. 1. 4. Tính S= 4 + 6 +…+ 2 n , với n nguyên dương nhập từ bàn phím. Vd: n=2 s=0+1/4=0.25 n=5 s=1/4+1/6+1/8+1/10=0.64 n=8: 2*8=16 s=1/4+1/6+1/8+1/10+1/12+1/14+1/16 5. Tính S=1+4+7+…+3n-2, với n nguyên dương nhập từ bàn phím. Vd: n=3: 3*3-2=7: s=1+4+7=12 n=8: 3*8-2=22: s=1+4+7+10+13+16+19+22=92 6. Tính S=1+5+9+…+4n-3, với n nguyên dương nhập từ bàn phím. Vd: n=3: 4*3-3=10: s=1+5+9=15 n=8: 4*8-3=22: s=1+9+13+17+21+25+29+33=120 5. 6. n+2. 7. Tính S= 10 + 14 . . .+ 4 n −2 , với n nguyên dương nhập từ bàn phím. Vd: n=4: 4+2=6: s=5/10+6/14 n=8: 8+2=10: s=5/10+6/14+7/18+8/22+9/26+10/30 3 4. 5. n+ 2. 8. Tính S= 2 + 6 + 10 +.. .+ 4 n −2 , với n nguyên dương nhập từ bàn phím. Vd: n=3 (3+2)/(4*3-2)=5/10 s=3/2+4/6+5/10=2.6 9. Viết chương trình tính tổng S=50+49+48+…+16+15 10. Viết chương trình tính tổng S= -100-99-98-…-20 11. Viết chương trình nhập vào 1 số nguyên dương n. In ra màn hình những số chia hết cho 3 trong các số từ 1 đến n. Vd: n=13 thì in các số: 3 6 9 12 Gợi ý: For i:=1 to n do if i mod 3=0 then write(I:5); 12. Viết chương trình nhập vào 1 số nguyên dương n. In ra màn hình số lượng số chia hết cho 3 trong các số từ 1 đến n. Vd: n=13 thì có 4 số gồm: 3 6 9 12 Gợi ý: If i mod 3=0 then dem:=dem+1; 13. Viết chương trình nhập vào 1 số nguyên dương n. Cho biết từ 1 đến n có bao nhiêu số chia hết cho 5, là những số nào? Vd: n=31 thì có 6 số gồm: 5 10 15 20 25 30 14. Viết chương trình nhập vào 1 số nguyên dương n. Tính tổng những số chẵn từ 1 đến n. Vd: n=11 thì S=2+4+6+8+10. Gợi ý: If i mod 2=0 then s:=s+i; 15. Viết chương trình nhập vào 1 số nguyên dương n. Tính tổng những số chia hết cho 3 và 5 từ 1 đến n. Vd: n=50 thì S=15 + 30 + 45 16. Viết chương trình nhập vào 1 số nguyên dương n. Tính tổng những số chia hết cho 3 hoặc 5 từ 1 đến n. Vd: n=14 thì S=3 + 5 + 6 +10+ 9 +12 17. Viết chương trình nhập vào 1 số nguyên dương n. Cho biết n có phải là số nguyên tố hay không? Số nguyên tố là số chỉ chia hết cho 1 và chính nó Vd: n=7 là số nguyên tố vì 7 chỉ chia hết cho 1 và 7 n=8 Không là số nguyên tố vì 8 chia hết cho 1 và 8 nhưng còn chia hết cho 2 và 4 18. Tính T = 1.2.3.4… n, với n nguyên dương nhập từ bàn phím. 1 1 1. 1. 1 1 1. 1. 19. Tính T = 2 . 3 . 4 .. .. n , với n nguyên dương nhập từ bàn phím. 20. Tính T = 2 . 4 . 6 .. . 2 n , với n nguyên dương nhập từ bàn phím..

(22) 3 3 3. 3. 4 5 6. n+2. 21. Tính T = 1 . 3 . 5 . .. 2 n −1 , với n nguyên dương nhập từ bàn phím. 22. Tính T = 2 . 3 . 4 .. .. n , với n nguyên dương nhập từ bàn phím. 23. Viết chương trình nhập vào 2 số nguyên m và n (m
(23) BEGIN For Ga:=1 to 42 do If Ga*2+(43-Ga)*4=100 then Writeln(‘Co ’, Ga,’ con ga , va ‘, 36-ga,’ con tho’); Readln; END..

(24) VÒNG LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC While <điều kiện> do ;  Khi điều kiện đúng, câu lệnh được thực hiện  Khi chương trình bị lặp vô tận, nhấn Ctrl + Break để dừng chương trình Repeat ; Until <điều kiện>;  Khi điều kiện sai, câu lệnh được thực hiện  Khi chương trình bị lặp vô tận, nhấn Ctrl + Break để dừng chương trình Vd1: Ta có số tiền a (a>0), ta cần có số tiền b(a < b < 5a); với lãi suất ngân hàng là 1%/tháng, hãy tính xem sau bao nhiêu tháng gửi ngân hàng ta được số tiền b. Var a,b: Real; Thang: integer; BEGIN Repeat Write(‘Nhap so tien ban dau:’); Readln(a); Until a>0; Repeat Write(‘Nhap so tien can co:’); Readln(b); Until (b>a) and (b<5*a); Thang:=0; While a