Tài liệu bồi dưỡng học sinh giỏi Tin 9Khi Tài liệu bồi dưỡng học sinh giỏi Tin 9đó: Tài liệu bồi dưỡng học sinh giỏi Tin 9 b Tài liệu bồi dưỡng học sinh giỏi Tin 9≠ Tài liệu bồi dưỡng họ
Trang 1Chương 1: MỘT SỐ VẤN ĐỀ TOÁN HỌC
I HỆ ĐẾM:
1.Hệ đếm thập phân (Decimal): Có Tài liệu bồi dưỡng học sinh giỏi Tin 910 Tài liệu bồi dưỡng học sinh giỏi Tin 9chữ Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9biểu Tài liệu bồi dưỡng học sinh giỏi Tin 9diễn Tài liệu bồi dưỡng học sinh giỏi Tin 9(0,1,2,3,4,5, Tài liệu bồi dưỡng học sinh giỏi Tin 96,7,8,9)
Dạng tổng quát: a1a2…an = a1.10 n-1+ a2.10n-2+… +an.100
VD: 35710 = 3.102+5.101+7.100
Tài liệu bồi dưỡng học sinh giỏi Tin 9(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Thường Tài liệu bồi dưỡng học sinh giỏi Tin 9khi Tài liệu bồi dưỡng học sinh giỏi Tin 9viết Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9ở Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9đếm Tài liệu bồi dưỡng học sinh giỏi Tin 9thập Tài liệu bồi dưỡng học sinh giỏi Tin 9phân Tài liệu bồi dưỡng học sinh giỏi Tin 9người Tài liệu bồi dưỡng học sinh giỏi Tin 9ta Tài liệu bồi dưỡng học sinh giỏi Tin 9không Tài liệu bồi dưỡng học sinh giỏi Tin 9ghi Tài liệu bồi dưỡng học sinh giỏi Tin 9cơ Tài liệu bồi dưỡng học sinh giỏi Tin 9số)
2.Hệ đếm nhị phân (Binary): Có Tài liệu bồi dưỡng học sinh giỏi Tin 92 Tài liệu bồi dưỡng học sinh giỏi Tin 9chữ Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9biểu Tài liệu bồi dưỡng học sinh giỏi Tin 9diễn Tài liệu bồi dưỡng học sinh giỏi Tin 9(0,1)
a Dạng tổng quát: a1a2…an = a1.2 n-1 + a2.2n-2 + … + an.20
VD: 10102 = 1.23 + 0.22 + 1.21 + 0.20 = 10
Tài liệu bồi dưỡng học sinh giỏi Tin 9(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Đây Tài liệu bồi dưỡng học sinh giỏi Tin 9chính Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9quy Tài liệu bồi dưỡng học sinh giỏi Tin 9đổi Tài liệu bồi dưỡng học sinh giỏi Tin 9từ Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9nhị Tài liệu bồi dưỡng học sinh giỏi Tin 9phân Tài liệu bồi dưỡng học sinh giỏi Tin 9sang Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9thập Tài liệu bồi dưỡng học sinh giỏi Tin 9phân)
b Cách quy đổi từ thập phân sang nhị phân:
- Bước 1: Chia liên tiếp số cần đổi cho 2 đến khi thương bằng 0.
- Bước 2: Viết ngược lại số dư, ta được số mới trong hệ nhị phân.
VD: Đổi số 6 từ hệ thập phân sang hệ nhị phân, ta làm như sau:
Có Tài liệu bồi dưỡng học sinh giỏi Tin 916 chữ Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9biểu Tài liệu bồi dưỡng học sinh giỏi Tin 9diễn Tài liệu bồi dưỡng học sinh giỏi Tin 9(0,1,2,3,4,5, Tài liệu bồi dưỡng học sinh giỏi Tin 96,7,8,9,A,B,C,D,E,F)
a Dạng tổng quát: a1a2…an = a1.16n-1 + a2.16n-2 + … + an.160
VD: 37Dh = 3.162 + 7.161 + 13.160 = 893
Tài liệu bồi dưỡng học sinh giỏi Tin 9(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Đây Tài liệu bồi dưỡng học sinh giỏi Tin 9chính Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9quy Tài liệu bồi dưỡng học sinh giỏi Tin 9đổi Tài liệu bồi dưỡng học sinh giỏi Tin 9từ Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9Hexa Tài liệu bồi dưỡng học sinh giỏi Tin 9sang Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9thập Tài liệu bồi dưỡng học sinh giỏi Tin 9phân)
b Cách quy đổi từ TP sang Hexa:
- Bước 1: Chia liên tiếp số cần đổi cho 16 đến khi thương bằng 0.
- Bước 2: Viết ngược lại số dư, ta được số mới trong hệ Hexa.
Tài liệu bồi dưỡng học sinh giỏi Tin 9(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Nếu số dư lớn hơn 9 ta quy đổi thành A, B, C, D, E, F)
c Cách quy đổi nhanh từ hệ Hexa sang hệ nhị phân và ngược lại:
Nhận xét: Số lớn nhất trong hệ Hexa có thể đổi ra 4 chữ số trong hệ nhị phân (1111=F).
Do đó muốn đổi từ hệ Hexa ra hệ nhị phân, ta đổi từng con số Haxa ra nhóm 4 số nhị phân(nếu chưa đủ 4 chữ số nhị phân ta phải thêm các chữ số 0 vào phía trước) Ngược lại, muốn đổi
từ hệ nhị phân sang Hexa, ta nhóm từ phải sang trái, mỗi nhóm 4 số rồi quy đổi từng nhómsang hệ Hexa
Trang 24.Phép nhân (Multiplication): A B = { (a,b) | a A và b B}
5.Phép phân hoạch (Partition):
Cho X là một tập hợp (X )
Tập X được chia ra thành các tập con Ai (Ai ), họ các tập con Ai này được gọi là 1 phânhoạch (hay chia lớp) của tập X khi nó giao nhau từng đôi một bằng rỗng và hợp lại bằng tậplớn X Tức là: A B = , i j và
i Ai = X
6. Hiệu đối xứng (Symmetric difference): A B = (A \ B) (B \ A)
Các ký hiệu tập hợp số thường dùng: Tài liệu bồi dưỡng học sinh giỏi Tin 9N (số tự nhiên), N* (số tự nhiên khác không), Z (số
nguyên) , Q (số hữu tỉ), I (số vô tỉ), R (số thực), P (số nguyên tố).
III SỐ NGUYÊN TỐ - ƯỚC SỐ CHUNG LỚN NHẤT - BỘI SỐ CHUNG NHỎ NHẤT:
1. Số nguyên tố:
Khái niệm: Số nguyên tố là số tự nhiên lớn hơn 1, chỉ có 2 ước là 1 và chính nó.
2. Ước số chung lớn nhất – Bội số chung nhỏ nhất:
- Thuật toán Euclid: Để tìm ƯCLN (a,b), ta có thể làm bằng cách trừ liên tiếp số lớn cho số
nhỏ tới khi 2 số bằng nhau, giá trị cuối cùng của a hoặc b chính là ƯCLN (a,b)
- Bổ đề: ƯCLN (a,0) = |a|, a ≠ 0
2.Phân số tối giản:
- Khi chia tử và mẫu của một phân số cho UCLN của chúng ta được phân số tối giản
V PHƯƠNG TRÌNH - BẤT PHƯƠNG TRÌNH:
1.Phương trình bậc nhất: ax + b = 0 (a ≠ 0)
Phương trình có nghiệm là x = -
a b
Lưu ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9a Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9Khi Tài liệu bồi dưỡng học sinh giỏi Tin 9đó: Tài liệu bồi dưỡng học sinh giỏi Tin 9 b Tài liệu bồi dưỡng học sinh giỏi Tin 9≠ Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9vô Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm;
b Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9PT Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9vô Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm.
2.Phương trình bậc hai: ax 2 + bx + c = 0 (a ≠ 0)
ax2 + bx = 0 x (ax + b) = 0
00
0
x x
Trang 3+ Nếu a và c cùng dấu: phương trình vô nghiệm.
c x
+ Nếu < 0: phương trình vô nghiệm
+ Nếu = 0: phương trình có 1 nghiệm x = –
a
b
2+ Nếu > 0: phương trình có 2 nghiệm phân biệt: x1=
2
b a
; x2=
2
b a
Lưu ý:
- Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9khuyết Tài liệu bồi dưỡng học sinh giỏi Tin 9a Tài liệu bồi dưỡng học sinh giỏi Tin 9(a Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90) Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9ax 2 Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9bx Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9c Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90 trở Tài liệu bồi dưỡng học sinh giỏi Tin 9thành Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9bậc Tài liệu bồi dưỡng học sinh giỏi Tin 9nhất
ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90.
- Tài liệu bồi dưỡng học sinh giỏi Tin 9Trong Tài liệu bồi dưỡng học sinh giỏi Tin 9toán Tài liệu bồi dưỡng học sinh giỏi Tin 9học Tài liệu bồi dưỡng học sinh giỏi Tin 9ta Tài liệu bồi dưỡng học sinh giỏi Tin 9còn Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9tìm Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm Tài liệu bồi dưỡng học sinh giỏi Tin 9của Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9bậc Tài liệu bồi dưỡng học sinh giỏi Tin 92 Tài liệu bồi dưỡng học sinh giỏi Tin 9bằng Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9tính Tài liệu bồi dưỡng học sinh giỏi Tin 9’ (nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9chẵn) Tài liệu bồi dưỡng học sinh giỏi Tin 9hoặc Tài liệu bồi dưỡng học sinh giỏi Tin 9tính Tài liệu bồi dưỡng học sinh giỏi Tin 9nhẩm Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm Tài liệu bồi dưỡng học sinh giỏi Tin 9trong Tài liệu bồi dưỡng học sinh giỏi Tin 9các Tài liệu bồi dưỡng học sinh giỏi Tin 9trường Tài liệu bồi dưỡng học sinh giỏi Tin 9hợp Tài liệu bồi dưỡng học sinh giỏi Tin 9a+b+c=0, Tài liệu bồi dưỡng học sinh giỏi Tin 9a-b+c=0 Tài liệu bồi dưỡng học sinh giỏi Tin 9Tuy Tài liệu bồi dưỡng học sinh giỏi Tin 9nhiên những Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9này Tài liệu bồi dưỡng học sinh giỏi Tin 9ít Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9trong Tài liệu bồi dưỡng học sinh giỏi Tin 9lập Tài liệu bồi dưỡng học sinh giỏi Tin 9trình.
Nếu a < 0 thì bất phương trình có nghiệm là x < -
a b
Lưu ý:
- Tài liệu bồi dưỡng học sinh giỏi Tin 9Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9khuyết Tài liệu bồi dưỡng học sinh giỏi Tin 9a Tài liệu bồi dưỡng học sinh giỏi Tin 9(a Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 90) Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9> Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9> Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9Khi Tài liệu bồi dưỡng học sinh giỏi Tin 9đó: b Tài liệu bồi dưỡng học sinh giỏi Tin 9≤ Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9BPT Tài liệu bồi dưỡng học sinh giỏi Tin 9vô Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm;
b Tài liệu bồi dưỡng học sinh giỏi Tin 9> Tài liệu bồi dưỡng học sinh giỏi Tin 90 Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9BPT Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9vô Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9nghiệm.
- Tài liệu bồi dưỡng học sinh giỏi Tin 9Các Tài liệu bồi dưỡng học sinh giỏi Tin 9dạng Tài liệu bồi dưỡng học sinh giỏi Tin 9khác Tài liệu bồi dưỡng học sinh giỏi Tin 9của Tài liệu bồi dưỡng học sinh giỏi Tin 9bất Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9bậc Tài liệu bồi dưỡng học sinh giỏi Tin 9nhất: Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9≥ Tài liệu bồi dưỡng học sinh giỏi Tin 90, Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9< Tài liệu bồi dưỡng học sinh giỏi Tin 90, Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9≤ Tài liệu bồi dưỡng học sinh giỏi Tin 90)
'x b y c a
c y b x a
+ Nếu Dx = Dy = 0 thì hệ PT có vô số nghiệm
Nếu D ≠ 0 thì hệ PT có nghiệm duy nhất:
Lưu ý: Trong Tài liệu bồi dưỡng học sinh giỏi Tin 9toán Tài liệu bồi dưỡng học sinh giỏi Tin 9học Tài liệu bồi dưỡng học sinh giỏi Tin 9ta Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9giải Tài liệu bồi dưỡng học sinh giỏi Tin 9hệ Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9bậc Tài liệu bồi dưỡng học sinh giỏi Tin 9nhất Tài liệu bồi dưỡng học sinh giỏi Tin 92 Tài liệu bồi dưỡng học sinh giỏi Tin 9ẩn Tài liệu bồi dưỡng học sinh giỏi Tin 9bằng Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9pháp Tài liệu bồi dưỡng học sinh giỏi Tin 9thế
hoặc Tài liệu bồi dưỡng học sinh giỏi Tin 9phương Tài liệu bồi dưỡng học sinh giỏi Tin 9pháp Tài liệu bồi dưỡng học sinh giỏi Tin 9cộng Tài liệu bồi dưỡng học sinh giỏi Tin 9đại Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9Tuy Tài liệu bồi dưỡng học sinh giỏi Tin 9nhiên Tài liệu bồi dưỡng học sinh giỏi Tin 9những Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9đó Tài liệu bồi dưỡng học sinh giỏi Tin 9ít Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9trong Tài liệu bồi dưỡng học sinh giỏi Tin 9lập Tài liệu bồi dưỡng học sinh giỏi Tin 9trình.
VI HÀM SỐ - ĐỒ THỊ:
1.Hàm số bậc nhất: y = ax + b (a ≠ 0)
Trang 4Cho x = 1 y = a, ta được A (1;a)
Vậy đồ thị là một đường thẳng đi qua gốc tọa độ O (0;0) và qua điểm A (1;a)
- Vị trí tương đối của hai đường thẳng (d) y = ax + b và (d’): y = a’x + b’:
- Để xác định hàm số y = ax + b biết đồ thị của nó đi qua 2 điểm A (x1,y1), B (x2,y2), ta chỉ
có thuộc đường thẳng y = ax + b hay không
(C Tài liệu bồi dưỡng học sinh giỏi Tin 9(x 3 ,y 3 ) Tài liệu bồi dưỡng học sinh giỏi Tin 9thuộc Tài liệu bồi dưỡng học sinh giỏi Tin 9đường Tài liệu bồi dưỡng học sinh giỏi Tin 9thẳng Tài liệu bồi dưỡng học sinh giỏi Tin 9y Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 9ax Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9y 3 Tài liệu bồi dưỡng học sinh giỏi Tin 9= Tài liệu bồi dưỡng học sinh giỏi Tin 9ax 3 Tài liệu bồi dưỡng học sinh giỏi Tin 9+ Tài liệu bồi dưỡng học sinh giỏi Tin 9b)
2.Hàm số: y = ax 2 (a ≠ 0)
- Tập xác định: x R
- Tính chất biến thiên:
+ Nếu a>0 thì hàm số đồng biến khi x>0 và nghịch biến khi x<0
+ Nếu a<0 thì hàm số đồng biến khi x<0 và nghịch biến khi x>0
- Đồ thị của hàm số y = ax2 là một Parabol có đỉnh O (0;0) và nhận trục Oy làm trục đối xứng.Nếu a>0 thì đồ thị nằm phía trên trục hoành Ox; nếu a<0 thì đồ thị nằm phía dưới trục hoànhOx
- Cách vẽ đồ thị của hàm số y = ax2:
+ Lập bảng giá trị tương ứng:
Trang 5Y = ax2 y1 y2 0 y2 y1
+ Biểu diễn các điểm có tọa độ như bảng trên Vẽ Parabol đi qua các điểm đó
- Quan hệ giữa (P) y = ax2 (a ≠ 0) và đường thẳng (D) y = mx + n:
Phương trình hoành độ giao điểm của (P) và (D) là:
ax 2 = mx + n ax 2 – mx – n = 0 (*)
+ (P) cắt (D) tại hai điểm phân biệt (*) có hai nghiệm phân biệt (>0)
+ (P) tiếp xúc (D) (*) có nghiệm kép (=0)
+ (P) và (D) không có điểm chung (*) vô nghiệm (<0)
Mở rộng: Tài liệu bồi dưỡng học sinh giỏi Tin 9Đồ thị hàm số y = ax2 + bx + c cũng là một Parabol có tọa độ đỉnh là ( ,
- Nếu a là số gần đúng của số đúng āthì a ā – a được gọi là sai số tuyệt đối của số gầnđúng a
- Nếu a ā – a d thì d ā – a d hay a d ā a d , ta nói a là số gần đúng của số
đúng ā với độ chính xác d, và quy ước viết gọn là ā = a ± d
Trang 6IX CẤP SỐ CỘNG – CẤP SỐ NHÂN:
1.Cấp số cộng: Cấp số cộng là một dãy số (hữu hạn hoặc vô hạn), trong đó kể từ số hạng thứ
hai, mỗi số hạng đều bằng số hạng đứng ngay trước nó cộng với một số không đổi d Số d đượcgọi là công sai của cấp số cộng Nếu (Un) là một cấp số cộng với công sai d, ta có công thứctruy hồi: Un 1 Und với n N*
n
n(a a )S
2
2.Cấp số nhân: Cấp số nhân là một dãy số (hữu hạn hoặc vô hạn), trong đó kể từ số hạng thứ
hai, mỗi số hạng đều là tích của số hạng đứng ngay trước nó với một số không đổi q Số q đượcgọi là công bội của cấp số nhân Nếu (Un) là một cấp số nhân với công bội q, ta có công thứctruy hồi: Un 1 U qn với n N*
Công thức tính tổng n số hạng đầu của cấp số nhân:
n 1 n
u (1 q )S
lôgarit cơ số a của b và kí hiệu là logab Ta có: x = loga b a x = b
3.Logarit tự nhiên (Logarit cơ số e – Logarit Nêpe):
Số e là hằng số quan trọng của toán học, e 2.718 Ta có: x = log e b e x = b logeb gọi
là gogarit tự nhiên của b và viết tắt là ln b
4.Ứng dụng trong lập trình:
Trong Pascal chỉ có 2 hàm liên quan đến số mũ là : Exp (x) = ex và Ln (x) =ln x
- Tính An: An = (eloge A)n = (eln A)n = en.ln A A n = Exp (n*LN (A))
Trang 7XI HÌNH HỌC:
1.Đ ịnh lí Py-ta-go: Tam giác ABC vuơng tại A BC2 = AB2 + AC2
2.Hệ thức lượng trong tam giác vuơng:
b2=ab’ (c2=ac’); h2=b’c’; bc = ah; 12 12 12
6.Arcsin, Arccos, Arctan, Arccotg:
Arcsin a = số đo của cung cĩ sin bằng a
Arccos a = số đo của cung cĩ cos bằng a
Arctan a = số đo của cung cĩ tang bằng a
Arccotg a = số đo của cung cĩ cotang bằng a
7.Đổi độ sang Radian và ngược lại: 10
0180
8.Một số cơng thức tính chu vi, diện tích:
- Chu vi hình vuơng: C 4a (với a là cạnh hình vuơng)
- Diện tích hình vuơng: S a2 (với a là cạnh hình vuơng)
- Chu vi hình chữ nhật: C2(a b ) (với a là chiều dài, b là chiều rộng)
- Diện tích hình chữ nhật: S ab (với a là chiều dài, b là chiều rộng)
2
2
- Chu vi đường trịn: C = 2R (với R bán kính)
- Diện tích hình trịn: S = R2 (với R bán kính)
Cạnh đối Cạnh kề
Trang 8Chương 2: MỘT SỐ VẤN ĐỀ CƠ BẢN TRONG PASCAL
I GIẢI THUẬT:
a Khái niệm:
Giải thuật (còn gọi là thuật toán) là một tập hữu hạn các thao tác (các công việc, các phéptoán…) có thể đặt tên được và chúng được thực hiện theo một trình tự thích hợp đối với một sốđối tượng nào đó để đạt được điều mong muốn
b Biểu diễn giải thuật:
Thông thường, người ta sử dụng một trong 4 cách sau để biểu diễn giải thuật:
- Liệt kê: Là hình thức liệt kê từng bước bằng ngôn ngữ tự nhiên
- Lưu đồ: Là hình thức biểu diễn giải thuật dưới dạng sơ đồ
- Dùng ngôn ngữ lập trình
- Dùng ngôn ngữ mã giả
II CÁC PHÉP TOÁN CƠ BẢN – TỪ KHÓA, TÊN TỰ ĐẶT:
1 Các phép tính: + ; - ; * ; / (chia cho thương là số thực); DIV (chia lấy phần nguyên); MOD (chia lấy phần dư); IN (thuộc về - dùng cho tập hợp)
để trừ hai tập hợp; phép * có thể dùng để lấy phần giao của hai tập hợp; phép DIV, MODkhông dùng được với số thực
2 Các phép so sánh: > ; < ; = ; <> ; >= ; <=
3 Từ khóa: Là các từ của riêng Pascal, không được dùng vào những việc khác hoặc đặt tên
mới trùng với từ khóa
Các từ khóa bao gồm: And, Array, Begin, Case, Const, Div, Do, Downto, Else, End, File, For, Function, Goto, If, In, Label, Mod, Nil, Not, Of, Or, Packed, Procedure, Program, Record, Repeat, Set, String, Then, To, Type, Until, Uses, Var, While, With
4 Tên tự đặt: Là một dãy ký tự dùng để đặt tên chương trình, biến, hằng, nhãn, thủ tục,
hàm… Tên phải bắt đầu bằng một chữ cái và theo sau là các chữ cái, chữ số, dấu “_” (gạchnối dưới) Tên không được có khoảng trắng, không được chứa ký hiệu đặc biệt và khôngđược trùng với từ khóa Độ dài tối đa của tên là 127 ký tự Không nên đặt tên trùng với tênchuẩn của Pascal
Một số tên chuẩn của Pascal: Abs, Arctan, Boolean, Byte, Char, Chr, Cos, Eof, Exp,False, Integer, New, Old, Read, Readln, Real, Reset, Rewrite, Round, Sin, Sqr, Sqrt, Text,True, Write, Writeln
III BIẾN, HẰNG, LỆNH GÁN - MỘT SỐ THỦ TỤC CƠ BẢN:
1 Biến: Biến là những đại lượng có thể thay đổi giá trị Tên của biến là tên vùng nhớ lưu trữ
dữ liệu Cách khai báo biến: Var <DS tên biến>: <kiểu dữ liệu>;
(Một số kiểu cơ bản: Integer, Real, Char, String, Boolean )
VD: Var n,p: Integer; f: Boolean;
2 Hằng: Hằng là những đại lượng không thay đổi giá trị Tên của hằng là tên vùng nhớ lưu
Trang 99(1870- Tổng quát: Một chương trình thường có những khai báo theo thứ tự sau:
Khai báo tên chương trình: PROGRAM <Tên chương trình>;
Khai báo sử dụng đơn vị chương trình: USES <DS đơn vị chương trình>;
Khai báo nhãn: LABEL <Tên nhãn>;
Khai báo hằng : CONST <tên hằng> = <Giá trị>;
Khai báo kiểu dữ liệu mới: TYPE <Tên kiểu DL mới> = <Định nghĩa kiểu>;
Khai báo biến: VAR <DS biến 1>: <Kiểu DL 1>; <DS biến 2>: <Kiểu DL 2>;
Khai báo thủ tục: PROCEDURE <Tên thủ tục> (Các tham số nếu cần);
Khai báo hàm: FUNCTION <Tên hàm> (Các tham số nếu cần):<Kiểu DL hàm>;
3 Ghi chú trong chương trình: {nội dung ghi chú} hoặc (* nội dung ghi chú *)
4 Lệnh gán: <Biến>:= <Biểu thức>; (VD: x:= -b/a;)
5 Thủ tục nhập:
Read (DS biến); hoặc Readln (DS biến); {Nhập vào DS biến các giá trị từ bàn phím}
(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9nhập Tài liệu bồi dưỡng học sinh giỏi Tin 9nhiều Tài liệu bồi dưỡng học sinh giỏi Tin 9biến Tài liệu bồi dưỡng học sinh giỏi Tin 9một Tài liệu bồi dưỡng học sinh giỏi Tin 9lần Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9mỗi Tài liệu bồi dưỡng học sinh giỏi Tin 9biến Tài liệu bồi dưỡng học sinh giỏi Tin 9phải Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9nhau Tài liệu bồi dưỡng học sinh giỏi Tin 91 Tài liệu bồi dưỡng học sinh giỏi Tin 9khoảng Tài liệu bồi dưỡng học sinh giỏi Tin 9trắng)
Read (F, DS biến); hoặc Readln (F, DS biến); {Đọc từ tệp F vào DS biến}
Readln; {Chờ nhấn phím Enter}
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9nhập Tài liệu bồi dưỡng học sinh giỏi Tin 9đặc Tài liệu bồi dưỡng học sinh giỏi Tin 9biệt: Tài liệu bồi dưỡng học sinh giỏi Tin 9Readkey : Char; {Cho kí tự khi gõ phím mà không cần nhấn Enter.
Để sử dụng thủ tục này phải khai báo Uses CRT;}
Hàm KeyPressed : Boolean; cho giá trị True nếu bàn phím có kí tự gõ, ngược lại sẽ có giá
trị False.
<Tên Thủ tục / Hàm> (<Các đối số> : <Kiểu của đối số>) : <Kiểu của hàm>
Ví dụ: Ghi Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục FillChar (Var X; N:Word, V)
Có Tài liệu bồi dưỡng học sinh giỏi Tin 9nghĩa Tài liệu bồi dưỡng học sinh giỏi Tin 9là: Tên thủ tục là FillChar Thủ tục có 3 đối số X, N, V, trong đó X phải
là 1 biến kiểu bất kỳ (tham Tài liệu bồi dưỡng học sinh giỏi Tin 9biến), N phải là số nguyên kiểu Word (biến hoặc giá trị đều
được), V là giá trị bất kỳ (biến hoặc giá trị đều được).
Ghi Hàm Copy (S : String; P,N : Integer) : String
Có Tài liệu bồi dưỡng học sinh giỏi Tin 9nghĩa Tài liệu bồi dưỡng học sinh giỏi Tin 9là: Tên hàm là Copy Hàm có 3 đối số S, P, N, trong đó S phải là chuỗi
(String), P và N phải là số nguyên kiểu Integer Kết quả của hàm trả về là chuỗi (String).
Nếu trước đối số có từ VAR thì phải truyền vào đối số ở vị trí đó là biến (không được truyền giá trị - Về tham biến, tham trị sẽ nghiên cứu trong chương 4) Nếu ghi rõ kiểu của đối số thì phải truyền đúng kiểu cho đối số đó, nếu không ghi rõ kiểu đối số thì có thể truyền kiểu bất kỳ (Riêng các kiểu Integer, Byte, ShortInt, LongInt, Word có thể truyền chung tùy từng trường hợp Nếu đối số là số nguyên nói chung thì chỉ ghi đại diện bằng từ Integer) Đối số nào có thể có hoặc không có vẫn được thì ghi trong ngoặc vuông [ ] Giữa các loại đối số ghi cách nhau dấu chấm phẩy để cho dễ phân loại, nhưng khi sử dụng ta phải dùng dấu phẩy (không được dùng dấu chấm phẩy).
6 Thủ tục xuất:
Write (DS dữ liệu xuất); hoặc Writeln (DS dữ liệu xuất); {Xuất ra màn hình}
Write (n:d); hoặc Writeln (n:d); {Dành d vị trí để xuất biến nguyên n}
Write (x:d:d1); hoặc Writeln (x:d:d1);{Xuất biến thực x với d vị trí và d1 kí số thập phân} Write (F, DS dữ liệu xuất); hoặc Writeln (F, DS dữ liệu xuất);{Ghi dữ liệu vào tệp F} Write (LST, DS dữ liệu xuất); hoặc Writeln (LST, DS dữ liệu xuất);{Xuất ra máy in} Writeln; {Xuống dòng}
Write (#7); hoặc Write (Chr (7)); {Phát ra một tiếng chuông ở loa của máy}
Trang 107 Các thủ tục điều khiển màn hình: (Cần khai báo Uses CRT; trước khi dùng)
ClrScr: Xóa mành hình
ClrEol: Xóa từ vị trí con trỏ tới cuốn dòng
DelLine: Xóa toàn bộ dòng chứa con trỏ, sau đó dồn các dòng dưới lên
InsLine: Xen một dòng trắng vào màn hình từ vị trí con trỏ
Gotoxy (Cột, Dòng : Byte): Chuyển tới tọa độ cột, dòng
Hàm WhreX : Byte cho giá trị cột hiện thời
Hàm WhreY : Byte cho giá trị dòng hiện thời.
Textbackground (Color) hoặc Textbackground (từ 0 tới 15 : Byte): Định màu nền TextColor (Color) hoặc TextColor (số từ 0 tới 15 : Byte): Định màu chữ.
Windows (X 1 ,Y 1 ,X 2 ,Y 2 : Byte): Tạo cửa sổ có tọa độ X 1 ,Y 1 ,X 2 ,Y 2 trong màn hình.
LowVideo, NormVideo, HighVideo: điều khiển độ sáng của màn hình.
8 Một số hàm và thủ tục khác:
Hàm MaxInt : Integer Cho giá trị lớn nhất của kiểu Integer
Hàm MaxLongInt : LongInt Cho giá trị lớn nhất của kiểu LongInt
Break: Thoát khỏi vòng lặp
Continue: Bỏ qua những lệnh sau Continue và tiếp tục thực hiện vòng lặp
Exit: Thoát khỏi khối lệnh (thường dùng để thoát khỏi chương trình con)
Halt: Thoát khỏi chương trình.
Randomize: Khởi động bộ tạo số ngẫu nhiên để cung cấp cho hàm Random
Hàm Random (N : Word ) : Word cho số nguyên ngẫu nhiên trong nửa đoạn [0;n)
Hàm SizeOf (X) : Integer cho biết kích thước của biến hoặc kiểu x tính theo đơn vị Byte
FillChar (Var X, N : Word, V): Ghi n byte liên tiếp trong bộ nhớ với giá trị V, bắt đầu từ
byte đầu tiên được biến x chiếm giữ Việc kiểm tra độ dài biến không được thực hiện nênthường phải dùng kèm theo hàm SizeOf (x)
VD: Tài liệu bồi dưỡng học sinh giỏi Tin 9FillChar (A,SizeOf (A),0); {Điền đầy mảng A với giá trị là số 0}
Sound (F : Word): Tạo âm thanh tần số F tính theo Hz cho đến khi gặp lệnh NOSOUND Nosound: Ngừng thực hiện hàm SOUND.
Delay (T : Word): Tạo thời gian trể T tính theo đơn vị mili giây (T là số nguyên).
Goto <Nhãn>: Nhảy vô điều kiện tới <Nhãn> {không Tài liệu bồi dưỡng học sinh giỏi Tin 9nên Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng}
IV MỘT SỐ CẤU TRÚC ĐIỀU KHIỂN:
1 Câu lệnh điều kiện IF:
Dạng 1: IF <Điều kiện> THEN <Câu lệnh>;
Dạng 2: IF <Điều kiện> THEN <Câu lệnh 1> ELSE <Câu lệnh 2>;
(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Trước Tài liệu bồi dưỡng học sinh giỏi Tin 9ELSE Tài liệu bồi dưỡng học sinh giỏi Tin 9của Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh Tài liệu bồi dưỡng học sinh giỏi Tin 9IF Tài liệu bồi dưỡng học sinh giỏi Tin 9không Tài liệu bồi dưỡng học sinh giỏi Tin 9được Tài liệu bồi dưỡng học sinh giỏi Tin 9viết Tài liệu bồi dưỡng học sinh giỏi Tin 9dấu Tài liệu bồi dưỡng học sinh giỏi Tin 9chấm Tài liệu bồi dưỡng học sinh giỏi Tin 9phẩy)
2 Câu lệnh lựa chọn CASE:
CASE <Biểu thức> OF CASE <Biểu thức> OF
<Giá trị 1>: <Câu lệnh 1>; <Giá trị 1>: <Câu lệnh 1>;
<Giá trị 2>: <Câu lệnh 2>; <Giá trị 2>: <Câu lệnh 2>;
<Giá trị n>: <Câu lệnh n>; <Giá trị n>: <Câu lệnh n>;
END;
(Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9CASE Tài liệu bồi dưỡng học sinh giỏi Tin 9kết Tài liệu bồi dưỡng học sinh giỏi Tin 9thúc Tài liệu bồi dưỡng học sinh giỏi Tin 9bằng Tài liệu bồi dưỡng học sinh giỏi Tin 9END; Tài liệu bồi dưỡng học sinh giỏi Tin 9Trước Tài liệu bồi dưỡng học sinh giỏi Tin 9ELSE Tài liệu bồi dưỡng học sinh giỏi Tin 9của Tài liệu bồi dưỡng học sinh giỏi Tin 9CASE Tài liệu bồi dưỡng học sinh giỏi Tin 9được Tài liệu bồi dưỡng học sinh giỏi Tin 9chấm Tài liệu bồi dưỡng học sinh giỏi Tin 9phẩy Tài liệu bồi dưỡng học sinh giỏi Tin 9)
Trang 113 Điều khiển lặp FOR…TO/ FOR…DOWNTO:
Dạng 1: FOR <Biến đếm>:= <Trị đầu> TO <Trị cuối> DO <Câu lệnh>;
Dạng 2: FOR <Biến đếm>:= <Trị cuối> DOWNTO <Trị đầu> DO <Câu lệnh>;
4 Điều khiển lặp REPEAT…UNTIL: Ngừng lặp khi <Điều kiện> ĐÚNG.
UNTIL <Điều kiện>;
5 Điều khiển lặp WHILE…DO: Ngừng lặp khi <Điều kiện> SAI.
WHILE <Điều kiện> DO <Câu lệnh>;
(Sau Tài liệu bồi dưỡng học sinh giỏi Tin 9DO Tài liệu bồi dưỡng học sinh giỏi Tin 9chỉ Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 91 Tài liệu bồi dưỡng học sinh giỏi Tin 9câu Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh, Tài liệu bồi dưỡng học sinh giỏi Tin 9muốn Tài liệu bồi dưỡng học sinh giỏi Tin 9lặp Tài liệu bồi dưỡng học sinh giỏi Tin 9nhiều Tài liệu bồi dưỡng học sinh giỏi Tin 9câu Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh Tài liệu bồi dưỡng học sinh giỏi Tin 9ta Tài liệu bồi dưỡng học sinh giỏi Tin 9phải Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9câu Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh Tài liệu bồi dưỡng học sinh giỏi Tin 9ghép)
6 Lệnh ghép: Ở những chỗ ta chỉ được sử dụng 1 câu lệnh, nhưng ta lại muốn sử dụng nhiều
hơn 1 câu lệnh thì phải sử dụng lệnh ghép Lệnh ghép có dạng:
1 Viết chương trình nhập tổng, hiệu của hai số nguyên a,b rồi in ra giá trị của hai số đó ?
2 Viết chương trình nhập tổng, tích của hai số nguyên a,b rồi in ra giá trị của hai số đó ?
3 Viết chương trình tính tổng các phần tử của cấp số cộng có n phần tử biết rằng phần tử thứ
nhất là a và công sai là d ?
4 Viết chương trình tính tổng các phần tử của cấp số nhân có n phần tử biết rằng phần tử thứ
nhất là a và công bội là q ?
5 Cho 2 số nguyên m và n (1 ≤ m ≤ 12; 0 ≤ n < 60) Hãy xác định thời gian bé nhất mà sau
khoảng thời gian đó hai kim đồng hồ sẽ:
a) Trùng nhau
b) Vuông góc với nhau
6 Tuổi cha hiện nay là B và tuổi con là C (0<C<B; B và C là số nguyên và theo luật hôn nhân
gia đình B – C >19)
Viết chương trình kiểm tra xem tuổi cha có gấp đôi tuổi con không ? Nếu đúng thì đưa ra
màn hình thông báo “Tuổi cha gấp đôi tuổi con” Trong trường hợp ngược lại, hãy tính số năm
mà trước đó (hoặc sau đó) tuổi cha gấp đôi tuổi con và đưa ra thông báo dạng “n năm trước
đây tuổi cha gấp đôi tuổi con” hoặc “sau n năm nữa tuổi cha sẽ gấp đôi tuổi con”.
Ví dụ: Với B=59, C=29 thì thông báo sẽ đưa ra là:
“Sau 1 năm nữa tuổi cha sẽ gấp đôi tuổi con”
7 Viết chương trình tính tổng n số tự nhiên đầu tiên (n là số tự nhiên nhập từ bàn phím)
hợp lệ” rồi kết thúc chương trình.
Trang 128 Cho n! (n Tài liệu bồi dưỡng học sinh giỏi Tin 9giai Tài liệu bồi dưỡng học sinh giỏi Tin 9thừa) là tích n số tự nhiên dầu tiên (n! = 1.2.3 n) Hãy viết chương trình
tính n! với n là số tự nhiên nhập vào từ bàn phím (n>0)
9 Nhập số nguyên dương n Tính:
n!! = 1.3.5 n (Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9n Tài liệu bồi dưỡng học sinh giỏi Tin 9lẻ)
2.4.6 n (Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9n Tài liệu bồi dưỡng học sinh giỏi Tin 9chẵn)
10 Bộ ba số nguyên dương a, b, c được gọi là bộ số Py-ta-go nếu tổng các bình phương của
hai số bằng bình phương của số còn lại Viết chương trình nhập từ bàn phím ba số nguyêndương a, b, c và kiểm tra xem chúng có là bộ ba số Py-ta-go hay không ?
11 Số tự nhiên n gọi là Amstrong nếu nó bằng tổng lập phương các chữ số của nó
Ví dụ 153 = 1+125+27 Viết chương trình tìm tất cả các số Amstrong có 3 chữ số
12 Viết chương trình đổi từ năm dương lịch sang năm âm lịch Năm dương lịch được biểu
diễn bằng một số nguyên dương, năm âm lịch được biểu diễn bằng 2 từ theo thứ tực Can vàChi Can và Chi được lấy lần lượt vòng tròn, năm xuất phát là năm Tân Dậu (ứng vớidương lịch là năm 1)
Có 10 Can được lấy theo thứ tự như sau: Canh, Tân, Nhâm, Quý, Giáp, Ất, Bính,Đinh, Mậu, Kỷ
Có 12 Chi được lấy theo thứ tự như sau: Thân, Dậu, Tuất, Hợi, Tí, Sửu, Dần, Mão,Thìn, Tỵ, Ngọ, Mùi (Lưu ý: Viết Tí, Tỵ để khỏi nhần khi không có dấu thanh tiếng Việt)
13 Viết chương trình để giải bài toán sau: Trăm trâu ăn trăm bó cỏ
Trâu đứng ăn nămTrâu nằm ăn ba
Lụ khụ trâu già
Ba con một bóHỏi có bao nhiêu con trâu mỗi loại ?
14 Viết chương trình in tất cả các nghiệm nguyên dương của phương trình: x2 + y2 = n với nnhập từ bàn phím (n > 0)
15 Viết chương trình nhập một số nguyên từ bàn phím và kiểm tra xem số vừa nhập có phải
là lập phương của một số hay không (tức là có dạng z3 với z là số nguyên)
16 Viết chương trình in bảng cửu chương (từ 2 tới 9) ra màn hình ?
17 Nhập n số nguyên (0< n <= 20) In ra màn hình tam giác cân có chiều cao n:
Trang 13Chương 3: CÁC KIỂU DỮ LIỆU ĐƠN GIẢN TRONG PASCAL
đếm được Các kiểu khác là kiểu dữ liệu không đếm được Không được dùng kiểu dữ liệu không đếm được để làm chỉ số mảng, chỉ số lặp.
I KIỂU LOGIC (BOOLEAN):
1 Tập giá trị: True, False (kích thước: 1 bit)
2 Khai báo: VAR <DS biến>: Boolean; VD: Var f: Boolean;
3 Đọc / ghi biến Logic: Ta không thể dùng lệnh Read để đọc biến logic Muốn nhận dữ liệu
cho biến logic, ta phải dùng phép gán VD: f:=3>5;
Ta có thể dùng lệnh Write để viết giá trị của biến logic ra màn hình Nhưng thông thường
ta chỉ dùng giá trị của biến logic để làm điều kiện
4 Các phép toán: And, Or, Xor, Not
Lưu ý: Các phép so sánh luôn cho giá trị kiểu logic.
5 Ví dụ: Viết chương trình kiểm tra số nhập vào có phải là số nguyên tố không?
Var n,p: Integer; f: Boolean;
Kiểu dữ liệu
Kiểu vô hướng đơn giản
Kiểu dữ liệu cócấu trúc
Kiểu cơ sở
Kiểu do người dùng định nghĩa
Kiểu số nguyên (Integer)Kiểu số thực (Real)Kiểu ký tự (Char)Kiểu khoảng conKiểu liệt kêKiểu mảng (Array)
Kiểu tập hợp (Set)Kiểu bản ghi (Record)Kiểu tệp (File)
Kiểu xâu ký tự (String)Kiểu con trỏ (Pointer)
Thiên tài gồm một phần trăm
là linh cảm , còn chín mươi chín phần trăm là mồ hôi.
Thomas Tài liệu bồi dưỡng học sinh giỏi Tin 9Alva Tài liệu bồi dưỡng học sinh giỏi Tin 9Edison Tài liệu bồi dưỡng học sinh giỏi Tin 9(1847-1931)
Kiểu logic (Boolean)
Trang 14While (p <= Sqrt (n)) and f do
If f then Write (n, ' la so nguyen to') Else Write (n, ' khong phai la so nguyen to')
Readln;
End
Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Giả sử f là biến logic Thay vì viết If f=true … , ta chỉ cần viết If f…;
Thay vì viết If f=False…, ta chỉ cần viết If not f …
II KIỂU SỐ NGUYÊN (INTEGER):
VAR <DS biến>: <từ khai báo: Byte, Shortint, Integer, Word, Longint>;
VD: Var i,n: Integer;
3 Đọc / ghi biến nguyên: Ta có thể dùng lệnh Read, Write để đọc / ghi biến nguyên VD:
Readln (n); s:= 0; For i:=1 to n do s:= s+i; Writeln (s);
For b:= 0 to 9 doFor c:= 0 to 9 do
if a+b+c = a*b*c then Writeln (a,b,c);
While n <> 0 do Begin cs:= n mod 10;
Trang 15III KIỂU SỐ THỰC (REAL):
1 Tập giá trị:
2 Khai báo:
VAR <DS biến>:<từ khai báo: Real, Single, Double, Extended>;VD: Var x,y,tam: Real;
Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Thông Tài liệu bồi dưỡng học sinh giỏi Tin 9thường Tài liệu bồi dưỡng học sinh giỏi Tin 9chỉ Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9kiểu Tài liệu bồi dưỡng học sinh giỏi Tin 9Real Tài liệu bồi dưỡng học sinh giỏi Tin 9Muốn Tài liệu bồi dưỡng học sinh giỏi Tin 9sử Tài liệu bồi dưỡng học sinh giỏi Tin 9dụng Tài liệu bồi dưỡng học sinh giỏi Tin 9các Tài liệu bồi dưỡng học sinh giỏi Tin 9kiểu Tài liệu bồi dưỡng học sinh giỏi Tin 9thực Tài liệu bồi dưỡng học sinh giỏi Tin 9khác Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9phải vào Tài liệu bồi dưỡng học sinh giỏi Tin 9Options Tài liệu bồi dưỡng học sinh giỏi Tin 9/ Tài liệu bồi dưỡng học sinh giỏi Tin 9Compiler Tài liệu bồi dưỡng học sinh giỏi Tin 9và Tài liệu bồi dưỡng học sinh giỏi Tin 9chọn Tài liệu bồi dưỡng học sinh giỏi Tin 9mục Tài liệu bồi dưỡng học sinh giỏi Tin 98087 Tài liệu bồi dưỡng học sinh giỏi Tin 9/ Tài liệu bồi dưỡng học sinh giỏi Tin 980287.
3 Đọc / ghi biến thực: Ta có thể dùng lệnh Read, Write để đọc / ghi biến thực
VD: Readln (x,y); tam:= x; x:= y; y:= tam; Wrietln (x,' ', y);
4 Các phép toán:
- Phép toán số học: + ; - ; * ; / (Không dùng DIV, MOD cho số thực)
- Phép toán so sánh: > ; < ; = ; <> ; >= ; <=
5 Một số hàm và thủ tục xử lý số nguyên, số thực:
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Abs (X : Integer / Real) : Integer / Real = x VD: Abs (-5) = 5
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Trunc (X : Integer / Real) : LongInt lấy phần nguyên của x VD: Trunc (5.75) = 5 Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Round (X : Integer / Real) : LongInt làm tròn x VD: Round (5.75) = 6
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Int (X : Integer / Real) : Real cho giá trị là phần nguyên của x Tài liệu bồi dưỡng học sinh giỏi Tin 9VD: Int (5.75) = 5.00 Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Frac (X : Integer / Real) : Real cho giá trị là phần thập phân của x Tài liệu bồi dưỡng học sinh giỏi Tin 9
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9VD: Frac (5.75)=0.75
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Inc (Var I : kiểu đếm được; [N : LongInt]) thủ tục tăng giá trị biến i:=i+ 1 [+n]
VD: n:=5; Inc (n); Write (n); {Viết ra màn hình số 6}
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Dec (Var I : kiểu đếm được; [N : LongInt]) thủ tục giảm giá trị biến i:=i–1 [-n]
VD: n:=5; Dec (n,2); Write (n); {Viết ra màn hình số 3}
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Odd (N : LongInt) : Boolean cho giá trị True nếu n là số lẻ VD: Odd (5)=True
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Cos (X : Real) : Real = Cos x (X Tài liệu bồi dưỡng học sinh giỏi Tin 9tính Tài liệu bồi dưỡng học sinh giỏi Tin 9theo Tài liệu bồi dưỡng học sinh giỏi Tin 9Radian) VD: Cos ( (pi/180)*60)=0.5 Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Sin (X : Real) : Real = Sin x (X Tài liệu bồi dưỡng học sinh giỏi Tin 9tính Tài liệu bồi dưỡng học sinh giỏi Tin 9theo Tài liệu bồi dưỡng học sinh giỏi Tin 9Radian) Tài liệu bồi dưỡng học sinh giỏi Tin 9VD: Sin ( (pi/180)*30) = 0.5
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Arctan (X : Real) : Real = Arctg x (Kết Tài liệu bồi dưỡng học sinh giỏi Tin 9quả Tài liệu bồi dưỡng học sinh giỏi Tin 9hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9tính Tài liệu bồi dưỡng học sinh giỏi Tin 9theo Tài liệu bồi dưỡng học sinh giỏi Tin 9Radian).
VD: Arctan (1)*180/pi=45.00
6 Ví dụ: Viết chương trình nhập 3 số thực x, y, z rồi in ra số có giá trị lớn nhất ?
Var x, y, z, Max: Real;
BeginReadln (x, y, z);
Max:= x;
If y > Max then Max:= y;
If z > Max then Max:= z;
Writeln (Max:0:2); {dành “đủ” vị trí để in với 2 kí số thập phân}
Readln;
End
{Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9tìm Tài liệu bồi dưỡng học sinh giỏi Tin 9số Tài liệu bồi dưỡng học sinh giỏi Tin 9nhỏ Tài liệu bồi dưỡng học sinh giỏi Tin 9nhất Tài liệu bồi dưỡng học sinh giỏi Tin 9bằng Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9tương Tài liệu bồi dưỡng học sinh giỏi Tin 9tự Tài liệu bồi dưỡng học sinh giỏi Tin 9như Tài liệu bồi dưỡng học sinh giỏi Tin 9trên}
Trang 16IV KIỂU KÝ TỰ (CHAR):
1 Tập giá trị: Gồm tốt cả các ký tự trong bảng mã ASCII (American Standard Code for
information Interchange) Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: 65 90 ‘A’ ‘Z’, 97 122 A’ ‘A’ ‘Z’, 97 122 Z’, 97 122 ’, 97 122 ‘A’ ‘Z’, 97 122 a’ ‘A’ ‘Z’, 97 122 z’
2 Khai báo: VAR <DS biến>: Char;
3 Đọc / ghi biến kí tự: Ta có thể dùng lệnh Read, Write để đọc / ghi biến ký tự
4 Các phép toán:
Phép toán so sánh: > ; < ; = ; <> ; >= ; <=
Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9 ch1 > ch2 Ord (ch1) > Ord (Ch2)
5 Một số hàm xử lý:
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Ord (C : Char / kiểu đếm được) : LongInt cho thứ tự của kí tự C trong bảng ASCII.
VD: Ord (‘A’ ‘Z’, 97 122 A’)=65
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Chr (N : Byte) : Char cho kí tự có thứ tự là n trong bảng ASCII
VD: Chr (65)=‘A’ ‘Z’, 97 122 A’
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Pred (C : Char / kiểu đếm được) : Char / kiểu đếm được
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9Cho ký tự đứng liền trước C trong bảng mã ASCII VD: Pred (‘A’ ‘Z’, 97 122 B’)=‘A’ ‘Z’, 97 122 A’
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Succ (C : Char / kiểu đếm được) : Char / kiểu đếm được
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Cho ký tự đứng liền sau ch trong bảng mã ASCII VD: Succ (‘A’ ‘Z’, 97 122 B’)=‘A’ ‘Z’, 97 122 C’
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9Upcase (C : Char) : Char cho giá trị là ký tự in hoa của ký tự ch
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9VD: Upcase (‘A’ ‘Z’, 97 122 a’)=‘A’ ‘Z’, 97 122 A’
6 Ví dụ: Viết ra màn hình chữ “A” có 3 cách sau:
Write (‘A’ ‘Z’, 97 122 A’);
hoặc Write (Chr (65));
hoặc Write (#65);
V KIỂU CHUỖI KÝ TỰ (STRING):
1 Tập giá trị: Là dãy các ký tự có trong bảng mã ASCII (tối đa 255 ký tự).
2 Khai báo: Var <Biến chuỗi>: String; {Độ dài tối đa là 255}
Hoặc: Var <Biến chuỗi>: String [n]; {độ dài tối đa n kí tự}.VD: Var S:String[40];
3 Đọc / ghi: Ta có thể dùng lệnh Read, Write để đọc / ghi chuỗi ký tự.
4 Các phép toán:
VD: S1:= ‘A’ ‘Z’, 97 122 Tran Van’; S2: = ‘A’ ‘Z’, 97 122 Nam’; S:=S1+S2; {S = ‘A’ ‘Z’, 97 122 Tran Van Nam’}
- Phép toán so sánh: > ; < ; = ; <> ; >= ; <=
VD: S1:= ‘A’ ‘Z’, 97 122 Tran Van’; S2: = ‘A’ ‘Z’, 97 122 Nam’; f:=S1>S2; {f = True}
5 Truy xuất từng ký tự trong chuỗi: <Tên biến>[chỉ số]
Ví dụ: S:= ‘A’ ‘Z’, 97 122 ABC’;
Write (S[2]); viết ra màn hình chữ “B”
Write (S[0]); viết ra số 3 (phần tử thứ 0 nhớ độ dài thật của chuỗi)
6 Một số hàm và thủ tục xử lý chuỗi:
Hàm Length (S : String) : Integer cho độ dài thật của chuỗi S.
VD: S:= ‘A’ ‘Z’, 97 122 Tran Van Nam’;
For i:=1 to length (S) do
If (ord (S[i]) >= 97) and (ord (S[i]) <= 122) then S[i]:= chr (ord (S[i])-32);
Writeln (S); viết ra màn hình “TRAN VAN NAM”
Hàm Copy (S : String; P, N : Integer) : String cho chuỗi con của chuỗi S kể từ vị trí p với
độ dài n VD: Copy (‘A’ ‘Z’, 97 122 ABCDEF’,3,2) = ‘A’ ‘Z’, 97 122 CD’
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Insert (S1 : String; Var S : String; P : Integer) chèn chuỗi S1 vào chuỗi S tại vị trí P.
VD: S:=‘A’ ‘Z’, 97 122 ABCDEF’; Insert (‘A’ ‘Z’, 97 122 XY’,S,3);Write (S);{Viết ra “ABXYCDEF}
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Delete (Var S : String; P, N : Integer): xóa trong chuỗi S đi n ký tự kể từ vị trí P.
VD: S:=‘A’ ‘Z’, 97 122 ABCDEF’; Delete (S,3,2); Write (S); {Viết ra màn hình “ABEF}
Trang 17Hàm Pos (S1, S : String) : Byte tìm chuỗi S1 trong chuỗi S.{Giá trị là vị trí đầu tiên}
VD: S:=‘A’ ‘Z’, 97 122 ABCDEF’; n:=Pos (‘A’ ‘Z’, 97 122 CD’,S); {Biến n có giá trị là 3}
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Val (S : String; Var X : Integer / Real; E : Integer) đổi chuỗi S thành số và gán
vào biến X, gán mã lỗi vào biến E (nếu không có lỗi thì E = 0, ngược lại thì E = vị tríđầu tiên xuất hiện lỗi)
VD: S:=‘A’ ‘Z’, 97 122 3.14’; Val (S,x,n); {Biến x có giá trị là 3.14; biến n có giá trị là 0}
S:=‘A’ ‘Z’, 97 122 3.14ABC’; Val (S,x,n); {Biến x có giá trị là 0; biến n có giá trị là 5}
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Str (X [quy cách] : Integer / Real; Var S : String) đổi một số thành chuỗi và lưu
trong biến S
VD: Str (10/3:0:2,S); {Biến S có giá trị là chuỗi ‘A’ ‘Z’, 97 122 3.33’}
Hàm Concat (S1,S2, ,Sn : String) : String cho xâu mới bằng cách nối các xâu S1, S2, … Sn.
VD: S1:= ‘A’ ‘Z’, 97 122 ABC’; S2:= ‘A’ ‘Z’, 97 122 XYZ’, 97 122 ’; S3:= Concat (S1,S2); S3 = ‘A’ ‘Z’, 97 122 ABCXYZ’, 97 122 ’
7 Một số phương pháp xử lý chuỗi:
Đổi chuỗi bất kỳ thành chuỗi in hoa:
For i:=1 to length (S) do
If S[i] IN ['a' 'z'] then S[i]:= chr (ord (S[i])-32);
Đổi chuỗi bất kỳ thành chuỗi in thường:
For i:=1 to length (S) do
If S[i] IN ['A' 'Z’, 97 122 '] then S[i]:= chr (ord (S[i])+32);
Đổi chuỗi bất kỳ thành chuỗi dạng tên riêng:
If (S[1] IN ['a' 'z']) then S[1]:= chr (ord (S[i+1])-32);
For i:=1 to length (S) do
If (S[i] = #32) and (S[i+1] IN ['a' 'z']) then S[i+1]:= chr (ord (S[i+1])-32);
Cắt các khoảng trắng bên trái chuỗi:
While S[1] = #32 do Delete (S,1,1);
Cắt các khoảng trắng bên phải chuỗi:
While S[Length (S)] = #32 do Delete (S,Length (S),1);
Hoặc: While S[Length (S)] = #32 do S:= Copy (S,1,Length (S) - 1);
Cắt các khoảng trắng vô nghĩa ở giữa chuỗi:
While Pos (#32#32,S) > 0 do Delete (S,Pos (#32#32,S),1);
Trang 181 Khai báo:
Cách 1: TYPE <Tên kiểu khoảng con> = <cận dưới> <cận trên>;
VAR <DS biến>: <Tên kiểu khoảng con>;
VD: Type Kieutuoi = 0 120;
Var Tuoi: Kieutuoi;
Cách 2: VAR <DS biến>: <cận dưới> <cận trên>;
VD: Var Chu_cai_hoa: ‘A’ ‘Z’, 97 122 A’ ’Z’, 97 122 ’;
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9Lưu Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: <cận dưới>, <cận trên> thuộc kiểu đếm được.
2 Sử dụng: Tùy theo <cận dưới>, <cận trên> thuộc kiểu dữ liệu nào, ta có thể sử dụng
khoảng con như kiểu dữ liệu đó
VII KIỂU LIỆT KÊ:
Là một tập hợp các giá trị được sắp xếp theo thứ tự
1 Khai báo:
Cách 1: TYPE <Tên kiểu liệt kê>: (liệt kê các giá trị);
VAR <DS biến>: <Tên kiểu liệt kê>;
VD: Type Mau = (Xanh, Do, Tim, Vang);
Cách 2: VAR <DS biến>: (liệt kê các giá trị);
VD: Var Mau_ao: (Xanh, Do, Tim, Vang);
Khi đã khai báo như trên, trong chương trình ta có thể dùng lệnh:
Mau_ao:=Xanh;
2 Đọc / ghi: Ta không thể dùng lệnh Read, Write để đọc / ghi trực tiếp kiểu liệt kê, mà phải
thông qua cách chuyển đổi như sau:
Readln (i); Mau_ao:= Mau (i);
If mau_ao = Xanh then Write (‘Xanh’);
3 Một số hàm xử lý:
Hàm Ord (X : kiểu liệt kê / kiểu đếm được) : LongInt cho thứ tự trong danh sách liệt kê
đã được khai báo
(VD: Ord (Mau_ao)=0)
Hàm <Tên kiểu liệu kê> (N : LongInt) : Kiểu liệt kê cho giá trị kiểu liệt kê có thứ tự là n.
BÀI TẬP CHƯƠNG 3
1 Viết chương trình nhập 4 số tự nhiên a,b,c,d rồi cho biết số lớn nhất? Số nhỏ nhất?
2 Viết chương trình nhập số tự nhiên n từ bàn phím (0 < n ≤ 65355).
a) Hãy cho biết n có bao nhiêu chữ số
b) Hãy cho biết chữ số lớn nhất, chữ số nhỏ nhất của n
c) Tính tổng các chữ số, tích các chữ số của n
d) So sánh tổng các chữ số của n với tính các chữ số của n
e) Hãy cho biết số đảo ngược của n có phải là số nguyên tố hay không ?
3 Viết chương trình nhập 2 số tự nhiên m, n từ bàn phím (0<m, n≤65355; m≤n)
a) Tính tổng m chữ số cuối cùng của n
b) Hoán đổi giá trị của m và n rồi in ra kết quả (Yêu cầu: không dùng biến trung gian)
4 Viết chương trình nhập ba số dương a, b và c từ bàn phím, kiểm tra và in ra màn hình kết
quả kiểm tra ba số đó có thể là độ dài các cạnh của một tam giác hay không ? Nếu là 3 cạnhcủa tam giác thì hãy cho biết tam giác đó là tam giác gì (Vuông, Cân, Đều, Thường) và tínhdiện tích tam giác đó theo công thức Hê-rông:
Trang 19c b ax
(a, b, c, d, e, f là số thực tùy ý nhập
từ bàn phím)
10 Giải bất phương trình bậc nhất ax + b > 0 (a, b là số thực tùy ý nhập từ bàn phím).
11 Viết chương trình nhập vào một ký tự rồi cho biết mã ASCII của ký tự vừa nhập?
12 Viết chương trình nhập vào mã ASCII một ký tự rồi cho biết ký tự tương ứng?
13 Viết chương trình in ra màn hình bảng mã ASCII gồm 255 mã và ký tự tương ứng?
14 Viết chương trình nhập vào chuỗi S Sau đó:
a) Cắt tất cả các khoảng trắng vô nghĩa trong chuỗi S
b) Đổi chuỗi S thành chuỗi in hoa, in thường, in dạng tên riêng
15 Viết chương trình nhập vào chuỗi ngày, tháng, năm theo dạng dd/mm/yy hoặc
dd/mm/yyyy, sau đó cho biết ngày đó là thứ mấy trong tuần
Hướng dẫn cách tính thứ trong tuần:
(Khi đó Thu = 0 Chủ nhật; Thu = 1 Thứ hai; …)
Lưu ý: Công thức tính trên chỉ đúng từ ngày 01/03/1900 trở đi.
Trang 20Chương 4: CHƯƠNG TRÌNH CON - THỦ TỤC VÀ HÀM
Var n,k: Byte; Tohop: Real;
Procedure Nhap; {Thu tuc nhap du lieu}
Begin
Clrscr;
Write ('Nhap n: '); Readln (n);
Write ('Nhap k: '); Readln (k);
If (k<1) or (n<1) or (n<k) then
BeginWrite ('Du lieu khong hop le.');
Readln;
Halt;
End;
End;
Function GT (x: Byte): Longint; {Ham tinh giai thua}
Var i: Byte; k: Longint;
k:=k*i;
End;
GT:=k;
End;
Begin {Main Program}
Nhap; {Goi thu tuc nhap}
Tohop:= GT (n)/ (GT (k)*GT (n-k)); {Sử dụng hàm GT}
Write ('To hop chap ',k,' cua ',n,' phan tu la: ',Tohop:0:0);
Readln;
End {Main Program}
Ta nhận thấy trong chương trình có 2 chương trình con là: Thủ tục Nhap và hàm GT Các
chương trình con này có thể gọi nhiều lần trong chương trình chính Nếu không có hàm GT thìchương trình chính sẽ rất rườm rà vì phải viết 3 lần đoạn chương trình tính giai thừa rồi mớigán giá trị cho biến Tohop
Đức hơn tài là quân tử, Tài hơn đức là tiểu nhân (Sách Tài liệu bồi dưỡng học sinh giỏi Tin 9 Cảnh Tài liệu bồi dưỡng học sinh giỏi Tin 9hành)
Trang 212 Cách viết thủ tục và hàm:
Cách viết các chương trình con cũng gần giống như chương trình chính, cũng có thể có cácphần khai báo, thân thủ tục cũng trong cặp từ khóa Begin … End nhưng kết thúc bằng dấuchấm phẩy Thủ tục và hàm phải viết trước BEGIN của chương trình chính
3 Sự khác nhau giữa thủ tục và hàm:
Sự khác nhau cơ bản giũa thủ tục và hàm là ở chỗ: Hàm cho ta kết quả là một giá trị thôngqua tên của nó, còn thủ tục thì chỉ thực hiện một khối thao tác mà không cho kết quả thông quatên thủ tục
II TRUYỀN THAM SỐ CHO CHƯƠNG TRÌNH CON:
1.Ví dụ:
Xét Tài liệu bồi dưỡng học sinh giỏi Tin 9ví Tài liệu bồi dưỡng học sinh giỏi Tin 9dụ Tài liệu bồi dưỡng học sinh giỏi Tin 9sau Tài liệu bồi dưỡng học sinh giỏi Tin 9đây:
Var a,b: Integer;
Procedure thamso (x: Integer; var y: Integer);
{x và y là hai tham số hình thức: x là tham trị, y là tham biến}
2.Truyền tham biến:
Tham biến là tham số hình thức trong phần khai báo chương trình con đặt sau từ khóa VAR Các tham số thực sự ứng với tham biến có thể bị thay đổi giá trị trong chương trình con và khi ra khỏi chương trình con nó vẫn giữ giá trị đã thay đổi đó Với tham biến,
các tham số thực sự truyền vào phải là biến chứ không được là giá trị Về thực chất, khi ta
truyền tham biến cho chương trình con, chương trình con sẽ thao tác trực tiếp trên biến (ô nhớ)được truyền vào
3.Truyền tham trị:
Tham trị là tham số hình thức trong phần khai báo chương trình con không có từ khóa VAR Các tham số thực sự ứng với tham trị nếu là biến vẫn có thể bị thay đổi giá trị trong chương trình con nhưng sau khi ra khỏi chương trình con nó vẫn giữ nguyên giá trị ban đầu trước khi truyền vào chương trình con Khi truyền tham số cho tham trị, ta có thể truyền biến hoặc giá trị cụ thể đều được Về thực chất, khi ta truyền tham trị cho chương trình
con, chương trình con sẽ sao chép biến (ô nhớ) được truyền vào thành một biến tạm và thao táctrên biến tạm đó
III BIẾN TOÀN CỤC VÀ BIẾN ĐỊA PHƯƠNG:
Các biến được khai báo trong chương trình chính được gọi là biến toàn cục Các biến
này có thể dùng ở mọi nơi trong chương trình (kể cả trong các chương trình con)
Các biến được khai báo trong chương trình con được gọi là biến địa phương Các biến
này chỉ có tác dụng trong chương trình con khai báo nó và trong các chương trình con bêntrong nó
Trang 22IV TÍNH ĐỆ QUY CỦA CHƯƠNG TRÌNH CON:
1 Khái niệm: Một đối tượng gọi là đệ quy nếu nó bao gồm chính nó như một bộ phận hoặc
nó được định nghĩa dưới dạng chính nó
Ví Tài liệu bồi dưỡng học sinh giỏi Tin 9dụ: Tài liệu bồi dưỡng học sinh giỏi Tin 9 0! = 1
Nếu n > 0 thì n! = n (n-1)!
Một thủ tục được gọi là đệ quy nếu trong quá trình thực hiện nó có phần phải gọi đếnchính nó nhưng với kích thước nhỏ hơn của tham số
2 Cấu trúc của một thủ tục đệ quy:
nghĩa bằng các tác động đã được định nghĩa trước đây
VD: Function GT (n: word): longint;
V THAM KHẢO TRƯỚC (FORWARD):
Thông thường khi gọi một chương trình con thì chương trình con đó phải được viết trướckhi gọi Nhưng trong thực tế đôi khi cần gọi một chương trình con trước khi viết chúng Khi đó
ta cần khai báo chương trình con cần gọi đó theo kiểu tham khảo trước (Forward)
VD: Function MuN (A,n : Real) : Real; Forward; {Khai Tài liệu bồi dưỡng học sinh giỏi Tin 9báo Tài liệu bồi dưỡng học sinh giỏi Tin 9Forward Tài liệu bồi dưỡng học sinh giỏi Tin 9cho Tài liệu bồi dưỡng học sinh giỏi Tin 9hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9MuN}
Function CanN (A,n : Real) : Real;
Để sử dụng lại những chương trình con ở nhiều chương trình chính khác nhau, ta có thể để
các chương trình con ở những tệp riêng biệt gọi là tệp bao hàm Khi đó trong bất kỳ chương
trình chính nào ta cũng có thể sử dụng tệp bao hàm đó bằng cách dùng một chỉ thị dịch:
{$I <Tên tệp bao hàm>} VD: {$I Thutuc.pas}
Ngoài chỉ thị dịch bao hàm như trên còn có các chỉ thị dịch khác là:
{$A+} hoặc {$A–}: Bật hoặc tắt chế độ bố trí theo word để máy chạy nhanh.
{$B+} hoặc {$B–}: Bật hoặc tắt định trị cho kiểu logic phức.
{$D+} hoặc {$D–}: Thiết lập hoặc không thiết lập các thông tin gỡ rối.
{$E+} hoặc {$E–}: Thiết lập hoặc không thiết lập việc kết nối thời gian thực.
{$F+} hoặc {$F–}: Bật hoặc tắt trạng thái chỉ gọi thủ tục và hàm xa (Unit).
{$G+} hoặc {$G–}: Bật hoặc tắt trạng thái tạo mã cho 80266.
{$I+} hoặc {$I–}: Kiểm tra hoặc không kiểm tra lỗi vào / ra.
{$L+} hoặc {$L–}: Bật hoặc tắt việc tạo các thông tin ký hiệu cục bộ.
Trang 23{$M Stacksize,HeapMin,HeapMax}: Định độ lớn Stack và giới hạn Heap.
{$N+} hoặc {$N–}: Bật hoặc tắt chế độ sinh mã dấu chấm động.
{$O+} hoặc {$O–}: Bật hoặc tắt việc tạo mã phủ
{$P+} hoặc {$P–}: Bật hoặc tắt chế độ tham biến String mở.
{$Q+} hoặc {$Q–}: Bật hoặc tắt việc tạo mã để kiểm tra tràn.
{$R+} hoặc {$R–}: Kiểm tra hoặc không kiểm tra phạm vi biến mảng.
{$S+} hoặc {$S–}: Kiểm tra hoặc không kiểm tra việc tràn bộ nhớ Stack.
{$T+} hoặc {$T–}: Bật hoặc tắt điều khiển kiểu dữ liệu con trỏ tạo ra từ toán tử @.
{$V+} hoặc {$V–}: Bật hoặc tắt việc kiểm tra tham số String của thủ tục, hàm.
{$X+} hoặc {$X–}: Bật hoặc tắt cú pháp mở rộng của Turbo Pascal.
{$Y+} hoặc {$Y–}: Bật hoặc tắt việc tạo ra thông tin tham khảo các ký hiệu.
Trong chương trình ta cũng có thể dùng một lúc nhiều chỉ thị dịch như sau:
{$A+,$B–,D+,E+,F–,G–,I+,L+,N–,O–,P–,Q–,R–,S+,T–,V+,X+}
VII UNIT VÀ CÁCH TẠO UNIT:
1 Khái niệm Unit:
Unit là thư viện con của Turbo Pascal Đó là các tập tin chứa các hằng, biến, kiểu, thủ tục
và hàm có cùng một liên quan nào đó Các Unit chuẩn của Turbo Pascal chứa chung trong tệpTURBO.TPL gồm: CRT,SYSTEM,DOS,PRINTER, OVERLAY Các thư viện trên là thư việnnội trú Ngoài ra, Turbo Pascal còn cung cấp thêm một số thư viện ngoại trú nhưGRAPH.TPU, GRAPH3.TPU,…
Ngoài các thư viện có sẵn, người lập trình có thể tạo những Unit dùng riêng
2 Cách tạo Unit:
Cấu trúc chung của một Unit như sau:
UNIT <Tên Unit>;
INTERFACE {Phần Tài liệu bồi dưỡng học sinh giỏi Tin 9này Tài liệu bồi dưỡng học sinh giỏi Tin 9gọi Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 9phần Tài liệu bồi dưỡng học sinh giỏi Tin 9giao Tài liệu bồi dưỡng học sinh giỏi Tin 9diện Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9để Tài liệu bồi dưỡng học sinh giỏi Tin 9khai Tài liệu bồi dưỡng học sinh giỏi Tin 9báo Tài liệu bồi dưỡng học sinh giỏi Tin 9các Tài liệu bồi dưỡng học sinh giỏi Tin 9hằng, Tài liệu bồi dưỡng học sinh giỏi Tin 9biến, Tài liệu bồi dưỡng học sinh giỏi Tin 9hàm
và Tài liệu bồi dưỡng học sinh giỏi Tin 9thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9giao Tài liệu bồi dưỡng học sinh giỏi Tin 9diện Tài liệu bồi dưỡng học sinh giỏi Tin 9với Tài liệu bồi dưỡng học sinh giỏi Tin 9bên Tài liệu bồi dưỡng học sinh giỏi Tin 9ngoài, Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9nghĩa Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 9các Tài liệu bồi dưỡng học sinh giỏi Tin 9chương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9sử Tài liệu bồi dưỡng học sinh giỏi Tin 9dụng Tài liệu bồi dưỡng học sinh giỏi Tin 9Unit Tài liệu bồi dưỡng học sinh giỏi Tin 9này
có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9gọi Tài liệu bồi dưỡng học sinh giỏi Tin 9chúng}
Uses <Các Unit khác>;
Const <Các hằng được giao diện>;
Var <Các biến được giao diện>;
Procedure <Tên thủ tục được giao diện>; {Chỉ khai báo tên và tham số}
Function <Tên hàm được giao diện>: <Kiểu hàm>; {Chỉ khai báo tên và tham số}
IMPLEMENTATION {Phần Tài liệu bồi dưỡng học sinh giỏi Tin 9này Tài liệu bồi dưỡng học sinh giỏi Tin 9gọi Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 9phần Tài liệu bồi dưỡng học sinh giỏi Tin 9thực Tài liệu bồi dưỡng học sinh giỏi Tin 9hiện}
Const <Các hằng không giao diện>;
Var <Các biến không giao diện>;
Procedure <Tên thủ tục>; {Viết chi tiết thủ tục cần dùng}
Function <Tên hàm>: <Kiểu hàm>; {Viết chi tiết hàm cần dùng}
BEGIN
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9{Các Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh Tài liệu bồi dưỡng học sinh giỏi Tin 9nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9cần Tài liệu bồi dưỡng học sinh giỏi Tin 9Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9không Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9lệnh Tài liệu bồi dưỡng học sinh giỏi Tin 9nào Tài liệu bồi dưỡng học sinh giỏi Tin 9thì Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9bỏ Tài liệu bồi dưỡng học sinh giỏi Tin 9BEGIN}
END.
Sau khi tạo xong Unit phải lưu lại với tên tập tin trùng với tên Unit, phần mở rộng của
file là PAS Dịch Unit ra mã máy ta được một tập tin mới (Unit mới) có tên trùng với tên tậptin ban đầu nhưng có phần mở rộng là TPU
Trang 243 Ví dụ: Viết chương trình tính giai thừa có dùng Unit Giaithua.
Unit Giaithua;
Interface Function GT (n: word): longint;
Implementation Function GT (n: word): longint;
Begin If n = 0 then GT:= 1 Else GT:= n * GT (n - 1); End;
END.
B ước 2 : Dịch tập tin Giaithua.pas thành tập tin Giaithua.tpu (Nên Tài liệu bồi dưỡng học sinh giỏi Tin 9chép Tài liệu bồi dưỡng học sinh giỏi Tin 9tập Tài liệu bồi dưỡng học sinh giỏi Tin 9tin
Giaithua.tpu Tài liệu bồi dưỡng học sinh giỏi Tin 9vào Tài liệu bồi dưỡng học sinh giỏi Tin 9thư Tài liệu bồi dưỡng học sinh giỏi Tin 9mục Tài liệu bồi dưỡng học sinh giỏi Tin 9chứa Tài liệu bồi dưỡng học sinh giỏi Tin 9tập Tài liệu bồi dưỡng học sinh giỏi Tin 9tin Tài liệu bồi dưỡng học sinh giỏi Tin 9Turbo.exe Tài liệu bồi dưỡng học sinh giỏi Tin 9của Tài liệu bồi dưỡng học sinh giỏi Tin 9chương Tài liệu bồi dưỡng học sinh giỏi Tin 9trình Tài liệu bồi dưỡng học sinh giỏi Tin 9Pascal)
B ước 3 : Tạo tập tin Tinhgt.pas như sau:
Uses Crt, Giaithua; {Khai báo sử dụng Unit Giaithua.tpu}
Var n: word;
Begin Clrscr;
Write ('Nhap N: '); Readln (n);
Write ('N! = ', GT (n)); {Sử dụng hàm GT trong Unit Giaithua.tpu}
VD: For i:=1 to 40 do Writeln (Fibo (i));
Khuyến cáo: Không nên lạm dụng đệ quy để viết chương trình con vì khi gọi chương
trình con với tham số lớn máy sẽ khởi tạo một loạt biến cục bộ và chúng chỉ được giải phóng khi thoát khỏi chương trình con.
Để in 40 số Fibonacci, ta nên dùng cách như sau (chạy Tài liệu bồi dưỡng học sinh giỏi Tin 9thử Tài liệu bồi dưỡng học sinh giỏi Tin 9và Tài liệu bồi dưỡng học sinh giỏi Tin 9tự Tài liệu bồi dưỡng học sinh giỏi Tin 9so Tài liệu bồi dưỡng học sinh giỏi Tin 9sánh):
F1:=1; F2:=1; Writeln (F1); Writeln (F2);
For i:=3 to 40 do Begin F3:=F1+F2; Writeln (F3); F1:=F2; F2:=F3; End;
Trang 253.Tính A n :
Function MuN (A,n : Real) : Real;
Begin MuN := Exp (n*LN (A)); End;
Gọi hàm: MuN (3,4) = 81
4.Tính n m :
Function CanN (A,n : Real) : Real;
Begin CanN := Exp (1/n*LN (A)); End;
Gọi hàm: CanN (16,4) = 2
5.Tìm UCLN (a,b):
Function UCLN (a,b: Integer): Integer; {Tìm UCLN bằng cách trừ số lớn cho số nhỏ}
Begin
a:= Abs (a); b:= Abs (b);
If (a=0) and (b<>0) then Begin UCLN:=b; Exit; End;
If (a<>0) and (b=0) then Begin UCLN:=a; Exit; End;
Trang 266.Kiểm tra số nguyên tố:
Function SNT (x: Word): Boolean; {Hàm kiểm tra số nguyên tố theo định lý}
Var p: Integer; f: Boolean;
7.Đổi số từ hệ đếm X bất kỳ sang hệ thập phân:
Function HX10 (HX: String; X:Integer): Integer;
Var i,n,cs,e: Integer;
Trang 278.Đổi số từ hệ thập phân sang hệ đếm X bất kỳ:
Function H10X (H10, X: Integer): String;
Var i,n,cs,e: Integer; HX, ch: String;
3. Viết chương trình nhập số N từ một hệ đếm X rồi đổi N sang hệ đếm Y (N là chuỗi, X, Y là
số nguyên dương nhập từ bàn phím, x,y ≥ 2) ?
4. Nhập n, k nguyên đảm bảo phải dương và k<= n Tính:
n k
n A
n C
k n k
Trang 285. Cho dãy số Fibonacci được định nghĩa như sau:
F (n) = 1 (Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9n=1 Tài liệu bồi dưỡng học sinh giỏi Tin 9hoặc Tài liệu bồi dưỡng học sinh giỏi Tin 9n=2)
F (n-1) + F (n-2) (Nếu Tài liệu bồi dưỡng học sinh giỏi Tin 9n>2)
a) Hãy viết chương trình in ra màn hình dãy 40 số Fibonacci đầu tiên
Yêu cầu: Trong chương trình có xây dựng hàm tính F (n) theo kiểu đệ quy.
b) Hãy viết chương trình in ra màn hình dãy 40 số Fibonacci đầu tiên
Yêu cầu: Trong chương trình không sử dụng hàm đệ quy.
a) S = 1+
3
1+ 5
1 + 7
1
…+
1 2
)1(
55
*44
*33
*22
! 2
! 1
n
x x
x x
8. Nhập x và n, tính gần đúng Sinx theo công thức:
)!
1 2 ( )!
1 2 (
! 7
! 5
! 3 )
(
1 2 1
2 7
5 3
x x
x x x x Sin
n n
9. Nhập x thực, n nguyên > 0 , tính gần đúng cosx:
)!
2 ( )!
2 2 (
! 6
! 4
! 2 1 ) (
2 2
2 6
4 2
n
x n
x x
x x x
Cos
n n
1 1
11.Tính gần đúng giá trị của theo công thức:
12.Tính gần đúng giá trị của Ln (x) theo công thức sau bằng cách bỏ đi các số hạng có trị tuyệt
đối nhỏ hơn sai số ss (với x và sai số ss nhập từ bàn phím, 0 < x 2, ss 0.01):
n
x n
x x
x x
x x Ln
n n
) 1 (
4
) 1 ( 3
) 1 ( 2
) 1 ( ) 1 ( ) (
1 4
3 2
Trang 29Chương 5: CÁC KIỂU DỮ LIỆU CÓ CẤU TRÚC
I KIỂU MẢNG (ARRAY):
1 Khái niệm: Mảng là một dãy hữu hạn các phần tử có cùng kiểu dữ liệu.
Lưu ý quan trọng: Không được dùng kiểu mảng làm hết quả của hàm.
2 Khai báo:
Cách 1: TYPE <Kiểu mảng>=ARRAY [Chỉ số đầu Chỉ số cuối] OF <Kiểu phần tử>;
VAR <Biến mảng>: <Kiểu mảng>;
VD: TYPE mangnguyen = ARRAY [1 10] OF Integer;
VAR A,B,C: mangnguyen;
Cách 2: VAR <Biến mảng>: ARRAY [Kiểu chỉ dẫn] OF <Kiểu phần tử>;
VD: VAR A,B,C: ARRAY [1 10] OF Integer;
Dùng lệnh FOR duyệt qua từng phần tử của mảng để thao tác với phần tử.
Begin
Write ('A[',i, ']= ');
Readln (A[i]);
End;
For i:=1 to 10 do Writeln('A[',i, ']= ',A[i]); {Viết mảng A ra màn hình}
For i:=1 to 10 do C[i]:=A[i]+B[i]; {Gán giá trị cho mảng C}
Fibo[1]:=1; Fibo[2]:=1; {Tạo mảng Fibonacci 40 phần tử}
For i:=3 to 40 do Fibo[i]:=Fibo[i-1]+Fibo[i-2];
For i:=1 to 40 do Writeln (Fibo[i]); {Viết 40 số Fibonacci ra màn hình}
5 Mảng 2 chiều (còn gọi là ma trận - Matrix):
Ví dụ: Var X,Y,Z’, 97 122 : Array [1 3,1 5] of Integer; {Mảng X,Y,Z’, 97 122 gồm 3 hàng, 5 cột}
Duyệt để truy nhập vào phần tử mảng 2 chiều: Dùng 2 vòng FOR lồng nhau
For i:=1 to 3 do
For j:=1 to 5 do
Z’, 97 122 [i,j]:=X[i,j]+Y[i,j];
Lưu ý: Căn Tài liệu bồi dưỡng học sinh giỏi Tin 9cứ Tài liệu bồi dưỡng học sinh giỏi Tin 9vào Tài liệu bồi dưỡng học sinh giỏi Tin 9cách Tài liệu bồi dưỡng học sinh giỏi Tin 9khai Tài liệu bồi dưỡng học sinh giỏi Tin 9báo Tài liệu bồi dưỡng học sinh giỏi Tin 9và Tài liệu bồi dưỡng học sinh giỏi Tin 9sử Tài liệu bồi dưỡng học sinh giỏi Tin 9dụng Tài liệu bồi dưỡng học sinh giỏi Tin 9mảng Tài liệu bồi dưỡng học sinh giỏi Tin 92 Tài liệu bồi dưỡng học sinh giỏi Tin 9chiều, Tài liệu bồi dưỡng học sinh giỏi Tin 9chúng Tài liệu bồi dưỡng học sinh giỏi Tin 9ta Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9xây Tài liệu bồi dưỡng học sinh giỏi Tin 9dựng
mảng Tài liệu bồi dưỡng học sinh giỏi Tin 9n Tài liệu bồi dưỡng học sinh giỏi Tin 9chiều Tài liệu bồi dưỡng học sinh giỏi Tin 9
VD: Var X: Array [1 3,1 5, 'A' 'Z’, 97 122 '] of Integer;
Tỏ ra mình hơn người khác chưa phải là hay; chân giá trị là tỏ rằng hôm nay mình
đã hơn chính mình ngày hôm qua Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9
Tài liệu bồi dưỡng học sinh giỏi Tin 9(Tục Tài liệu bồi dưỡng học sinh giỏi Tin 9ngữ Tài liệu bồi dưỡng học sinh giỏi Tin 9Ấn Tài liệu bồi dưỡng học sinh giỏi Tin 9Độ)
Trang 306 Ví dụ: Viết chương trình nhập n số nguyên X 1 , X 2 , , X n từ bàn phím (n cũng là số nguyên được nhập từ bàn phím, 1≤n≤100) Sau đó tính và in ra màn hình tổng các số dương của dãy số X 1 , X 2 , , X n
7 Một số giải thuật xử lý trên mảng:
Điền đầy mảng với cùng một giá trị:
FillChar (A,SizeOf (A),False); {Điền đầy mảng A với giá trị là False}
Lệnh trên tương đương với lệnh:
For i:=1 to SizeOf (A) do A[i]:=False; {với Tài liệu bồi dưỡng học sinh giỏi Tin 9mảng Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9độ Tài liệu bồi dưỡng học sinh giỏi Tin 9lớn Tài liệu bồi dưỡng học sinh giỏi Tin 9phần Tài liệu bồi dưỡng học sinh giỏi Tin 9từ Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 91 Tài liệu bồi dưỡng học sinh giỏi Tin 9byte}
Mảng Tài liệu bồi dưỡng học sinh giỏi Tin 9hai Tài liệu bồi dưỡng học sinh giỏi Tin 9chiều Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9(m
Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9n): Tài liệu bồi dưỡng học sinh giỏi Tin 9 Tài liệu bồi dưỡng học sinh giỏi Tin 9
S:= 0;
For i:= 1 to m do
For j:= 1 to n do S:= S + A [i,j];
Trang 31Những giải thuật sau đây chỉ minh họa trên mảng 1 chiều, để thực hiện trên mảng 2 chiều cần lồng thêm vòng lặp để thao tác với phần tử thứ [i,j].
Đếm số lần xuất hiện của phần tử x:
Dem:= 0;
For i:= 1 to n do if A [i] = x then Inc (Dem);
Tìm phần tử lớn nhất:
Max:= A[1];
For i:= 2 to n do if A [i] > Max then Max:= A [i];
{Tương tự có thể tìm phần tử nhỏ nhất của dãy}
Tìm phần tử x:
vt:= 0;
For i:= 1 to n do if A [i] = x then Begin vt:= i; Break; End;
If vt <> 0 then Write (x, 'nam o vi tri ',vt) Else Write ('Khong tim thay');
Tìm kiếm nhị phân: (Yêu cầu mảng đã sắp xếp tăng dần)
L:= 1 ; R := n;
Repeat
i:= (L + R) div 2;
if A[i] < x then L:= i+1;
if A[i] > x then R:= i-1;
Until (A[i] = x) or (L > R);
If A[i] = x then Write (x, 'nam o vi tri ',i) Else Write ('Khong tim thay');
Kiểm tra mảng có thỏa tính chất không:
Kt:= True; For i:= 1 to n do if <A [i] không thỏa điều kiện> then Kt:= False;
Chuyển mảng 2 chiều thành 1 chiều:
Spt:= 0;
For i:= 1 to m do
For j:= 1 to n doBegin Inc (Spt); B [spt]:= A [i,j]; End;
Chuyển mảng 1 chiều thành 2 chiều:
Spt:= 0;
For i:= 1 to m do
For j:= 1 to n doBegin Inc (Spt); A [i,j]:= B [Spt]; End;
Write('Nhap nam duong lich : '); Readln(n);
Writeln('Nam am lich la : ',Can[n mod 10],' ',Chi[n mod 12]);
{Vận dụng biểu thức n mod 10 và n mod 12 để truy cập vào mảng Can, Chi}
Readln;
End
Trang 32 Sắp xếp: Tài liệu bồi dưỡng học sinh giỏi Tin 9(Chỉ giới thiệu cách sắp xếp tăng, để sắp xếp giảm thì cần đổi dấu so sánh)
{$A+,B-,D+,E+,F-,G-,I+,L+,N-,O-,P-,Q-,R-,S+,T-,V+,X+} {Nhấn Ctrl – O – O}{$M 65520,0,655360} {Đặt kích thước tối đa cho Stack - Tránh tràn Stack}
Uses Crt;
Type Mang = Array [1 100] of Integer;
Var M : Mang; spt,i : Integer;
Procedure Sort (Var A : Mang; n : Integer); {Sắp xếp thường}
Var i,j : Integer;
Procedure SelectSort (Var A : Mang; n : Integer); {Sắp xếp lựa chọn}
Var i,j,Min : Integer;
Trang 33Procedure InsertSort (Var A : Mang; n : Integer); {Sắp xếp chèn}
Var i,j,Temp : Integer;
Procedure BubbleSort (Var A : Mang; n : Integer); {Sắp xếp nổi bọt}
Var i,j : Integer;
Procedure ShellSort (Var A : Mang; n : Integer); {Sắp xếp rung - Sắp xếp nhị phân}
Var i,j,k,Mid : Integer;
Procedure QuickSort(var A: Mang; Lo, Hi: Integer); {Sắp xếp nhanh}
Procedure Sort(L,R : Integer);
Var i,j,x : Integer;
Begin
i:=L; j:=R; x:=A[(L+R) DIV 2];
Repeat
While A[i]<x do Inc(i);
While x<A[j] do Dec(j);
Trang 34Procedure Thucdon; {Thực đơn}
Var Chon,cot,dong,dem : Integer;
Begin
Writeln ('Chon mot trong cac cach sap xep :');
Writeln (' 1 Sap xep binh thuong');
Writeln (' 2 Sap xep lua chon');
Writeln (' 3 Sap xep chen');
Writeln (' 4 Sap xep noi bot');
Writeln (' 5 Sap xep rung (nhi phan)');
Writeln (' 6 Sap xep nhanh');
Write ('Nhan 1, 2, 3, 4, 5, hoac 6 de chon : ');
dem:=0;
Repeat
cot:=WhereX; dong:=WhereY;
Readln (Chon);
If Not (Chon IN [1 6]) then
Begin Inc (dem); Gotoxy (cot,dong); Write (#7); Clreol; End;
If dem>=3 then
Begin
Writeln;
Writeln ('Ban da chon sai ',dem,' lan!');
Write ('Nhan Enter de ket thuc.');
Trang 35II KIỂU TẬP HỢP (SET):
1 Khai báo:
VAR <Biến tập hợp>: <Kiểu tập hợp>;
VD: TYPE taphop = SET OF Integer;
VAR A,B,C: taphop;
VD: VAR A,B,C: SET OF Integer;
2 Các phép toán:
+ Phép gán: Có thể gán một tập hợp cho một biến tập hợp cùng kiểu
VD: A:= [1,3,5,7,9]; B:= [1,2,3,4,5]; C:= []; {C là tập rỗng}
+ Phép hợp: Ký hiệu bằng dấu + Hợp của A và B là một tập hợp gồm các phần tử
thuộc A hoặc thuộc B và viết là A+B
VD: C:= A+B C = [1,2,3,4,5,7,9]
+ Phép giao: Ký hiệu bằng dấu * Giao của A và B (viết A*B) là một tập hợp gồm các
phần tử đồng thời thuộc cả A và B VD: C:= A*B C = [1,3,5]
+ Phép hiệu: ký hiệu bằng dấu – Hiệu của A trừ B (Viết A-B) là một tập hợp gồm các
phần tử thuộc A nhưng không thuộc B Ví dụ: C:= A-B C = [7,9]
+ Phép thử “Thuộc về”, từ khoá IN: x IN A cho giá trị True nếu giá trị x thuộc tập A,
ngược lại sẽ cho giá trị False VD: x:= 2 IN A x=False
3 Các phép so sánh: <>,=, <=, >=
+ Hai tập hợp đem ra so sánh phải cùng kiểu cơ bản (cùng là số nguyên, cùng là sốthực,…) Kết quả phép so sánh là giá trị kiểu Boolean
+ Hai tập là bằng nhau nếu phần tử của tập này cũng thuộc tập kia và ngược lại
+ Ngược lại với phép = là phép so sánh khác < >
+ Phép so sánh <= sẽ có giá trị TRUE nếu mọi phần tử của tập thứ nhất cũng thuộc tậpthứ hai Phép so sánh >= được hiểu ngược lại
+ Không có phép so sánh <, > ( Muốn có ta phải kết hợp <=, >= và <> )
4 Đọc / ghi tập hợp:
Ta không thể Read / Write trực tiếp kiểu tập hợp, nhưng có thể dùng các cách khác để
xử lý kiểu tập hợp
5 Ví dụ: Thủ tục sàng số nguyên tố
Procedure SSNT (n: Byte); {Thủ tục sàng số nguyên tố}
Var TapNT,Sang: Set of Byte;
While not (p in Sang) do p:= p + 1;
TapNT:= TapNT + [p]; i:= p;
While i <= n do Begin Sang:= Sang -[i]; i:= i + p; End;
Until Sang = [];
For i:=1 to n do
If i in TapNT then Write (i:5);
End;
Trang 36III KIỂU BẢN GHI (RECORD):
1 Khái niệm:
Khi cần lưu trữ danh sách các biến có cùng kiểu, ta dùng kiểu dữ liệu mảng (Array)
và truy xuất vào từng biến thông qua chỉ số của mảng Nhưng nếu cần lưu trữ thông tin củamột học sinh bao gồm: họ tên (String), năm sinh (Integer), điểm (Real) thì không thể sửdụng mảng (vì các thành phần không cùng kiểu) Để giải quyết vấn đề này, ta phải dùngcấu trúc bản ghi (Record) Khi đó họ tên (String), năm sinh (Integer), điểm (Real) ta gọi làcác “trường” của kiểu bản ghi “học sinh”
2 Khai báo:
Cách 1: TYPE <Kiểu bản ghi> = RECORD
<Trường 1>: <Kiểu của trường 1>;
<Trường 2>: <Kiểu của trường 2>;
…
<Trường n>: <Kiểu của trường n>;
END;
VAR <Biến mảng>: <Kiểu bản ghi>;
VD: TYPE Hocsinh = RECORD
Hoten: String [40]; {độ dài tối đa là 40}
Namsinh: 1990 2010;
Diem: Real;
END;
VAR HS: Hocsinh;
Cách 2: VAR <Biến bản ghi>: RECORD
<Trường 1>: <Kiểu của trường 1>;
<Trường 2>: <Kiểu của trường 2>;
3 Đọc / ghi kiểu bản ghi:
Ta không thể truy cập bản ghi bằng cách Read / Write trực tiếp biến bản ghi, mà phải truycập vào từng trường của bản ghi bằng cách viết như sau:
<Tên biến bản ghi>.<Tên trường> VD: Readln (HS.hoten); Write (HS.diem);
4 Ví dụ về sử dụng kết hợp kiểu mảng và bản ghi (mảng các bản ghi):
Viết chương trình nhập vào danh sách học sinh của một lớp học gồm họ tên, năm sinh, điểm rồi in ra danh sách kết quả thi gồm họ tên, năm sinh, điểm, đậu / rớt (biết rằng học sinh có điểm thi từ 5 điểm trở lên thì đậu, còn lại là rớt).
TYPE Hocsinh = RECORD
Trang 37VAR HS: Array [1 50] of Hocsinh; {danh sách tối đa là 50 học sinh}
Write ('Nhap ho ten hoc sinh thu ', i, ': '); Readln (HS[i].Hoten);
Write ('Nhap nam sinh hoc sinh thu ', i, ': '); Readln (HS[i].Namsinh);
Write ('Nhap diem hoc sinh thu ', i, ': '); Readln (HS[i].Diem);
If HS[i].Diem >= 5 Then
HS[i].Kq:= 'Dau'Else
HS[i].Kq:= 'Rot'End;
For i:=1 to n do
Writeln (i,') ',HS[i].Hoten,' Nam sinh:',HS[i].Namsinh,' Diem: ',HS[i].Diem:4:2,' Ket qua: ',HS[i].Kq);Readln;
End
Chú ý: Có thể dùng câu lệnh WITH để đơn giản việc nhập / xuất dữ liệu như sau:
Dạng lệnh: WITH <Biến record> DO <Câu lệnh>;
VD: For i:=1 to 10 do
Writeln ( i, ')',Hoten,' Nam sinh: ',Namsinh,' Diem: ', Diem:4:2,' Ket qua: ',Kq);
Lưu ý: Tài liệu bồi dưỡng học sinh giỏi Tin 9Ngoài Tài liệu bồi dưỡng học sinh giỏi Tin 9kiểu Tài liệu bồi dưỡng học sinh giỏi Tin 9bản Tài liệu bồi dưỡng học sinh giỏi Tin 9ghi Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9cấu Tài liệu bồi dưỡng học sinh giỏi Tin 9trúc Tài liệu bồi dưỡng học sinh giỏi Tin 9cố Tài liệu bồi dưỡng học sinh giỏi Tin 9định Tài liệu bồi dưỡng học sinh giỏi Tin 9như Tài liệu bồi dưỡng học sinh giỏi Tin 9trên Tài liệu bồi dưỡng học sinh giỏi Tin 9còn Tài liệu bồi dưỡng học sinh giỏi Tin 9có Tài liệu bồi dưỡng học sinh giỏi Tin 9thể Tài liệu bồi dưỡng học sinh giỏi Tin 9khai Tài liệu bồi dưỡng học sinh giỏi Tin 9báo Tài liệu bồi dưỡng học sinh giỏi Tin 9kiểu Tài liệu bồi dưỡng học sinh giỏi Tin 9bản Tài liệu bồi dưỡng học sinh giỏi Tin 9ghi Tài liệu bồi dưỡng học sinh giỏi Tin 9có
cấu Tài liệu bồi dưỡng học sinh giỏi Tin 9trúc Tài liệu bồi dưỡng học sinh giỏi Tin 9thay Tài liệu bồi dưỡng học sinh giỏi Tin 9đổi Tài liệu bồi dưỡng học sinh giỏi Tin 9như Tài liệu bồi dưỡng học sinh giỏi Tin 9sau: Tài liệu bồi dưỡng học sinh giỏi Tin 9
TYPE Nghe = (CongNhan, KySu, BacSi, CaBiet);
Nganh = (Dien, CoKhi);
Khoa = (Noi, Ngoai, Nhi);
GioiTinh = (Nam, Nu);
NhanSu = RECORD
HoTen : String [40];
NamSinh : 1900 2010;
GT : GioiTinh;
CASE NgheNghiep : Nghe OF
CongNhan : (NganhCN : Nganh; BacTho : Byte); KySu : (NganhKS:Nganh;TrinhDo:(TB, Kha, Gioi)); BacSi : (ChuyenKhoa : Khoa);
CaBiet : ();
Var Nguoi1, Nguoi2, Nguoi3, Nguoi4 : NhanSu;
Trang 38With Nguoi2 do Begin
HoTen := 'Tran Thi Bac';
HoTen := 'Le Van Dong';
HoTen := 'Ha Thi Tay';
Cách 1: TYPE <Kiểu tệp> = FILE OF <Kiểu phần tử>;
VAR <Biến tệp>: <Kiểu tệp>;
VD: TYPE Tepnguyen = FILE OF Integer;
VAR F: Tepnguyen;
Cách 2: VAR <Biến tệp>: FILE OF <Kiểu phần tử>;
VD: VAR F: FILE OF Integer;
3 Mở tệp:
Assign (Var F : File; <Đường dẫn và tên tệp> : String);
Rewrite (Var F : File);
Assign (Var F : File; <Đường dẫn và tên tệp> : String);
Reset (Var F : File);
Trang 394 Một số hàm và thủ tục xử lý tệp:
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Write (Var F : File; DS giá trị cần ghi) ghi vào tệp (có thể dùng Writeln).
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Read (Var F : File; DS biến) đọc dữ liệu từ tệp vào biến (có thể dùng Readln).
Hàm Filesize (Var F : File) : LongInt cho số phần tử của tệp (Không Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9cho Tài liệu bồi dưỡng học sinh giỏi Tin 9file Tài liệu bồi dưỡng học sinh giỏi Tin 9TEXT) Hàm Filepos (Var F : File) : LongInt cho vị trí con trỏ tệp (Không Tài liệu bồi dưỡng học sinh giỏi Tin 9dùng Tài liệu bồi dưỡng học sinh giỏi Tin 9cho Tài liệu bồi dưỡng học sinh giỏi Tin 9file Tài liệu bồi dưỡng học sinh giỏi Tin 9TEXT) Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Seek (Var F : File; N : LongInt) chuyển con trỏ tệp tới phần tử N (Phần Tài liệu bồi dưỡng học sinh giỏi Tin 9từ Tài liệu bồi dưỡng học sinh giỏi Tin 9đầu Tài liệu bồi dưỡng học sinh giỏi Tin 9là Tài liệu bồi dưỡng học sinh giỏi Tin 90) Hàm Eof (Var F : File) : Boolean cho giá trị True nếu con trỏ nằm cuối tệp, ngược lại là False Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Rename (Var F : File; <Đường dẫn và tên mới> : String) đổi tên tệp trên đĩa.
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Erase (Var F : File) xóa tệp trên đĩa.
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Close (Var F : File) đóng tệp (Lưu ý: Sau khi ghi vào tệp phải đóng tệp).
Hàm Ioresult : Integer cho giá trị 0 nếu thao tác vào / ra không có lỗi.
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Setfattr (Var F : File; Các thuộc tính): Thay đổi thuộc tính tệp.
(Các thuộc tính : Readonly = $01; Hidden = $02; Sysfile = $04; Archive = $20)
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9GetfAttr (Var F : File; N : Word): Lấy thuộc tính tệp vào biến n.
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9SetfTime (Var F : File; N : Longint): Đặt ngày giờ cho tệp từ biến n.
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9GetfTime (Var F : File; N : Longint): Lấy ngày giờ tệp vào biến n.
5 Tệp văn bản (TEXT): Tệp văn bản được tổ chức thành từng dòng Mỗi dòng kết thúc bởi
dấu hết dòng (End of Line) do lệnh Writeln tạo ra hoặc nhấn phím Enter khi thao tác trựctiếp với tệp
Khai báo tệp văn bản: VAR <Biến tệp>: TEXT;
Với tệp văn bản chúng ta không sử dụng được thủ tục FileSize, FilePos, Seek.
Một số thủ tục và hàm dùng riêng cho tệp văn bản:
Thủ Tài liệu bồi dưỡng học sinh giỏi Tin 9tục Tài liệu bồi dưỡng học sinh giỏi Tin 9Append (Var F : Text) mở một tệp văn bản để ghi thêm vào cuối.
Hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9EoLn (Var F : Text) cho giá trị True nếu con trỏ nằm cuối dòng văn bản.
(Chú Tài liệu bồi dưỡng học sinh giỏi Tin 9ý: Tài liệu bồi dưỡng học sinh giỏi Tin 92 Tài liệu bồi dưỡng học sinh giỏi Tin 9hàm Tài liệu bồi dưỡng học sinh giỏi Tin 9SeekEof Tài liệu bồi dưỡng học sinh giỏi Tin 9(Var Tài liệu bồi dưỡng học sinh giỏi Tin 9F Tài liệu bồi dưỡng học sinh giỏi Tin 9: Tài liệu bồi dưỡng học sinh giỏi Tin 9Text), Tài liệu bồi dưỡng học sinh giỏi Tin 9SeekEoln Tài liệu bồi dưỡng học sinh giỏi Tin 9(Var Tài liệu bồi dưỡng học sinh giỏi Tin 9F Tài liệu bồi dưỡng học sinh giỏi Tin 9: Tài liệu bồi dưỡng học sinh giỏi Tin 9Text): Tài liệu bồi dưỡng học sinh giỏi Tin 9Tương Tài liệu bồi dưỡng học sinh giỏi Tin 9tự Tài liệu bồi dưỡng học sinh giỏi Tin 9Eof, Tài liệu bồi dưỡng học sinh giỏi Tin 9EoLn)
6 Tệp kiểu Byte: Mọi kiểu tệp đều có thể coi là tệp kiểu Byte Do đó ta có thể khai báo biến
tệp kiểu Byte để xử lý cho tệp văn bản Khi đó các ký tự trong tệp văn bản được biến tệpkiểu Byte coi như là mã ASCCI, ta có thể dùng thủ tục SEEK để vừa đọc vừa sửa nội dung
VD: Var F:File of Byte; B: Byte; Vt: Integer;
If Chr (B) IN ['a' 'z'] then
Begin B:=B - 32;
Trang 407 Tệp kiểu mảng, Record: Khi kiểu của tệp là mảng hoặc Record thì thao tác đọc / ghi file
phải đọc / ghi trực tiếp cả biến (không được đọc, ghi từng phần tử của mảng hoặc Record)
8 Tệp không định kiểu: Là tệp mà khi khai báo ta không chỉ rõ loại tệp chứa gì Nhờ vậy
mà tốc độ truy xuất cao hơn tệp định kiểu Khai báo: VAR <Biến tệp>: FILE;
Reset (Var F : File; độ dài Record); Rewrite (Biến tệp, độ dài Record);
BlockRead (Var F : File; Buffer, SizeOf (Buffer), RecordsRead) đọc từ tệp
BlockWrite (Var F : File; Buffer, RecordsRead) ghi vào tệp
Ví dụ : Đọc dữ liệu từ tệp Turbo.exe và ghi vào tệp Pascal.exe
Uses Crt;
Var F1,F2: File; n : Integer;
Buffer: Array [1 10240] of Byte; {Bộ nhớ đệm kích thước 10Kb, mỗi phần tử 1 byte}Begin
Clrscr;
Assign (F1,'Turbo.exe');
Reset (F1,1); {Chỉ định kích thước đọc theo 1 byte}
Assign (F2,'Pascal.exe');
Rewrite (F2,1); {Chỉ định kích thước ghi theo 1 byte }
BlockRead (F1,Buffer,SizeOf (Buffer), n); {Đọc từ tệp F1 n phần tử đưa vào bộ nhớ đệm}While n>0 do
“SỐ NGUYÊN TỐ TOÀN DIỆN”
“Số Tài liệu bồi dưỡng học sinh giỏi Tin 9nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” là số nguyên tố mà khi viết đảo ngược số đó thì số đảo ngược vẫn là số nguyên tố Ví dụ: số 37 là “số Tài liệu bồi dưỡng học sinh giỏi Tin 9nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” vì khi đảo ngược số 37 ta được số
73 cũng là số nguyên tố; số 23 không phải là “số Tài liệu bồi dưỡng học sinh giỏi Tin 9nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” vì khi đảo ngược số 23
ta được số 32 không phải là số nguyên tố
Hãy viết chương trình kiểm tra trong dãy số nguyên cho trước có những số nào là “số nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” và đếm xem có tất cả bao nhiêu “số Tài liệu bồi dưỡng học sinh giỏi Tin 9nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” trong dãy số
nguyên đã cho?
Dữ liệu vào: được cho trong tệp NTTD.INP, mỗi dòng chứa duy nhất một số nguyên
dương cần xét (số dòng trong tệp NTTD.INP không cho biết trước)
Dữ liệu ra: yêu cầu xuất dữ liệu ra tệp NTTD.OUT gồm nhiều dòng, mỗi dòng chứa
duy nhất 1 giá trị là số 0 hoặc số 1 theo nguyên tắc: nếu dòng thứ i trong tệp NTTD.INP là “số nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện” thì tại dòng thứ i của tệp NTTD.OUT ghi số 1, ngược lại sẽ ghi số 0 Dòng cuối cùng ghi “Co X so nguyen to toan dien” với X là số các “số Tài liệu bồi dưỡng học sinh giỏi Tin 9nguyên Tài liệu bồi dưỡng học sinh giỏi Tin 9tố Tài liệu bồi dưỡng học sinh giỏi Tin 9toàn Tài liệu bồi dưỡng học sinh giỏi Tin 9diện”
trong dãy số cho trước
Ví d : ụ:
13233741
1010
Co 2 so nguyen to toan dien