1 Nguyễn Thị Dung – K56A – Sư phạm Tin 1 Giáo án số 2 Kiểu dữ liệu xâu A.Mục đích yêu cầu: Kiến thức và kĩ năng: Học sinh nắm được kiến thức liên quan tới xâu Học sinh biết cách vận dụng viết một số chương trình đơn giản liên quan tới xâu Về tư tưởng tình cảm: Giúp học sinh yêu thích và hứng thú với môn học 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 dạy như thuyết trình, vấn đáp, vẽ hình minh hoạ… 2.Phương tiện . Sách giáo khoa Tin học 11 . Vở ghi lý thuyết Tin học 11 . Sách tham khảo (nếu có) C.Tiến trình lên lớp, nội dung bài giảng I. Ổn định lớp (1’) 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’) Trong bài học trước chúng ta đã được làm quen với một trong số những kiểu dữ liệu có cấu trúc đó là kiểu mảng và biến có chỉ số. Câu hỏi kiểm tra bài cũ: 2 Nguyễn Thị Dung – K56A – Sư phạm Tin 2 1.Em hãy cho biết trong những cách khai báo sau, cách khai báo nào đúng (sai)? Nếu sai hãy sửa lại cho đúng: Var mangA = array [1 max] of real; Var mangB : array [1 100, 1 50] of real; Type Array = array [1 n] of real; Type Array : array [1 10,1 20] of integer; 2.Thế nào là kiểu chỉ số, kiểu thành phần? Vấn đề đặt ra là đối với các dữ liệu không phải là số thì ta phải làm như thế nào? Ví dụ khi quản lí sinh viên muốn nhập dữ liệu về tên sinh viên thì ta không thể nhập trực tiếp tên sinh viên vào mảng ở dạng real hay Boolean đựơc. III. Nội dung bài giảng Nội dung Hoạt động của thầy và trò Thời gian Xâu là dãy các kí tự trong bảng mã ASCII. Số lượng kí tự trong xâu được gọi là độ dài của xâu. Xâu có độ dài 0 gọi là xâu rỗng 1.Khai báo kiểu dữ liệu xâu -Để khai báo kiểu dữ liệu xâu, TP dùng tên riêng STRING. -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]; Hoạt động 1<Xâu> Gv: Người lập trình phải nắm được Xâu là gì? Thế nào là độ dài của xâu? Hs: Ta nên lựa chọn cách khai báo biến kiểu xâu cho phù hợp. 8’ 3 Nguyễn Thị Dung – K56A – Sư phạm Tin 3 -Ví dụ Var name : string [15]; Ta cũng có thể khai báo var name : string []; Khi đó độ dài lớn nhất của xâu được ngầm định là 255 2.Các thao tác xử lí xâu -Tham chiếu tới phần tử của xâu được xác định bởi tên xâu và chỉ số đặt trong []. -Các kí tự được đánh số bắt đầu từ 1.Có thể xem xâu là mảng một chiều mà mỗi phần tử là một kí tự. -Với dữ liệu kiểu xâu có thế thực hiện phép toán ghép xâu và phép toán quan hệ Ví dụ :phép ghép xâu (kí hiệu là +) ‘lớp’ + ’chúng’ + ’mình’ cho xâu kết quả là ‘lớp chúng mình’ + các phép so sánh =, <>, <, >, <=, >= thực hiện việc so sánh hai xâu và có thứ tự ưu tiên thấp hơn phép ghép xâu. *) Để xử lí các xâu thì có sử dụng các thủ tục và hàm chuẩn: Delete(st, vt, n) : xoá n kí tự của Hoạt động 2<Các thao tác> Gv: Để thao tác xử lí xâu ta cần chú ý tới điều gi? Hs: Khi làm việc với các dữ liệu kiểu xâu ta cần chú ý tới thứ tự ưu tiên như thế nào? -Các phép so sánh xâu phụ thuộc vào điều gì?(chỉ số của kí tự trong bảng 4’ 4 Nguyễn Thị Dung – K56A – Sư phạm Tin 4 xâu st từ vị trí vt Inser(s1, s2, vt) : chèn xâu s1 vào xâu s2 bắt đầu ở vị trí vt Copy(s, vt, n) : tạo xâu gồm n kí tự liên tiếp bắt đầu từ vị trí vt của xâu st Length(s) : cho giá trị là độ dài xâu s Pos (s1, s2) : cho vị trí xuất hiện đầu tiên của xâu s1 trong xâu s2 Upcase(ch) : cho chữ cái viết hoa ứng với chữ cái trong ch mã ASCII) -Lấy ví dụ minh hoạ cho các thủ tục và hàm.(sgk) 12’ 3.Ví dụ Ví dụ 1: Viết chương trình nhập tên của hai người từ bàn phím, đưa ra màn hình xâu dài hơn, nếu bằng nhau thì đưa ra xâu nhập sau. Var s1, s2 : string; Begin Write(‘nhap ho ten thu nhat ’); readln(s1); Write(‘nhap ho ten thu hai ’); readln(s2); If length(s1) > length(s2) Hoạt động 3<Ví dụ mẫu> Hs cùng Gv xây dựng chương trình. Gv đưa ra các trường hợp có thể xảy ra và cùng học sinh tìm cách giải quyết. Ví dụ: khi nhập một xâu vào ta có thể gặp vấn đề như :xâu nhập vào có thể là xâu rỗng, hay xâu đó có nhiều dấu cách không cần thiết. 14’ 5 Nguyễn Thị Dung – K56A – Sư phạm Tin 5 then write (a) Else write(b); Ví dụ 2: viết chương trình nhập xâu từ bàn phím đưa ra màn hình xâu thu được sau khi đã loại bỏ các dấu cách. Var i, k : byte; a,b : string; Begin Write (‘nhap xau ’); readln (a); k:= length(a); b:= ‘’; For i:=1 to k do If a[i]<> ‘ ’ then b:=b+a[i]; Writeln(‘ket qua ’,b) readln End. V. Củng cố bài Qua bài này, 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 và làm quen với các thao tác xử lí xâu. V.Bài tập về nhà và câu hỏi ôn tập: -Nghiên cứu phần tiếp theo -Viết một số chương trình: 6 Nguyễn Thị Dung – K56A – Sư phạm Tin 6 Viết chương trình để kiểm tra xâu nhập vào có đối xứng không? Viết chương trình để nhập một xâu từ bàn phím sau đó tiến hành xoá đi các dấu cách thừa và đưa ra xâu sau khi đã được chỉnh sửa. . Xâu là dãy các kí tự trong bảng mã ASCII. Số lượng kí tự trong xâu được gọi là độ dài của xâu. Xâu có độ dài 0 gọi là xâu rỗng 1.Khai báo kiểu dữ liệu xâu -Để khai báo kiểu dữ liệu xâu, . 10,1 20 ] of integer; 2. Thế nào là kiểu chỉ số, kiểu thành phần? Vấn đề đặt ra là đối với các dữ liệu không phải là số thì ta phải làm như thế nào? Ví dụ khi quản lí sinh viên muốn nhập dữ liệu. phạm Tin 1 Giáo án số 2 Kiểu dữ liệu xâu A.Mục đích yêu cầu: Kiến thức và kĩ năng: Học sinh nắm được kiến thức liên quan tới xâu Học sinh biết cách vận dụng viết một số chương