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.. - Tham chiếu
Trang 1Ngà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 đề
- 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:
-Để 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
Trang 2ạ 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ử thuờ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
Trang 3-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ữ
Trang 4nguyê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ụ