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
Trang 1Giá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ũ:
Trang 21.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
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’
Trang 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’
Trang 4xâ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’
Trang 5then 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
Trang 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