KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 12 § 12 KIỂU XÂU

Một phần của tài liệu giao an ca nam 11 (Trang 69 - 75)

IV) Những vấn đề cần rút kinh nghiệm:.

KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 12 § 12 KIỂU XÂU

Bài 12 § 12 KIỂU XÂU

Tiết PPCT : 26

I)Mục đích, yêu cầu: 1) Kiến thức :

- Biết xâu là một dãy kí tự ( có thể coi xâu là mảng một chiều) . - Biết cách khai báo xâu , truy cập phần tử của xâu.

2) Kỹ năng:

- Sử dụng được một số thủ tục, hàm thông dụng về xâu. - Cài đặt được một số chương trình đơn giản có sử dụng xâu. - Khai báo kiểu xâu

- So sánh hai xâu

- Nhận biết và bước đầu sử dụng được các hàm, thủ tục chuẩn nói trên.

3) Thái độ: II) Chuẩn bị: II) Chuẩn bị:

1) Tài liệu, bài tập:

- Sách giáo khoa, giáo án , một số bài tập và câu hỏi trong sách giáo khoa.

2) Dụng cụ , thiết bị:

- Hình ảnh trong sách giáo khoa.

III) Tiến trình lên lớp:

1) Ổn định, tổ chức lớp: sỉ số, tình hình chuẩn bị trước tiết học, trật tự lớp.

2) Kiểm tra bài cũ:

- Viết đọan chương trình nhập và in mảng một chiều. - Viết đọan chương trình nhập và in mảng hai chiều .

3) Bài giảng:

Hoạt động của thầy và trò Nội dung ghi bảng

Hoạt động 1:

Hình thức : cá nhân

Nội dung : xâu còn được gọi là gì? Cho ví

dụ?. Cách thức để xác định một xâu ?

Kiến thức : Xâu hay còn gọi là chuỗi. Là

một dãy các kí tự trong bộ mã ASCII (trong đó có thể có dấu cách : dấu cách thể hiện trong các văn bản là phần trống ngăn cách giữa hai từ viết liên tiếp ). Có thể coi xâu là mảng một chiều mà mỗi phần tử là một kí tự.

• Để xác định xâu ta dựa vào : tên kiểu xâu, cách khai báo biến kiểu xâu, số lượng kí tự của xâu, các phép tóan thao tác với xâu và cách tham chiếu đến các phần tử của xâu.

Hoạt động 2:

Hình thức : tìm hiểu và giải thích

Nội dung : Cách khai báo xâu trong

NNLT Pascal?

Kiến thức : Biết được cách khai báo xâu. (adsbygoogle = window.adsbygoogle || []).push({});

Tuy có thể coi xâu như mảng một chiều nhưng kiểu mảng một chiều với phần tử thuộc kiểu char khác với kiểu xâu.Chúng ta có thể dễ dàng thao tác các kí tự trên xâu.Khi khai báo 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.

Hoạt động 3:

Hình thức :giảng giải

Dữ liệu trong các bài tóan không chỉ thuộc kiểu số mà cả kiểu phi số – dạng kí tự.. Dữ liệu kiểu xâu là dãy các kí tự.

Ví dụ: ‘Truong Chinh’ ‘Nam moi phat tai’ ‘Lop 11 A 4 gioi qua !!!’ Là các xâu kí tự đơn giản.

Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được coi là một phần tử của xâu. Số lược kí tự trong mỗi xâu là độ dài của xâu.Xâu có độ dài bằng 0 là xâu rỗng.

+ Cách thức xác định: - Tên kiểu xâu

- Cách khai báo biến kiểu xâu - Số lượng kí tự của xâu

- Các phép tóan thao tác với xâu - Cách tham chiếu đến phần tử của xâu Xâu cũng được coi là mảng một chiều mà mỗi phần tử là một kí tự. Các kí tự được đánh số thứ tự.

1)

Khai báo:

Var <tên biến> :string[độ dài lớn nhất của xâu]; Ví dụ:

Var hoten:string[30];

Có thể bỏ qua phần khai báo độ dài: Var chugiai:string;

Khi đó độ dài lớn nhất của xâu sẽ nhận giá trị ngầm định là 255.

2)

Các thao tác xử lí xâu :

a)

Nội dung : một số lưu ý về xâu .

Kiến thức :

• không thể áp dụng các thao tác của xâu cho mảng

• Trong chương trình khi viết một xâu kí tự, ta phải viết xâu kí tự đó giữa hai dấu nháy đơn.Nhưng khi nhập từ bàn phím giá trị một xâu, ta chỉ cần gõ các kí tự thuộc xâu đó rồi nhấn phím enter.

• Xâu chỉ gồm một dấu cách ta viết là ‘ ‘ . Để viết xâu rỗng ta viết hai dấu nháy đơn liền nhau ‘’.

• Khi sử dụng lệnh gán, ta có thể gán trị là một kí tự cho một biến xâu kí tự nhưng việc gán trị là một xâu kí tự cho một biến kiểu kí tự là không hợp lệ dù xâu đó có độ dài bằng 1.

Hoạt động 4:

Hình thức : theo nhóm

Nội dung : tìm hiểu và cho ví dụ về các

thao tác xử lí xâu.

Kiến thức : Nắm được các thao tác xử lí

xâu. (adsbygoogle = window.adsbygoogle || []).push({});

• Ghép xâu : sử dụng +

• So sánh hai xâu :Lưu ý đến giá trị của các kí tự trong bảng mã ASCII. Do đó xâu có độ dài nhỏ hơn có thể là xâu lớn hơn.

• Length(s),pos(s1,s2) cho kết quả là số nguyên không âm.

• Copy(s,vt,n) : cho kết quả là một xâu

• Upcase(ch) :cho kết quả là một kí tự , chú ý ch phải là một phần tử của xâu hay một kí tự.

• Tham số của các hàm và thủ tục chuẩn phải hợp lí, chẳng hạn không thể dùng insert(s1,s2,10) khi length(s2)<10

• Thủ tục chuẩn delete(st,vt,n) làm thay đổi xâu st (xâu st bị xóa đi một kí tự) và insert (s1,s2,vt) làm biến đổi xâu s2(s2 được thêm mộ số kí tự.)

Kí hiệu : +

Được sử dụng để ghép nhiều xâu thành một.Có thể thực hiện phép ghép xâu đối với các hằng và biến xâu.

Ví dụ: ‘truong’ + ‘chinh’ kết quả : ‘truong chinh’

b)

Các phép so sánh:

=, <>, <, >, <=, >= : được thực hiện theo các quy tắc sau:

• Xâu A lớn hơn xâu B nếu như kí tự đầu tiên khác nhau giữa chúng kể từ trái sang trong xâu A có mã ASCII lớn hơn.

Ví dụ: ‘truong’ > ’chinh’

• Hai xâu coi là bằng nhau nếu như chúng giống nhau hòan tòan.

Ví dụ : ‘truong’ = ‘truong’ c)

Thủ tục xóa:

Delete (st,vt,n) trong đó : st là xâu nguồn, vt là vị trí cần xóa, n là số kí tự cần xóa.

Ví dụ: st = ‘Song Hong’ Delete(st,1,5) kết quả : ‘Hong’ d)

Thủ tục chèn:

Insert(s1,s2,vt) trong đó : s1 là xâu đem chèn, s2 là xâu bị chèn, vt là vị trí bắt đầu chèn. Ví dụ : s1=’ PC ‘ ; s2 =’IBM486’

Insert (s1,s2,4) kết quả : ‘IBM PC 486’ e)

Hàm Copy:

Copy(s,vt,n) trong đó s là xâu nguồn , vt là vị trí bắt đầu copy, n là số kí tự sẽ copy.

Ví dụ: s=’Bai hoc thu 9’ Copy(s,9,5) kết quả : ‘thu 9’ f)

Hàm độ dài:

Length (s) trong đó s là xâu Ví dụ: s =’500 ki tu’

Length (s) kết quả : 9 g)

Hàm xác định vị trí: (adsbygoogle = window.adsbygoogle || []).push({});

Pos(s1,s2) trong đó s1 là xâu cần xác định vị trí xuất hiện đầu tiên trong xâu s2

Ví dụ : s1 =’cd’ ; s2=’abcdef’ Pos(s1,s2) kết quả :3

h)

Hàm in hoa:

Upcase(ch) trong đó ch là kí tự cần in hoa Ví dụ: ch=’h’

Upcase (ch) kết quả : ‘H’

4) Tổng kết nội dung, đánh giá cuối bài:

- Cách khai báo kiểu xâu, Có thể nhập hay xuất giá trị của một biến kiểu xâu như đối với một giá trị của biến có kiểu dữ liệu chuẩn và cũng 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.

- Các phép so sánh trên xâu được thực hiện theo thứ tự từ điển. - Có thể ghép các xâu bằng phép ghép xâu (+).

- Ý nghĩa của các hàm chuẩn.

5)Dặn dò , kế hoạch học tập tiết sau :

- Xem trước và chuẩn bị bài tập cho tiết thực hành tiếp theo. - Rèn luyện khả năng viết chương trình, xử lí dữ liệu.

IV) Những vấn đề cần rút kinh nghiệm:

- Lưu ý thật kỹ các thao tác chèn, xóa, copy. - Tăng cường khả năng làm việc của học sinh. - Họat động nhóm sẽ hiệu quả hơn ở bài này.

- Có thể trình bày trước thuật tóan sau đó gọi các em lên bảng để viết chương trình. - Nội dung bài đơn giản có thể dùng để thao giảng , dự giờ.

Ngày soạn : 30 / 12 / 10

Chương IV:

KIỂU DỮ LIỆU CÓ CẤU TRÚC Bài 12 § 12 KIỂU XÂU Bài 12 § 12 KIỂU XÂU

Tiết PPCT : 27

I)Mục đích, yêu cầu: 4) Kiến thức :

- Biết xâu là một dãy kí tự ( có thể coi xâu là mảng một chiều) . - Biết cách khai báo xâu , truy cập phần tử của xâu.

5) Kỹ năng:

- Cài đặt được một số chương trình đơn giản có sử dụng xâu. - Khai báo kiểu xâu

- So sánh hai xâu

- Nhận biết và bước đầu sử dụng được các hàm, thủ tục chuẩn nói trên.

6) Thái độ: II) Chuẩn bị: II) Chuẩn bị:

1) Tài liệu, bài tập:

- Sách giáo khoa, giáo án , một số bài tập và câu hỏi trong sách giáo khoa.

2) Dụng cụ , thiết bị:

- Hình ảnh trong sách giáo khoa. (adsbygoogle = window.adsbygoogle || []).push({});

III) Tiến trình lên lớp:

1) Ổn định, tổ chức lớp: sỉ số, tình hình chuẩn bị trước tiết học, trật tự lớp.

2) Kiểm tra bài cũ:

- Viết chương trình nhập và in mảng một chiều. - Viết chương trình nhập và in mảng hai chiều .

3) Bài giảng:

Hoạt động của thầy và trò Nội dung ghi bảng

Hoạt động 5:

Hình thức : theo nhóm

Nội dung : xác định bài tóan (input và

output) và thuật tóan của 5 ví dụ trong sgk.

Kiến thức :

Ví dụ 1:

• A=’truong’ ; B=’Chinh’

• In ra : ‘truong’

• Input:Nhập hai xâu (a,b)

• Output:a(a>b) or b(a<=b)

• Thuật tóan:

- Nhập hai xâu a,b - Xác định độ dài của

hai xâu.

- So sánh :

Nếu độ dài xâu a lớn hơn độ dài xâu b thì in ra xâu a

Ngược lại in ra xâu b.

Ví dụ 2:

• A=’truong’ ; B=’Chinh’

• In ra : khong trung

• Input:Nhập hai xâu (a,b)

• Output:trùng hay không trùng (so sánh kí tự đầu của xâu a với kí tự cuối của xâu b)

• Thuật tóan:

- Nhập hai xâu a,b - Xác định độ dài của

3)Một số ví dụ: (adsbygoogle = window.adsbygoogle || []).push({});

Ví dụ 1:

Chương trình dưới đây nhập họ tên của hai người vào hai biến xâu và đư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

A,b:string; Begin

Write(‘Nhap ho ten thu nhat :’); Readln(a);

Write(‘Nhap ho ten thu hai :’); Readln(b);

If length(a) > length(b) then write(a) else write(b);

Readln End.

Ví dụ 2:

Chương trình dưới đây nhập hai xâu từ bàn phím và kiểm tra kí tự đầu tiên của xâu thứ nhất có trùng với kí tự cuối cùng của xâu thứ hai không ?

Var x:byte; A,b:string; Begin

Write(‘Nhap xau thu nhat :’); Readln(a);

Write(‘Nhap xau thu hai :’); Readln(b);

xâu b.

- So sánh :

Nếu kí tự đầu của xâu a bằng với kí tự cuối của xâu b (a[1] = b[length(b)] ) thì in ra thông báo là trùng nhau.

Ngược lại in ra thông báo là khác nhau.

Ví dụ 3:

• A=’truong chinh’

• In ra : ‘hnihc gnourt’

• Input:Nhập một xâu a

• Output: In ra xâu ngược với xâu a

• Thuật tóan: - Nhập một xâu a - Xác định độ dài của xâu. - In ra xâu ngược bằng cách sử dụng vòng for ở dạng lùi • Ví dụ 4: • A=’truong chinh’ • In ra b : ‘truongchinh’ • Input:Nhập một xâu a

• Output:in xâu b là các kí tự của xâu a (không có dấu cách)

• Thuật tóan:

- Nhập một xâu a

- Xác định độ dài của xâu a.

- Khởi tạo một xâu rỗng b

- Duyệt xâu:

Nếu kí tự không phải là dấu cách thì được chép sang xâu b bằng thao tác ghép xâu. - In ra xâu b. • Ví dụ 5: • S1=’Lop 11a5’ • In ra s2 : ‘115’ • Input:Nhập một xâu s1 • Output:in ra xâu s2 (gồm các chữ số có trong s1.) • Thuật tóan: - Nhập một xâu s1 - Xác định độ dài của xâu.

- Khởi tạo một xâu rỗng s2. (adsbygoogle = window.adsbygoogle || []).push({});

- Duyệt xâu

{xac dinh do dai cua xau b de biet vi tri cuoi cung}

If a[1] = b[x] then write(‘trung nhau’) Else

Write(‘Khac nhau’); Readln

End.

Ví dụ 3:

Chương trình sau nhập một xâu vào từ bàn phím và đưa ra màn hình xâu đó nhưng được viết ngược lại. Var I,k:byte; A:string; Begin Write(‘Nhap xau :’); Readln(a); K:=length(a);

For i:=k downto 1 do write(a[i]); Readln

End.

Ví dụ 4:

Chương trình trên nhập một xâu từ bàn phím và đưa ra màn hình xâu thu được từ nó bởi việc lọai bỏ các dấu cách nếu có.

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í dụ 5:

Chương trình sau nhập vào từ bàn phím xâu kí tự s1, tạo xâu s2 bao gồm tất cả các chữ số có trong s1(giữ nguyên thứ tự xuất hiện của chúng) và đưa kết quả ra màn hình. Var s1,s2:string; I:byte; Begin Write(‘Nhap xau s1:’); Readln (s1); S2:=’’;

Nếu kí tự là số (0..9) thì được chép sang xâu s2 bằng thao tác ghép xâu.

- In ra xâu s2.

If (s1[i] >=’0’) and (s1[i] <= ‘9’) then

âys2:=s2+s1[i];

Writeln(‘ket qua :’,s2); Readln

End.

4) Tổng kết nội dung, đánh giá cuối bài:

- Tìm hiêểu hết các ví dụ trong sách giáo khoa - Các ví dụ tương đối dễ hiểu, sát phần lí thuyết

5)Dặn dò , kế hoạch học tập tiết sau :

- Xem kĩ 05 ví dụ để thực hành tốt vào tiết sau - Chuẩn bị câu hỏi để hiểu rõ các ví dụ đã nêu

IV) Những vấn đề cần rút kinh nghiệm: (adsbygoogle = window.adsbygoogle || []).push({});

- Xây dựng tính liên tục khi giảng

- Cĩ kế hoạch cụ thể hơn, đặt ra nhiều câu hỏi cho các em trả lời

Ngày soạn : 05 / 01 / 10

Chương VI: KIỂU DỮ LIỆU CÓ CẤU TRÚC

BAØI TẬP VAØ THỰC HAØNH 5Tiết PPCT : 29

Một phần của tài liệu giao an ca nam 11 (Trang 69 - 75)