Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 64 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
64
Dung lượng
339 KB
Nội dung
Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn CHUYÊN ĐỀ: KHAI BÁO HẰNG, BIẾN, KIỂU, BIỂU THỨC VÀ CÂU LỆNH Bài tập 1.1: Viết chương trình tính chu vi diện tích hình chữ nhật có chiều dài hai cạnh a, b (được nhập từ bàn phím) a Hướng dẫn: - Nhập hai cạnh vào hai biến a, b - Chu vi hình chữ nhật 2*(a+b); Diện tích hình chữ nhật a*b b Mã chương trình: Program Chu_nhat; uses crt; Var a, b, S, CV: real; Begin Write('Nhap chieu dai:'); readln(a); Write('Nhap chieu rong:'); readln(b); S := a*b; CV := (a+b)*2; Writeln('Dien tich hinh chu nhat la:',S); Writeln('Chu vi hinh chu nhat la:',CV:10:2); readln end c Nhận xét: Lệnh write cho phép in hình nhiều mục Có thể định dạng số in cách qui định khoảng dành cho phần nguyên, khoảng dành cho phần thập phân Bài tập 1.2: Viết chương trình tính chu vi, diện tích hình vng có cạnh a (được nhập từ bàn phím) a Hướng dẫn: - Nhập cạnh vào biến canh - Chu vi hình vng 4*canh; Diện tích hình vng canh*canh b Mã chương trình: Program HINH_VUONG; uses crt; Var canh: real; Begin clrscr; Write('Nhap dai canh:');readln(canh); Writeln('Chu vi hinh vuong la:',4*canh:10:2); Writeln('Dien tich hinh vuong la:',canh*canh:10:2); readln end c Nhận xét: Bài tập 1.2 tiết kiệm hai biến CV S lệnh write cho phép in biểu thức Trong lập trình việc tiết kiệm biến cần thiết đôi lúc gây khó hiểu đọc, kiểm tra chương trình Bài tập 1.3: Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn Viết chương trình tính chu vi diện tích hình trịn có bán kính r (được nhập từ bàn phím) a Hướng dẫn: - Nhập bán kính vào biến r - Chu vi đường tròn 2**r - Diện tích hình trịn *r*r b Mã chương trình: Program HINH_TRON; uses crt; Var r: real; Begin clrscr; Write('Nhap ban kinh:'); readln(r); Writeln('Chu vi duong tron la:',2*pi*r:10:2); Writeln('Dien tich hinh tron la:',pi*r*r:10:2); readln end c Nhận xét: pi số Một số người dùng khai báo Pascal tự tạo Pi Pascal tự tạo nên người dùng không cần khai báo Bài tập 1.4: Viết chương trình tính diện tích tam giác có ba cạnh a,b,c (được nhập từ bàn phím) a Hướng dẫn: - Nhập ba cạnh tam giác vào ba biến a,b,c - Nửa chu vi tam giác p = (a+b+c)/2 - Diện tích tam giác: s = p ( p a )( p b)( p c) b Mã chương trình: Program TAM_GIAC; uses crt; Var a,b,c,p,S: real; Begin clrscr; Write('Nhap canh a:');readln(a); Write('Nhap canh b:');readln(b); Write('Nhap canh c:');readln(c); p:=(a+b+c)/2; S:= sqrt(p*(p-a)*(p-b)*(p-c)); Write('Dien tich tam giac la:',s:10:2); readln end b Nhận xét: Ở ta lại hai lần dùng biến trung gian p, s để chương trình sáng sủa, dễ theo dõi sqrt hàm có sẵn turbo pascal Nó cho phép tính bậc hai số khơng âm Bài tập 1.5: Viết chương trình cho phép tính trung bình cộng bốn số a Hướng dẫn: Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn - Nhập bốn số vào bốn biến a, b, c, d - Trung bình cộng a, b, c, d (a + b + c + d)/4 b Mã chương trình: Program TB_Cong_4_So; uses crt; Var a, b, c, d: real; Begin Clrscr; Write('Nhap so thu nhat:');readln(a); Write('Nhap so thu hai:');readln(b); Write('Nhap so thu ba:');readln(c); Write('Nhap so thu tu:');readln(d); Writeln('Trung binh cong: ',(a+b+c+d)/4):10:2); Readln end Bài tập 1.6: Viết chương trình cho phép tính trung bình cộng bốn số với điều kiện sử dụng hai biến a Hướng dẫn: - Dùng biến S có giá trị ban đầu - Dùng biến để nhập số - Sau nhập số cộng vào biến S b Mã chương trình: Program TB_Cong_4_So; uses crt; Var s,a: real; Begin Clrscr; S:=0; Write('Nhap so thu nhat:');readln(a); S:=S+a; Write('Nhap so thu hai:');readln(a); S:= S+a; Write('Nhap so thu ba:');readln(a); S:=S+a; Write('Nhap so thu tu:');readln(a); S:=S+a; Writeln('Trung binh cong: ',S/4:10:2); readln end b Nhận xét: Câu lệnh gán S:= S+a thực việc cộng thêm a vào biến S Thực chất thực bước: lấy giá trị S cộng với a ghi đè vào lại biến S Ở ta sử dụng biến a biến tạm để chứa tạm thời giá trị nhập từ bàn phím Bài tập 1.7: Viết chương trình cho phép tính trung bình nhân bốn số với điều kiện sử dụng hai biến a Hướng dẫn: Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn - Dùng biến S có giá trị ban đầu - Dùng biến để nhập số - Sau nhập số nhân vào biến S - Trung bình nhân bốn số bậc tích chúng (Dùng hai lần bậc hai) b Mã chương trình: Program TB_nhan; uses crt; Var a, S: real; Begin clrscr; S:=1; Write('Nhap so thu nhat: '); readln(a); S:=S*a; Write('Nhap so thu hai: '); readln(a); S:=S*a; Write('Nhap so thu ba: '); readln(a); S:=S*a; Write('Nhap so thu tu: '); readln(a); S:=S*a; Write('Trung binh nhan cua bon so la:',sqrt(sqrt(s))); readln End b Nhận xét: Ta dùng hai lần khai phương để lấy bậc số Để cộng dồn giá trị vào biến biến có giá trị ban đầu Để nhân dồn giá trị ban đầu vào biến biến cần có giá trị ban đầu Bài tập 1.8: Viết chương trình nhập hai số, đổi giá trị hai số in hai số a Hướng dẫn: - Dùng biến a, b để lưu hai số nhập từ bàn phím; - Gán cho biến tam giá trị a - Gán giá trị b cho a (Sau lệnh a có giá trị b) - Gán giá trị tạm cho cho b (Sau lệnh b có giá trị tam = a) b Mã chương trình: Program Doi_Gia_Tri; uses crt; var a, b, tam:real; Begin clrscr; write('nhap a: '); readln(a); write('nhap b: '); readln(b); writeln('Truoc doi a =',a,' va b= ',b); readln; tam:=a; a:=b; b:=tam; writeln('Sau doi a =',a,' va b= ',b); readln end Nhận xét: Nếu thực hai lệnh a:= b; b:=a để đổi giá trị hai biến sau hai lệnh hai biến có giá trị b Thực chất sau lệnh thứ hai biến có Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn giá trị b rồi! Trong thực tế để đổi chỗ số dầu hai bình cho ta phải dùng thêm bình phụ Bài tập 1.9 Giải tập 1.8 mà sử dụng hai biến (Tức không dùng thêm biến tạm) a Hướng dẫn: - Cộng thêm b vào a (Giá trị hai biến sau lệnh là: a+b, b) - Gán b tổng trừ b (Sau lệnh b có giá trị a); - Gán giá trị a tổng trừ b (Sau lệnh a có giá trị b) b Mã chương trình: Program Doi_Gia_Tri; uses crt; var a, b:real; Begin clrscr; write('nhap a: '); readln(a); write('nhap b: '); readln(b); writeln('Truoc doi a =',a,' va b= ',b); readln; a:=a+b; b:=a-b; a:=a-b; writeln('Sau doi a =',a,' va b= ',b); readln end Nhận xét:Giống sang dầu hai bình khơng giống hồn tồn!!!Kỹ thuật đổi giá trị biến cho sử dụng nhiều phần xếp Bài tập 1.10: Viết chương trình cho biết chữ số hàng trăm, hàng chục, hàng đơn vị số có ba chữ số Ví dụ nhập số 357 máy in ra: - Chữ số hàng trăm: - Chữ số hàng chục: - Chữ số hàng đơn vị: a Hướng dẫn: Sử dụng hàm mov để lấy số dư Khi chia cho 10 để lấy số dư ta chữ số hàng đơn vị Sử dụng DIV để lấy phần nguyên Khi chia cho 10 để lấy phần nguyên ta bỏ chữ số hàng đơn vị để số có ba chữ số cịn số có hai chữ số b Mã chương trình: Program CHU_SO; uses crt; var n:integer; begin clrscr; write('Nhap so n: ');readln(n); writeln('Chu so hang don vi: ',n mod 10); Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn n:=n div 10; writeln('Chu so hang chuc: ',n mod 10); n:=n div 10; writeln('Chu so hang tram: ',n mod 10); readln end c Nhận xét: Hãy sửa chương trình để có kết hàng trăm, hàng chục, hàng đơn vị Mã chương trình: Program CHU_SO; uses crt; var n:integer; begin clrscr; write('Nhap so n: ');readln(n); writeln('Chu so hang trm: ',n div 100); n:=n mov 100; writeln('Chu so hang chuc: ',n div 10); n:=n div 10; writeln('Chu so hang tram: ',n); readln end Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn CHUYÊN ĐỀ: CÂU LỆNH CÓ CẤU TRÚC RẼ NHÁNH Bài tập 2.1: Viết chương trình in số lớn hai số (được nhập từ bàn phím) a Hướng dẫn: - Nhập hai số vào hai biến a, b - Nếu a > b in a Nếu a b in a Ngược lại in b b Mã chương trình: Program SO_SANH1; uses crt; var a,b: real; begin clrscr; write('nhap so thu nhat: '); readln(a); write('nhap so thu hai: '); readln(b); if a> b then writeln(' So lon la:',a); if a b then writeln(' So lon la:',a:10:2) else writeln(' So lon la:',b:10:2); readln end c Nhận xét: Khi hai số số xem số lớn Hãy sửa chương trình để khắc phục yếu điểm Nói chung nên sử dụng lệnh if … then … else chương trình sáng sủa, dễ hiểu Tuy nhiên vài trường hợp sử dụng lệnh if … then rời lại dễ diễn đạt Hãy xem ví dụ sau: Bài tập 2.2: Viết chương trình in số lớn bốn số nhập từ bàn phím a Hướng dẫn: Nếu a b a c a d a số lớn Tương tự xét trường hợp cịn lại để tìm số lớn b Mã chương trình: Program So_Lon_Nhat_1; Uses crt; Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn Var a,b,c,d: real; Begin Clrscr; Write('Nhap so thu nhat:');readln(a); Write('Nhap so thu hai:');readln(b); Write('Nhap so thu ba:');readln(c); Write('Nhap so thu tu:');readln(d); if (a>=b) and (a>=c) and (a>= d) then writeln('So lon nhat la:',a:10:2); if (b>=a) and (b>=c) and (b>= d) then writeln('So lon nhat la:',b:10:2); if (c>=a) and (c>=b) and (c>= d) then writeln('So lon nhat la:',c:10:2); if (d>=a) and (d>=b) and (d>= c) then writeln('So lon nhat la:',d:10:2); readln end c Nhận xét: Hãy sử dụng cấu trúc if … then … else để giải tập Độ khó toán tăng lên nhiều thêm yêu cầu có thơng báo hai số, ba số, bốn số Bài tập 2.3: Viết chương trình in số lớn bốn số nhập từ bàn phím với điều kiện dùng hai biến a Hướng dẫn: Sử dụng biến max biến a để chứa số vừa nhập Cho max số Sau nhập số thực so sánh số vừa nhập lớn max lưu số vừa nhập vào max Sau nhập xong ta có max số lớn (Giải thuật gọi kỹ thuật lính canh cần hiểu rõ để sử dụng sau này) b Mã chương trình: Program So_Lon_Nhat_2; Uses crt; Var a,max: real; Begin Clrscr; Write('Nhap so thu nhat:');readln(a);Max:=a; Write('Nhap so thu hai:');readln(a);if a>=Max then Max:=a; Write('Nhap so thu ba:');readln(a);if a>=Max then Max:=a; Write('Nhap so thu tu:');readln(a);if a>=Max then Max:=a; Write('So lon nhat la:',Max:10:2); readln end Bài tập Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn Viết chương trình xét xem tam giác có tam giác hay khơng biết ba cạnh tam giác a Hướng dẫn: - Nhập ba cạnh tam giác vào ba biến a,b,c - Nếu a = b b = c tam giác tam giác ngược lại tam giác khơng tam giác b Mã chương trình: Program Tam_giac_deu; uses crt; var a,b,c: real; begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b); write('Nhap c = '); readln(c); if (a = b) and (b = c) then writeln('La tam giac deu') else writeln('Khong phai la tam giac deu'); readln end Bài tập Viết chương trình xét xem tam giác có tam giác cân hay ba cạnh tam giác a.Hướng dẫn: - Nhập ba cạnh tam giác vào ba biến a,b,c - Nếu a = b b = c a = c tam giác tam giác cân ngược lại tam giác không tam giác cân b.Mã chương trình: Program Tam_giac_can; uses crt; var a,b,c: real; begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b); write('Nhap c = '); readln(c); if (a = b) or (b = c) or (a = c) then writeln('La tam giac can') else writeln('Khong phai la tam giac can'); readln end Bài tập Viết chương trình xét xem tam giác có tam giác vuông hay ba cạnh tam giác a.Hướng dẫn: Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn - Nhập ba cạnh tam giác vào ba biến a,b,c Nếu a2 = b2 + c2 b2 = c2 + a2 c2 = a2+b2 tam giác tam giác vuông ngược lại tam giác không tam giác vng b.Mã chương trình: Program Tam_giac_can; uses crt; var a,b,c: real; begin clrscr; write('Nhap a = '); readln(a); write('Nhap b = '); readln(b); write('Nhap c = '); readln(c); if (a*a = b*b+c*c) or (b*b = c*c+a*a) or (c*c= a*a+b*b) then writeln('La tam giac vuong') else writeln('Khong phai la tam giac vuong'); readln end Bài tập 2.7: Viết chương trình giải phương trình ax + b = (Các hệ số a, b nhập từ bàn phím) a.Hướng dẫn: - Nếu a phương trình có nghiệm x = b a - Nếu a = b = phương trình có vơ số nghiệm - Nếu a = b phương trình vơ nghiệm Hoặc: - Nếu a = xét b Nếu b = phương trình có vơ số nghiệm ngược lại (b 0) phương trình vơ nghiệm ngược lại (a 0) phương trình có nghiệm x = b a a Mã chương trình: Program Phuong_trinh_2; uses crt; var a,b:real; begin clrscr; Writeln(' CHUONG TRINH GIAI PT ax + b = 0'); Write('Nhap he so a = ');readln(a); Write('Nhap he so b = ');readln(b); if (a0) then writeln('phuong trinh',a:10:2,'x + ',b:10:2,'= 0',' co nghiem x =;',-b/a:10:2); if (a=0) and (b=0) then writeln('Phuong trinh co vo so nghiem'); if (a=0) and (b0) then writeln('Phuong trinh vo nghiem'); readln 10 Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn Var i, n:integer; so:longint; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); S0:=1; For i:=1 to n S0:=s0*i; Write(‘s0 = ‘,s0); Readln; End c S2 = + 1/2! + + 1/n! Program s2; Uses crt; Var i, n:integer; gt:longint; s2:real; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); gt:=1; s2:=0; For i:=1 to n Begin Gt:=gt*i; S2:=s2+1/gt; End; Write(‘s2 = ‘,s2:5:3); Readln; End Var i, n:integer; s1:real; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); S1:=0; For i:=1 to n S1:=s1+1/i; Write(‘s1 = ‘,s1:5:3); Readln; End d S3 = + x + x2/2! + x3/3! + + xn/n! Program s3; Uses crt; Var i, n,x:integer; Gt, lt:longint; S3:real; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); Write(‘nhap so x = ‘); readln(x); gt:=1; lt:=1;s3:=1; For i:=1 to n Begin Lt:=lt*x; Gt:=gt*i; S3:=s3+lt/gt; End; Write(‘s3 = ‘,s3:5:3); Readln; End n n e S4 = - x + x /2! - x /3! + + (-1) x /n! Program s4; Uses crt; Var i, n,x,dau:integer; Gt, lt:longint; S3:real; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); Write(‘nhap so x = ‘); readln(x); gt:=1; lt:=1;s4:=1;dau:=1; For i:=1 to n Begin Dau:=dau*(-1); Lt:=lt*x; Gt:=gt*i; S4:=s4+dau*lt/gt; 50 f S5 = + sin(x) + sin2(x) + + sinn(x) Program s5; Uses crt; Var i, n,x:integer; Lt, S3:real; Begin Clrscr; Write(‘nhap so n = ‘); readln(n); lt:=1;s5:=1; For i:=1 to n Begin Lt:=lt*sin(x); S5:=s5+lt; End; Write(‘s5 = ‘,s5:5:3); Readln; End Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn End; Write(‘s4 = ‘,s4:5:3); Readln; End Bài 21: Viết chương trình để tìm lời giải cho toán sau: Trong giỏ vừa thỏ vừa gà, Một trăm cẳng bốn ba đầu Hỏi có gà thỏ? Gợi ý: 43 đầu => gà+thỏ = 43 Thỏ có chân => số thỏ số trâu đứng số trâu nằm =6.5) and (l>=6.5) and (h>=6.5) then writeln(‘Xep loai gioi’) else If (dtb=6.5) and (t>=5.0) and (l>=5.0) and (h>=5.0) then 60 Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn writeln(‘Xep loai kha’) else If (dtb=5.0) and (t>=3.5) and (l>=3.5) and (h>=3.5) then writeln(‘Xep loai TB’) else writeln(‘Xep loai yeu’); readln; end Câu ( điểm): Viết chương trình tính tổng: Viết chương trình nhập số tự nhiên n cho < n ≤100, nhập sai u cầu nhập lại nhập tính tổng Sn : Sn 1.2 2.3 3.4 n.(n 1) 3.4 4.5 5.6 (n 2)(n 3) Program sn; Uses crt; Var i,n: integer; sn:real; Begin Clrscr; Repeat Write(‘nhap n = ‘); readln(n); Until (n>5) and (na[j] then Begin Tg:=a[i]; a[i]:=a[j]; a[j]:=tg; 61 Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn End; Writeln(‘Day so sx theo thu tu tang dan: ‘) For i:=1 to n write(a[i]:5); writeln; Write(‘nhap k = ‘); readln(k); Write(‘nhap x = ‘); readln(x); Demk:=0; demx:=0 For i:=1 to n Begin If a[i] = k then demk:=demk+1; Ifa[i] 0) nhập vào từ bàn phím Program Câu ( điểm): Viết chương trình: Nhập vào dãy số gồm n phần tử số nguyên Yêu cầu in hình: 63 Tài liệu bồi dưỡng HSG Tin học Trường THCS Chàng Sơn Dòng 1: Tìm phần tử lớn thứ nhì dãy Dịng 2: Vị trí phần tử có giá trị lớn thứ nhì Dịng 3: Sắp xếp phần tử chẵn lên đầu dãy lẻ xuống cuối dãy.Thông báo màm hình dãy xếp Câu ( điểm): Viết chương trình dãy số nguyên: Viết chương trình nhập từ bàn phím số ngun vào mảng chiều sau thực cơng việc sau: - Tìm vị trí số lớn - Tìm số âm cuối mảng vị trí - Sắp xếp mảng giảm dần 64 ... tich hinh tron la:',pi*r*r:10:2); readln end c Nhận xét: pi số Một số người dùng khai báo Pascal tự tạo Pi Pascal tự tạo nên người dùng không cần khai báo Bài tập 1.4: Viết chương trình tính diện... lại hai lần dùng biến trung gian p, s để chương trình sáng sủa, dễ theo dõi sqrt hàm có sẵn turbo pascal Nó cho phép tính bậc hai số khơng âm Bài tập 1.5: Viết chương trình cho phép tính trung bình... m[i]:=m[i-1]+m[i-2]; for i:=1 to n write(m[i],' ,'); readln end Bài tập 5.8 Viết chương trình in hình tam giác Pascal Ví dụ, với n=4 in hình sau: 1 1 3 1 Hàng thứ n xác định từ hàng n-1: - Phần tử phần tử cuối