Ngày soạn: 12/12/2008 Ngày dạy:……/……../………
Tiết 28
KIỂU DỮ LIỆU XÂU
I. Mục tiêu
*Kiến thức :
- Biết xâu là một dãy kí tự (có thể coi xâu là mảng 1 chiều).
- Biết cách khai báo xâu, truy cập phần tử của xâu.
*Kỹ năng :
- Sử dụng được một số thủ tục, hàm thông dụng về xâu.
- Cài đặt được một số chương trình đơn giản có sử dụng xâu.
*Thái độ:
- Tiếp tục khơi gợi lòng ham thích giải toán bằng lập trình trên máy tính.
- Tiếp tục rèn luyện các phẩm chất cần thiết của người lập trình như: xem
xét gảii quyết vấn đề một cách cẩn thận, chu đáo, có sáng tạo, không thỏa mãn với
kết quả ban đầu đạt được,……
II) Phương pháp.
- Đặt và giải quyết vấn đề.
III) Phương tiện.
- GV: SGK, SGV, sách tham khảo.
- HS: Sgk, vở ghi.
IV) Hoạt động dạy và học.
1. Ổn định tổ chức lớp.
2. Kiểm tra bài cũ: Cú pháp khai báo mảng một chiều, mảng 2 chiều? Cho ví
dụ.
3. TiÕn tr×nh d¹y häc:
HOẠT ĐỘNG GV HOẠT ĐỘNG HS NỘI DUNG
-Để viết chương trình nhập
họ tên của 30 hs trong lớp,
ta sẽ chọn kiểu dữ liệu nào?
Khai báo khai báo như thế
nào?
-Có những khó khăn nào
gặp phải?
-Do vậy ngôn ngữ lập trình
có một kiểu dữ liệu mới cho
phép ta nhập/xuất dữ liệu
cho xâu bằng một lệnh.
-Giới thiệu một số khái
niệm có liên quan về xâu
(chuỗi).
-Khai báo kiểu mảng một
chiều gồm 30 kí tự.
-Chương trình viết dài
dòng. Khi nhập dữ liệu
phải gõ nhiều phím.
-Học sinh chú ý lắng
nghe.
§12. KIỂU DỮ LIỆU XÂU
Một số khái niệm:
- Xâu là một dãy kí tự trong
bảng mã ASCII
- Mỗi kí tự gọi là một phần tử
của xâu
- Số lượng kí tự trong xâu được
gọi là độ dài của xâu.
- Xâu có độ dài bằng 0 được gọi
là xâu rỗng.
- Tham chiếu tới phần tử trong
xâu được xác đònh thông qua chỉ
số của phần tử trong xâu.
- Chỉ số phần tử trong xâu
thường được đánh chỉ số là 1
Ho ạ t động 1 : Khai báo biến
xâu:
-Yêu cầu học sinh tìm hiểu
khai báo biến xâu trong
ngôn ngữ Pascal.
-Ý nghóa của từ String,[n] là
gì?
-Yêu cầu học sinh cho ví dụ
-Nếu không có [n] thì số
lượng tối đa là bao nhiêu?
-Số lượng kí tự trong xâu là
gì?
-Độ dài của xâu có tính
khoảng trắng không?
-Hằng kí tự được viết như
thế nào?
-Xâu chỉ gồm một kí tự
trống được viết như thế
nào? Chiều dài là bao
nhiêu?
-Xâu rỗng được viết như thế
nào? Chiều dài?
Ho ạ t động 2 : Các thao tác xử
lý xâu
-Giới thiệu lệnh nhập xuất
dữ liệu cho biến xâu trong
ngôn ngữ Pascal.
-Yêu cầu học sinh xem sách
giáo khoa về phép ghép
xâu, các phép so sánh.
-Giải thích kỹ phép so sánh
hai xâu với nhau.
-Học sinh xem cấu trúc
khai báo biến xâu SGK.
-String là tên kiểu xâu,
[n] là gí trò qui đònh số
lượng kí tự tối đa mà biến
xâu có thể chứa
-Học sinh cho ví dụ
-Số kí tự tối đa là 255
-Là độ dài của xâu
-Có tính khoảng trắng
-Hằng kí tự được viết
trong cặp dấu nháy đơn.
-Được viết: ‘ ‘, có chiều
dài là 1
-Được viết: ‘‘, có chiều
dài là 0.
-Học sinh chú ý theo dõi
- Học sinh dọc sách giáo
khoa.
-Học sinh chú ý theo dõi.
-Học sinh so sánh
- Trong ngôn ngữ Pascal, tham
chiếu tới phần tử thøng được
viết <tên biến xâu>[chỉ số]
Cách khai báo và sử lí câu
trong ngôn ngữ Pascal:
1. Khai báo biến xâu:
- Pascal sử dụng khóa trong
STRING để khai báo xâu. Độ
dài tối đa của xâu được viết
trong [ ] sau từ khóa STRING.
Khai báo như sau:
Var <tên biến>: String [Độ dài
tối đa của xâu];
* Ví dụ:
Var Ten: String [10];
Họ_dem: String
[50];
Que_quan: String;
Chú ý:
- Nếu không khái báo độ dài
tối đa cho xâu kí tự thì độ dài
ngầm đònh cho xâu là 255.
- Độ dài lớn nhất của xâu là
255 kí tự.
- Hằng xâu kí tự được đặt trong
cặp nháy đơn (‘’).
2. Các thao tác xử lý xâu:
- Với các xâu kí tự có các phép
ghép xâu và phép so sánh hai
xâu kí tự.
+ Phép ghép xâu: Kí hiệu bằng
dấu +.
Ví dụ:
‘Ha’ + ‘Noi’ cho kết quả là
‘HaNoi’.
+ Phép so sánh: <, <=, >, >=, =,
<>. Pascal tự động so sánh
-Cho biết hai xâu sau đây
xâu nào lớn hơn:
‘abcdsagg’ và
‘abcdasgfgsfs’
-Giới thiệu một số thủ tục ,
hàm chuẩn dùng để xử lí
xâu.
-Giới thiệu một số thủ tục ,
hàm chuẩn dùng để xử lí
xâu.
-Học sinh chú ý lắng
nghe và theo dõi trong
SGK trang 70
-Học sinh chú ý lắng
nghe và theo dõi trong
SGK trang 70
lần lượt các kí tự từ trái sang
phải.
Ví dụ: ‘AB’ < ’AC’ ; ‘ABC’ >
‘ABB’ ; ’ABC’ < ’ABCD’.
Một thủ tục chuẩn dùng để xử
lí xâu:
Delete (St: String; vt, n:
Integer);
xóa n kí tự của xâu St, bắt
đầu từ vò trí vt.
Insert (S1 , S2: String; vt:
Integer);
Chèn xâu S1 vào xâu S2 bắt
đầu từ vò trí vt của S2.
Val
(St:String;m:Integer;x:Intege
r or real);
Đổi xâu kí số St thành số.
Nếu không đổi được thì vò trí
gây lỗi được lưu trong biến
m, nếu đổi thành công thì m
= 0 và giá trò xâu kí số lưu
trong biến x.
Str (x : Integer; St : String);
Chuyển số x thành xâu kí tự
tương ứng và lưu trong biến
St.
Một số hàm chuẩn:
Copy (St : String ; vt , n :
Integer) : String;
Sao chép từ xâu St n kí tự từ
vò trí vt.
Pos (S1 , S2 : String) : Integer;
trả về vò trí xuất hiện đầu
tiên của xâu S1 trong xâu S2.
Length (St : String) : Integer;
Độ dài thực của xâu St.
Upcase (ch : Char) : Char;
Trả về chữ cái hoa tương ứng
với chữ cái thường ch (Giữ
nguyên nếu ch không phải
chữ cái thường).
Chr (x : Byte) : Char;
Trả về kí tự vò trí x trong
bảng mã ASCII
Ord (ch : Char) : Byte;
Trả về vò trí kí tự ch trong
bảng mã ASCII.
3. Củng cố :
- Cú pháp khai báo biến xâu.
- Nhập xuất dữ liệu kiểu xâu.
4. Dặn dò :
+ Xem lại bài
+ Chuẩn bò bài tiếp các ví dụ.