- Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần GV: Hãy cho một ví dụ về xâu và tử của xâu... cho biết độ dài của chúng..[r]
Trang 1Ngày soạn: 16/02/2012
PPCT : Tiết 29
Bài 12: KIỂU XÂU (Tiết 1)
A Mục đích, yêu cầu
1 Về kiến thức
- Học sinh nắm được xâu là một dãy kí tự (có thể coi xâu là mảng một
chiều)
- Phân biệt được sự giống và khác nhau giữa kiểu mảng kí tự với xâu kí tự
- Biết cách khai báo xâu, truy cập phần tử của xâu.
Phần minh hoạ với Pascal, học sinh cần nắm được:
- Cách khai báo (hay định nghĩa) kiểu xâu Khi khai báo cần xác định độ dài
tối đa của xâu (nhỏ hơn độ dài được cho phép là 255)
- Có thể thực hiện các thao tác nhập, xuất hay xử lý từng ký tự của xâu.
2 Về tư tưởng, tình cảm
- Làm cho học sinh ngày càng yêu thích môn lập trình và hứng thú với môn học hơn
B Phương pháp, phương tiện
1 Phương pháp
- Kết hợp các phương pháp giảng day như thuyết trình, vấn đáp, thảo luận trên lớp, hoạt động theo nhóm, dùng phương tiện trực quan,
2 Phương tiện
Chuẩn bị của giáo viên:
Bảng đen, phấn, máy tính, máy chiếu (nếu có)
Sách giáo khoa Tin học 11
Giáo án
Chuẩn bị của học sinh:
Trang 2Sách giáo khoa Tin học 11.
Vở ghi lý thuyết
Các sách tham khảo về ngôn ngữ lập trình Pascal (nếu có)
C Tiến Trình lên lớp, nội dung bài giảng
I Ổn định lớp (2’)
- Ổn định lớp
- Yêu cầu lớp trưởng báo cáo sĩ số
II Kiểm tra bài cũ và gợi động cơ (5’)
1 Kiểm tra bài cũ
Giáo viên nêu lần lượt các câu hỏi, gọi học sinh trả lời, đánh giá, cho điểm:
Câu hỏi 1: Mảng một chiều là gì? Nêu cách khai báo biến tổng quát mảng
một chiều
Trả lời:
Mảng một chiều là dãy hữu hạn các phần tử cùng kiểu
Khai báo:
+ Cách 1: Khai báo trực tiếp
Var <tên biến mảng>:array[kiểu chỉ số] of <kiểu phần tử>;
+ Cách 2: Khai báo gián tiếp
Type <tên kiểu mảng>=array[kiểu chỉ số] of <kiểu phần tử>;
Var <tên biến mảng> : <tên kiểu mảng>;
Câu hỏi 2: Khai báo một mảng một chiều với tên là Hoten, trong mảng có 30
phần tử, thuộc kiểu char
Trả lời:
+ Cách 1: Var Hoten: array[1 30] of char;
+ Cách 2: Type A=array[1 30] of char;
Var Hoten: A;
2 Gợi động cơ:
Trang 3Với câu hỏi 2, ta có: Hoten: Array [1 30] of char;
Khi ta nhập vào N=15;
For i:=1 to N do
Begin
Write (‘Nhap phan tu thu ‘,i,’=’);
Readln(Hoten[i]);
End;
Khi chương trình thực hiện thao tác nhập Hoten thì việc nhập sẽ được lặp đi lặp lại 15 lần Như vậy đối với trường hợp này ta không nên dùng kiểu mảng một chiều vì nó rất mất thời gian mà lại không hiệu quả Để khắc phục tình trạng này, trong ngôn ngữ lập trình Pascal có một kiểu dữ liệu có cấu trúc khác cho phép ta nhập/ xuất dữ liệu cho một xâu bằng một lệnh Để hiểu rõ hơn thì hôm nay chúng ta
sẽ cùng nhau nghiên cứu bài "Kiểu xâu"
III Nội dung bài giảng
gian
1 Khái niệm dữ liệu kiểu xâu:
- Dữ liệu kiểu xâu là dãy các kí tự,
được đặt trong dấu nháy đơn (' và ')
Các xâu đơn giản:
'Le Trung Dinh' 'TP Quang Ngai'
- Xâu là dãy các kí tự trong bộ mã
ASCII, mỗi kí tự được gọi là một phần
tử của xâu
- Số lượng kí tự trong một xâu được gọi
là độ dài của xâu
- Xâu có độ dài bằng 0 là xâu rỗng Kí
GV: Thuyết trình và cho ví dụ
minh hoạ
HS: Trật tự nghe giảng và ghi bài
đầy đủ
GV: Hãy cho một ví dụ về xâu và
cho biết độ dài của chúng
HS: Suy nghĩ câu trả lời, tham gia
xây dựng bài
10'
Trang 4hiệu xâu rỗng trong ngôn ngữ lập trình
Pascal: ''
Ví dụ:
Xâu 'Le Trung Dinh' có độ dài 13
- Có thể xem xâu là mảng một chiều
mà mỗi phần tử là một kí tự
GV: Xét ví dụ sau:
A
1 2 3 4 5 6 7 8
Có thể xem là mảng một chiều không? Vì sao?
HS: Vận dụng kiến thức đã học
để suy nghĩ trả lời
GV: Chúng ta đã học cách tham
chiếu đến phần tử của mảng một chiều, vậy cách tham chiếu đến phần tử của xâu có giống cách tham chiếu đến phần tử của mảng
1 chiều không?
HS: Suy nghĩ và đưa ra câu trả
lời
GV: Cách tham chiếu giống
nhau Để hiểu rõ chúng ta tìm hiểu cách phần tham chiếu đến phần tử của xâu
2 Tham chiếu tới phần tử của xâu:
- Tham chiếu tới phần tử của xâu
được xác định bởi tên biến xâu và chỉ số
đặt trong cặp ngoặc [ và ], cụ thể <tên
biến xâu>[chỉ số].
Ví dụ: Giả sử biến Lop lưu trữ giá trị
hằng xâu 'LOP 11B1' thì Lop[7] cho ta
GV: Thuyết trình, cho ví dụ và
giải thích
HS: Chú ý lắng nghe, ghi bài đầy
đủ
GV: Trong 3 phút, mỗi nhóm cho
3 ví dụ, sau đó xác định độ dài
8'
Trang 5kí tự 'B' của mỗi xâu, tham chiếu tới một
số phần tử của xâu
HS: Tích cực làm nhóm.
3 Khai báo:
- Biến kiểu xâu có thể khai báo như sau:
Var <tên biến>: string[độ dài lớn
nhất của xâu];
Trong đó:
+ Var: từ khoá.
+ : Dấu cách.
+ <tên biến>: tên do người lập trình
đặt
+ string: tên dành riêng.
+ Độ dài lớn nhất của xâu <=255
Ví dụ: Var Hoten: string[25];
- Trong mô tả xâu có thể bỏ qua
phần khai báo độ dài Khi đó, độ dài lớn
nhất của xâu sẽ nhận giá trị ngầm định
là 255
Ví dụ: Var Ghichu: string;
GV: Thuyết trình, cho ví dụ, giải
thích ví dụ
HS: Chú ý nghe giảng, ghi bài
đầy đủ
GV: Cho một vài ví dụ khác, yêu
cầu học sinh nhận xét tính đúng sai và giải thích
+ Var Hoten: string[99];
+ Var Quequan: string[-4];
+ Var Quoctich: string[255];
+ Var Baihat: string;
HS: Nhận xét và giải thích.
GV:
+ Var Hoten: string[99];
Đúng
+ Var Quequan: string[-4];
Sai Vì độ dài tối đa của xâu không thể mang giá trị âm
+ Var Quoctich: string[255];
Đúng
+ Var Baihat: string;
Đúng Lúc này độ dài tối đa sẽ nhận giá trị ngầm định là 255
8'
6'
Trang 64 Nhập xuất dữ liệu cho biến xâu
- Nhập dữ liệu từ bàn phím dùng thủ
tục:
Read(<biến xâu>);
Hoặc
Readln(<biến xâu>);
- Xuất dữ liệu ra màn hình dùng thủ tục:
Write(<danh sách kết quả ra>);
Hoặc
Writeln(<danh sách kết quả ra>);
Lưu ý: Độ dài của xâu khi nhập vào
phải nhỏ hơn hoặc bằng độ dài của xâu
khi ta khai báo Nếu độ dài của xâu
nhập vào, lớn hơn độ dài khai báo thì
các kí tự vượt ngoài độ dài khai báo sẽ
bị mất
GV: Yêu cầu học sinh nhắc lại các
thủ tục nhập, xuất dữ liệu trong NNLT Pascal
HS:
- Nhập dữ liệu từ bàn phím dùng thủ tục:
Read(<danh sách biến vào>);
Hoặc Readln(<danh sách biến vào>);
- Xuất dữ liệu ra màn hình dùng thủ tục:
Write(<danh sách kết quả ra>);
Hoặc Writeln(<danh sách kết quả ra>);
GV: Dùng ngôn ngữ lập trình
Pascal viết một đoạn chương trình
và cho chạy
HS: Chú ý quan sát.
IV Cũng cố bài (5')
Qua bài học hôm nay, chúng ta đã được biết thêm một kiểu dữ liệu có cấu trúc
dữ liệu kiểu xâu Tiết đầu tiên của bài, các em cần nắm được những vấn đề cơ bản: + Biết khái niệm dữ liệu kiểu xâu
+ Biết cách khai báo và tham chiếu phần tử của xâu
Một số câu hỏi trắc nghiệm khách quan:
Câu 1: Xâu là dãy kí tự trong bảng mã
A TCVN3 B ASCII
Hãy chọn phương án đúng
Trả lời: B
Trang 7Câu 2: Cho xâu 'Vo Thi Nhu Ngoc ', có độ dài là bao nhiêu?
A.15 B 16
C 14 C 17
Trả lời: B
Câu 3: Có biến Hoten lưu trữ giá trị hằng xâu 'Vo Thi Nhu Ngoc' thì Hoten[9] cho
kí tự nào?
A ' ' B 'N'
Trả lời: C
Câu 4: Trong các khai báo về xâu sau đây, khai báo nào là sai?
A var a: string [20]; B var a: string;
C var a: string [-40]; D var a: string [253];
Trả lời: C
Câu 5: Xâu rỗng được kí hiệu?
A " " B '0'
C ' ' D ''
Trả lời: D
V Bài tập về nhà (1’)
- Ôn tập lại bài học hôm nay.
- Chuẩn bị trước tiết 2 của bài "Kiểu xâu".
VI Rút kinh nghiệm
.
. Giáo viên hướng dẫn (Kí và ghi rõ họ tên)