SỞ GIÁO DỤC ĐÀO TẠO BÌNH THUẬNTRƯỜNG THPT CHUYÊN TRẦN HƯNG ĐẠO GIÁO ÁN TIN HỌC 11 TIẾT 26 DỮ LIỆU KIỂU XÂU Họ tên giáo sinh: Đỗ Thị Liên Khoa: Toán-Tin GVHD: Thầy Trương Nguyên Thông.. -
Trang 1SỞ GIÁO DỤC ĐÀO TẠO BÌNH THUẬN
TRƯỜNG THPT CHUYÊN TRẦN HƯNG ĐẠO
GIÁO ÁN TIN HỌC 11 TIẾT 26 DỮ LIỆU KIỂU XÂU
Họ tên giáo sinh: Đỗ Thị Liên Khoa: Toán-Tin GVHD: Thầy Trương Nguyên Thông.
I MỤC TIÊU
1 Kiến thức
- Biết được một kiểu dữ liệu mới, biết được khái niệm kiểu xâu
- Phân biệt được sự giống và khác giữa kiểu mảng ký tự với xâu ký tự
- Biết được cách khai báo biến, nhập xuất dữ liệu, tham chiếu đến từng ký tự của xâu
- Biết các phép toán liên quan xâu
2 Kĩ năng
- Khai báo được biến kiểu xâu trong ngôn ngữ lập trình Pascal Sử dụng biến xâu
và các phép toán trên xâu để giải quyết một bài toán đơn giản
II ĐỒ DÙNG DẠY HỌC
1 Chuẩn bị của giáo viên
- Giáo án, sách giáo khoa,
2 Chuẩn bị của học sinh
- Sách giáo khoa
III HOẠT ĐỘNG DẠY-HỌC
1 Hoạt động 1: Tìm hiểu về xâu và cách sử dụng.
HOẠT ĐỘNG CỦA GIÁO
1 Tìm hiểu ý nghĩa của xâu ký
tự
-Ghi đề bài của bài toán đặt vấn
đề: Viết chương trình nhập họ
tên của 30 học sinh trong lớp
- Hỏi:
*/ Nếu chỉ viết chương trình
I/ Khái niệm xâu:
- Xâu là mảng 1 chiều mà mỗi phần tử là 1 kí tự
- Các kí tự của xâu được đánh số thứ tự , thường bắt đầu từ 1
1 Quan sát, suy nghĩ và trả lời
Trang 2nhập họ tên của 1 học sinh thì ta
sẽ chọn kiểu dữ liệu nào?
*/Ta sẽ chọn kiểu dữ liệu như
thế nào? Khai báo biến như thế
nào cho bài toán 30 học sinh
trên?
- Yêu cầu học sinh: Viết đoạn
lệnh để nhập và xuất dữ liệu cho
từng phần tử
- Hỏi: Có những khó khăn gì gặp
phải?
- Dẫn dắt: Cần 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
2 Tìm hiểu về kiểu xâu
- Ghi lên bảng cách khai báo
biến xâu trong ngôn ngữ lập
trình Pascal
- Hỏi: Ý nghĩa của từ String, [n]
- Hỏi: Khi khai báo không có [n]
thì số lượng ký tự tối đa là bao
nhiêu?
- Yêu cầu học sinh cho ví dụ một
xâu ký tự
- Hỏi: Xâu có bao nhiêu ký tự?
- Hỏi: Xâu chỉ gồm một ký tự
trống được viết như thế nào? số
lượng ký tự bao nhiêu?
- Hỏi: Xâu rỗng được viết như
thế nào? số lượng ký tự bao
nhiêu?
3 Nhập/xuất dữ liệu cho biến
xâu trong ngôn ngữ Pascal
- Giới thiệu cấu trúc chung của
thủ tục nhập/xuất dữ liêu
II/ Cách khai báo:
a/ Khai báo
var<tên biến>: string[n];
n: giá trị quy định độ dài lớn nhất của xâu
Giá trị tối đa của n là 255
vd: var ten_truong: string[50];
b/ Nhập/ xuất:
- Nhập dữ liệu:
Nhập xuất giá trị cho biến xâu:
read/readln();
- Sử dụng lệnh gán để nhập giá trị
cho biến xâu Cấu trúc chung:
tên_biến_xâu:=hằng_xâu;
vd:
var st: string[10];
st:=’Mua Oi’;
- Xuất xâu:
write/writeln();
- Tham chiếu đến từng kí tự trong xâu:
- Kiểu mảng 1 chiều gồm n kí tự
có kiểu char
- Kiểu mảng một chiều gồm 30
ký tự
- Khai báo một biến mảng A để lưu họ tên của một học sinh
Readln(A[1]);Readln(A[2]); Readln(A[3]);Readln(A[4]);
- Chương trình được viết dài dòng Khi nhập dữ liệu, phải thực hiện gõ nhiều phím
2 Quan sát cấu trúc khai báo và tham khảo sách giáo khoa
- String là tên kiểu xâu
- [n] là giá trị quy định số lượng
ký tự tối đa mà biến xâu có thể chứa
- Số ký tự tối đa là 255
- Ví dụ: ‘HA NOI’
- Xâu có 6 ký tự, dấu cách l một
ký tự
- Ký hiệu của xâu gồm một ký tự trống là ‘ ’ Xâu này có độ dài
là 1
- Ký hiệu của xâu rỗng là ‘ ’ Xâu này có độ dài là 0
Trang 3- Yêu cầu học sinh tìm ví dụ cụ
thể
- Hỏi: Khi viết lệnh nhập/xuất dữ
liệu cho biến xâu, có gì khác so
với biến mảng các ký tự
- Dẫn dắt: Ta có thể sử dụng
lệnh gán để nhập giá trị cho biến
xâu Cấu trúc chung:
tên_biến_xâu:=hằng_xâu;
- Yêu cầu học sinh tìm một ví dụ
cụ thể
4 Tham chiếu đến từng ký tự
của xâu
- Giới thiệu cấu trúc chung
- Hỏi: Có gì giống và khác nhau
so với cách tham chiếu đến từng
phần tử của mảng
- Yêu cầu học sinh tìm một ví
dụ
5 Kiểm tra kiến thức
-Ghi nội dung bài tập kiểm tra
kiến thức:
Var st:string[1]; c:char;
Begin
c:=st[1]; {1}
c:=st; {2}
End
- Hỏi: Trong hai lệnh {1} và
{2}, lệnh nào đúng?
- Thực hiện chương trình để học
sinh tự kiểm nghiệm suy luận
tên_biến_xâu[chỉ_ số];
3 Quan sát bảng để trả lời
- Ví dụ: Readln(hoten);
- Ví dụ: Write(‘Ho ten ’,hoten);
- Viết một lệnh nhập nguyên cho
cả xâu Viết lệnh gọn hơn, chương trình gọn
- Ví dụ: St:= ‘HA NOI’;
4 Quan sát và suy nghĩ để trả lời
- Giống cấu trúc chung khi tham chiếu
tên biến[chỉ số]
- Ví dụ: st[2]
5 Quan sát chương trình trên bảng và độc lập suy nghĩ
- Lệnh {1} đúng
- Lệnh {2} sai Không thể gán một xâu cho một ký tự
2 Hoạt động 2: Tìm hiểu các phép toán liên quan đến xâu.
HOẠT ĐỘNG CỦA GIÁO
1 Gợi nhớ các phép toán đã
học
- Hỏi: Hãy nhắc lại các phép
III/ Các phép toán liên quan đến xâu.
a/ Phép ghép xâu:
1 Chú ý theo dõi, suy nghĩ và trả lời
- Phép toán số học
Trang 4toán đã học trên kiểu dữ liệu
chuẩn
2 Tìm hiểu chức năng của một
số phép toán trong kiểu xâu qua
một số ví dụ
- Viết chương trình ví dụ lên
bảng:
Var st:string;
Begin
st:= ‘Ha’+‘Noi’;
Write(st);
readln;
End
- Hỏi: Dự đoán Kết quả của
chương trình in ra màn hình?
- Yêu cầu học sinh tìm một số
ví dụ khác
- Hỏi: Chức năng của phép
cộng?
- Giới thiệu thêm một số ví dụ
khác và yêu cầu học sinh cho
biết kết quả
st:= ‘Ha’ +‘Noi’;
st:= ‘Ha ’+‘Noi’;
st:= ‘ ’ + ‘Ha Noi’;
st:= ‘Ha Noi’ + ‘Việt’ + ‘Nam’;
- Chiếu chương trình ví dụ về
phép so sánh xâu
Var bo:boolean;
Begin
bo:= ‘AB’ < ‘AC’;
Write(bo);
readln;
End
- Hỏi: Kết quả của chương trình
- Kí hiệu là dấu cộng(+)
- Là phép toán cho kết quả là 1 xâu mới bao gồm các xâu là toán hạng nối vào cuối của nhau lần lượt từ trái qua phải
Vd: st:=’Mai’+’ ‘+’Vang’;
Kết quả:
St=’Mai Vang’;
b/Phép so sánh 2 xâu:
- Các phép toán logic có thứ tự
ưu tiên thực hiện thấp hơn phép toán ghép xâu
- Kí hiệu của các phép toán logic:
So sánh:
bằng:=
khác:<>
Nhỏ hơn: <
Lớn hơn:>
Nhỏ hơn hoặc bằng:<=
Lớn hơn hoặc bằng:>=
- Xâu A là lớn hơn xâu B nếu kí
tự đầu tiên khác nhau của giữa chúng kể từ trái qua trong xâu A
có mã ASCII lớn hơn
Vd:
S1:=’AC’;
S2:=’ABC’;
=> s1<s2
- Phép toán so sánh
- Phép toán logic
2 Quan sát ví dụ, suy nghĩ và trả lời
- Quan sát chương trình
- Kết quả cho ta: st = ‘HaNoi’
- Ví dụ: st:= ‘CO’ + ‘DO’ Kết quả:
st = ‘CODO’
- Là phép toán nối xâu thứ hai vào cuối xâu thứ nhất
st:= ‘HaNoi’;
st:= ‘Ha Noi’;
st:= ‘ Ha Noi’;
st:= ‘Ha NoiViệtNam’;
- Quan sát chương trình để dự tính kết quả
- Kết quả là: TRUE
- Quan sát kết quả chương trình
Trang 5in ra màn hình?
- Thực hiện chương trình để học
sinh thấy kết quả
- Hỏi: Còn các phép so sánh nào
nữa?
- Chiếu các ví dụ về các phép so
sánh và yêu cầu học sinh cho
biết kết quả của các phép so
sánh đó
‘AB’ < ‘ABC’
‘AC’ < ‘ABC’
- Lưu ý cho học sinh: Một xâu
có độ dài nhỏ hơn có thể lớn
hơn (>) xâu có độ dài lớn
để kiểm chứng suy luận
- Có các phép <, <=, >=, <>, =
- Kết quả: True
- Kết quả: False
IV ĐÁNH GIÁ CUỐI BÀI
1 Những nội dung đã học
- Khai báo biến: VAR tên_biến : STRING[độ dài lớn nhất của xâu];
- Nhập xuất giá trị cho biến xâu: read/readln(); write/writeln();
- Tham chiếu đến từng ký tự trong xâu: tên_biến[chỉ_số]
- Phép ghép xâu: ký hiệu là +, được sử dụng để ghép nhiều xâu thành một xâu
- Các phép so sánh: =, <>, >, <, <=, >=: thực hiện việc so sánh hai xâu
2 Câu hỏi và bài tập về nhà
- Xem phần kiến thức lý thuyết còn lại trong bài, bao gồm các hàm và thủ tục liên quan đến xâu, sách giáo khoa, trang 70-71
Phê duyệt của giáo viên hướng dẫn Phan Thiết ngày 23 tháng 01 năm 2010
Giáo sinh:
Đỗ Thị Liên