III. Hoạt động day hoc
kiểu xâu (tiết 1)
Ngày soạn: Ngày giảng:
I-Mục tiêu: 1.Kiến thức:
- Biết đợc một số 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 nhau giữa kiểu mảng kí tự và kiểu 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 đến xâu.
- Biết đợc tiện ích của các hàm và thủ tục liên quan đến xâu trong ngôn ngữ lập trình Pascal. - Nắm đợc cấu trúc chung và chức năng của một số hàm và thủ tục liên quan đến xâu.
2.Kỹ năng:
-Khai báo đợc kiểu dữ liệu xâu trong ngôn ngữ lập trình Pascal. Sử dụng đợc 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.
- Nhận biết và bớc đầu sử dụng đợc một số hàm và thủ tục để giải quyết một số bài toán.
II-Đồ dùng dạy học: 1.Chuẩn bị của giáo viên:
-Máy tính, máy chiếu prôjector.
-Một số chơng trình mẫu viết sẵn để giới thiệu ví dụ
2.Chuẩn bị của học sinh:
-Sách giáo khoa, vở ghi.
III-Hoạt động dạy và học:
1.Hoạt động 1: Tìm hiểu về xâu và cách sử dụng.
a. Mục tiêu:
- Học sinh nắm đợc ý nghĩa của xâu và một số khái niệm của xâu. Biết cách khai báo biến xâu, nhập xuất dữ liệu cho biến xâu và tham chiếu đến từng kí tự trong xâu.
b. Nội dung
- Xâu kí tự là dãy các kí tự trong bảng mã ASCII, mỗi kí tự đợc gọi là một phần tử của xâu. Số lợng các kí tự trong xâu đợc gọi là độ dài xâu. Xâu có độ dài bằng không là xâu rỗng.
- Khai báo biến kiểu xâu: VAR tên_biến : String[độ_dài_lớn_của_xâu]; - Tham chiếu đến từng phần tử của xâu: tên_biến[chỉ_số]
c. Các bớc tiến hành
TG Hoạt động của GV Hoạt động của HS
10’ 1. Chiếu tên bài lên bảng
- Chiếu ví dụ: Nhập danh sách họ tên học sinh của một lớp.
- Ghi tên bài và theo dõi ví dụ để trả lời câu hỏi.
- Yêu cầu: Với bài toán trên, khai báo kiểu dữ liệu nh thế nào?
- Yêu cầu viết đoạn lệnh để xuất nhập dữ liệu cho từng phần tử?
- Hỏi: Trong trờng hợp này, nên khai báo biến kiểu mảng một chiều trực tiếp hoặc gián tiếp? Vì sao?
- Dùng mảng một chiều gặp những khó khăn gì?
- Chúng ta thấy, họ tên của một học sinh khi nhập phải nhập từng kí tự một, khi đó nhập cho học sinh một lớp rất mất thời gian. Một số ngôn ngữ lập trình cung cấp cho kiểu dữ liệu xâu.
2. Tìm hiểu về kiểu xâu
- Chiếu lên bảng cấu trúc khai báo biến kiểu xâu
Trong đó String là tên kiểu xâu, và n là độ dài lớn nhất của xâu.
- Khi khai báo biến kiểu xâu, không có n thì độ dài tối đa là bao nhiêu? Có phải độ dài là 0 không?
- Chiếu ví dụ lên màn hình: ‘Viet Yen – Bac Giang’ - Hỏi: Xâu có bao nhiêu kí tự?
- Độ dài của xâu chính là số lợng các kí tự trong xâu, do đó, kí tự trắng cũng đợc tính và chiếm một ô nhớ. - Xâu chỉ gồm một kí tự trắng thì đợc viết nh thế nào? Và độ dài là bao nhiêu?
- Xâu rỗng đợc viết nh thế nào? Số lợng kí tự là bao nhiêu?
- Lấy ví dụ một xâu và xác định số phần tử của xâu đó. 3. Xuất/nhập dữ liệu cho biến kiểu xâu
- Cách xuất/nhập dữ liệu cho biến mảng một chiều? - Chiếu cách nhập dữ liệu cho biến kiểu xâu
- Yêu cầu: Lấy ví dụ cụ thể?
- Từ ví dụ trên, so sánh 2 cách xuất nhập trên? 4. Tham chiếu đến một phần tử của xâu
- Hỏi: Cách truy xuất dữ liệu đến một phần tử của mảng một chiều?
- Chiếu cách truy xuất phần tử của xâu - Hỏi: So sánh hai cách truy xuất này? - Yêu cầu học sinh lấy một ví dụ cụ thể. 5. Kiểm tra kiến thức
- Sử dụng kiểu mảng một chiều với kiểu dữ liệu chung của các phần tử là kiểu kí tự.
- Học sinh viết đoạn lệnh và một học sinh lên bảng viết.
- Nên khai báo gián tiếp, vì mỗi họ tên cuỉa mỗi học sinh là một mảng. - Dùng mảng một chiều khi nhập dữ liệu rất dài, dùng nhiều lệnh lặp.
- Theo dõi ttrên bảng và ghi bài. - Theo dõi trên bảng và lắng nghe. - Khi khai báo kiểu xâu mà không có n thì độ dài tối đa của xâu là 255, số lợng kí tự tối đa. - Xâu có 20 kí tự. - Xâu chỉ gồm một kí tự trắng, thì đợc viết ‘ ‘ và độ dìa là 1. - Xâu rỗng ‘’, độ dài là 0. - Lấy ví dụ.
-for i:=1 to n do readln(hoten[i]); - write(‘Nhap ho ten:’)
- readln(hoten);
Kiểu mảng một chiều phải nhập từng kí tự của họ tên, còn kiểu xâu nhập một lần đợc họ tên đầy đủ . - tên_biến[chỉ_số]
- Giống nhau. - hoten[2];
- Chiếu một chơng trình đơn giản có sử dụng khai báo biến kiểu xâu và tham chiếu đến các phần tử của xâu.
2. Hoạt động 2: Tìm hiểu các phép toán liên quan đến xâu
a. Mục tiêu
- Học sinh biết đợc các phép toán liên quan đến xâu. Diễn đạt đợc các phép toán đó trong ngôn ngữ lapạ trình Pascal.
b. Nội dung: - Phép ghép xâu: + Kí hiệu: +
+ ý nghĩa: Sử dụng để ghép nhiều xâu thành một xâu.
- Các phép so sánh: =, <>, <, >, <=, >=, dùng để thực hiện việc so sánh hai xâu.
Xâu A đợc xem là lớn hơn xâu B, nếu kí tự khác nhau đầu tiên giữa chúng kể từ trái qua phải trong xâu A có mã ASCII lớn hơn . Nếu A, B là các xâu có độ dài khác nhau, A là đoạn đầu của B thì A nhỏ hơn B.
c. Các bớc tiến hành.
TG Hoạt động của GV Hoạt động của HS
10’ 1. Nhắc lại các phép toán đã học
- Hỏi: Nhắc lại các phép toán đã học trên các 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 qua một số ví dụ. - Chiếu chơng trình ví dụ Var st : String[30]; Begin st:=’Viet ’+’Yen’; write(st); end.
- Hỏi: Chơng trình cho kết quả in ra màn hình? - Thực hiện chơng trình để học sinh thấy kết quả. - yêu cầu học sinh tìm một số ví dụ khác.
- Hỏi: Từ ví dụ, hãy cho biết chức năng của phép cộng xâu?
- Chiếu một số ví dụ khác và yêu cầu học sinh cho biết kết quả.
- Giới thiệu và chiếu ví dụ về phép so sánh xâu. Var st1,st2:String[50];
ktra:Boolean; Program vidu2; Begin
- Chú ý theo dõi và suy nghĩ trả lời câu hỏi.
- Cho kết quả trên màn hình là xâu: Viet Yen
- Lấy một số ví dụ.
- Chức năng: Cộng nhiều xâu thành một xâu.
- Học sinh tự lấy ví dụ khác.
- Chú ý quan sát và lắng nghe để trả lời câu hỏi.
st1:='lop 10 A; st2:= 'lop 10 B'; ktra:=st1<st2; write(ktra); End.
- Hỏi: Kết quả của chơng trình in ra màn hình? - Thực hiện chơng trình để học sinh thấy kết quả. - Còn phép toán so sánh nào nữa đã học?
- 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ả.
* Lu ý: Xâu A đợc xem là lớn hơn xâu B, nếu kí tự khác nhau đầu tiên giữa chúng kể từ trái qua phải trong xâu A có mã ASCII lớn hơn . Nếu A, B là các xâu có độ dài khác nhau, A là đoạn đầu của B thì A nhỏ hơn B. Vì vậy, có thể một xâu có độ dài lớn nhng bé hơn xâu có độ dài ngắn. Đa ra ví dụ và thực hiện để học sinh thấy rõ.
- Kết quả là True. - Theo dõi kết quả.
- Có các phép so sánh: <>, <, >, <=, >=, =
- Theo dõi và trả lời.
3. Hoạt động 3:
a. Mục tiêu:- Tìm hiểu về một số hàm và thủ tục chuẩn liên quan đến xâu. Nắm đợc cấu trúc chung,
hiểu đợc các tham số của hàm và thủ tục trong xâu. - Biết đợc chức năng của hàm và thủ tục chuẩn.
b. Nội dung: - Thủ tục Delete(st,vt,n), thực hiện việc xoá đi trong xâu st n kí tự kể từ vị trí vt.
- Hàm copy(st,vt,n), cho giá trị là một xâu kí tự đợc lấy trong xâu st, lấy n kí tự từ vị trí vt. - Hàm Length(st), cho giá trị là số lợng kí tự trong xâu st (độ dài của xâu).
- Hàm Pos(st1,st2) cho giá trị là vị trí xuất hiện đầu tiên của xâu st1 trong xâu st2. - Hàm Upcase(ch), cho kí tự hoa tơng ứng của kí tự ch.
c. Các bớc tiến hành
TG Hoạt động của GV Hoạt động của HS
15’ 1. Giới thiệu cấu trúc chung của thủ tục Delete.
- Chiếu lên màn hình cấu trúc chung của thủ tục Delete.
Thủ tục Delete(st,vt,n), thực hiện việc xoá đi trong xâu st n kí tự kể từ vị trí vt.
- Chiếu ví dụ: Var st:String[20];
Begin st:= 'Lop 10A chung minh';
writeln('xau truoc khi xoa la: ',st); Delete(st,8,9); writeln('xau sau khi xoa la: ',st); readln;
End.
- Hỏi: Kết quả đa ra màn hình?
- Chú ý quan sát và suy nghĩ để trả lời câu hỏi.
- Ghi bài vào vở và suy nghĩ.
- kết quả đa ra màn hình : xau truoc khi xoa la: Lop 10A chung minh
- Thực hiện chơng trình để học sinh quan sát. 2. Giới thiệu cấu trúc chung của hàm Coppy. - Chiếu lên cấu trúc chung của hàm Coppy:
Hàm copy(st,vt,n), cho giá trị là một xâu kí tự đợc lấy trong xâu st, lấy n kí tự từ vị trí vt.
- Chiếu ví dụ:
Var st1, st2:String[20];
Begin st1:= 'Lop 10A chung minh'; writeln('xau ban dau khi xoa la: ',st1);
st2:=coppy(st1,1,7); writeln('xau sao chep la: ',st2); readln;
End.
- Hỏi: Kết quả đa ra màn hình?
- Thực hiện chơng trình để học sinh quan sát. 3. Giới thiệu hàm length.
- Chiếu cấu trúc chung của hàm length:
Hàm Length(st), cho giá trị là số lợng kí tự trong xâu st (độ dài của xâu).
Var st1, st2:String[20];
Begin st:= 'Lop 10A chung minh'; writeln(length(st)); readln; End.
- Hỏi: Kết quả đa ra màn hình?
- Thực hiện chơng trình để học sinh quan sát. 4. Giới thiệu hàm Pos
- Chiếu cấu trúc chung của hàm Pos:
Hàm Pos(st1,st2) cho giá trị là vị trí xuất hiện đầu tiên của xâu st1 trong xâu st2.
- chiếu ví dụ:
Var st:String[20]; vt:byte; Begin
st:= 'Lop 10A chung minh'; vt:=Pos('Lop 10', st); writeln(vt)); readln;
End.
- Hỏi: Kết quả đa ra màn hình?
- Thực hiện chơng trình để học sinh quan sát. 5. Giới thiệu hàm Upcase
- Chiếu cấu trúc chung của hàm Upcase:
xau sau khi xoa la: Lop 10A.
- Chú ý theo dõi, ghi bài và suy nghĩ để trả lời câu hỏi.
- Kết quả: trên màn hình: xau ban dau la: Lop 10A chung minh
xau sao chep la: Lop 10A. - Chú ý theo dõi và suy nghĩ trả lời câu hỏi.
- Kết quả: 17
- Chú ý theo dõi và suy nghĩ trả lời câu hỏi.
- Kết quả: 1
- Chú ý theo dõi và suy nghĩ trả lời câu hỏi.
- Hàm Upcase(ch), cho kí tự hoa tơng ứng của kí tự ch. --chiếu ví dụ:
Var st:String[20]; 1:byte; Begin
st:= 'Lop 10A chung minh';
For i:=1 to length(st) Do st[i]:=Upcase(st[i]); writeln(vt)); readln;
End.
- Hỏi: Kết quả đa ra màn hình?
- Thực hiện chơng trình để học sinh quan sát. 6. Giới thiệu thủ tục Insert
- Chiếu cấu trúc chung của thủ tục Insert
- Hàm Insert(st1,st1,vt), thực hiện việc chèn xâu st1 và xâu st2 tại vị trí vt.
--chiếu ví dụ:
Var st1, st2:String[20]; Begin
st2:= 'Lop 10A chung minh'; st1:=' thpt Viet Yen1'; Insert(st1,st2,8); writeln(st1)); readln; End.
- Hỏi: Kết quả đa ra màn hình?
- Thực hiện chơng trình để học sinh quan sát.
- Kết quả đa ra màn hình: LOP 10A CHUNG MINH - theo dõi, ghi bài và suy nghĩ để trả lời câu hỏi.
- In ra màn hình xâu: Lop 10A chung minh thpt Viet Yen1
IV. Đánh giá cuối bài (5’)
1. Nội dung đã học: Cách khai báo biến kiểu xâu, tham chiếu phần tử kiểu xâu và một số hàm, thủ tục.
Tiết 29: