Viết chương trình nhập vào 2 số nguyên x y từ bàn phím và in ra tích của x và y

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= 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 Then ; Nếu Điều Kiện đúng thì Câu Lệnh được thực hiện * Dạng đủ: If 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ổi0] 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  b0: 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 b0 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 [a0]’]; 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 d0 Gợi ý: + a > 0: x > -b/a [vd: 2x+3>0 x>-3/2] + a < 0: x < -b/a [vd: -2x+3>0 x= 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= -b: * 2x +3 >= 0 * -2x +3 >= 0 + a > 0: x >= -b/a 2x >= -3 -2x >= -3 + a < 0: x =-3/2 x = 0 * 0x +3 >= 0  -b>0 : VN 0x >= 3 0x >= -3 VN nghiem dung voi moi x.

[14]  -b 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 [c0] then Writeln['vo nghiem']; End; If [b0] then Writeln['nghiem cua phuong trinh la:', -c/b:1:2] End; If a0 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=8 Khá nếu 6.5

Chủ Đề