Như vậy, kết quả trả về của các hàm xử lí xâu có thể là giá trị số, là kí tự hoặc xâu tuỳ theo hàm cụ thể?. Nhưng các em cần lưu ý truyền tham số cho hàm và thủ tục cần phải hợp lí, chẳ[r]
(1)Tuần : 25 Ngày soạn / / 09
Chương IV KIỂU DỮ LIỆU CÓ CẤU TRÚC §12 KIỂU XÂU (t2)
A MỤC TIÊU 1 Kiến thức:
- Biết lợi ích hàm thủ tục liên quan đến xâu NNLT Pascal
- Nắm cấu trúc chung chức số hàm thủ tục liên quan đến xâu NNLT Pascal
2. Kĩ năng:
- Nhận biết bước đâu sử dụng số hàm thủ tục để giải số tập đơn giản liên quan
B PHƯƠNG PHÁP Hỏi đáp
GV gợi mở để HS tham gia vào học C CHUẨN BỊ CỦA GIÁO VIÊN VÀ HỌC SINH
Giáo viên: Giáo án, giáo cụ Học sinh: Sách giáo khoa D TIẾN TRÌNH LÊN LỚP
I Ổn định lớp:
- Chào, lớp trưởng báo cáo sỉ số lớp II Kiểm tra cũ:
III Bài mới:
1.1 Đặt vấn đề:
Hôm tiếp tục nghiên cứu thao tác xử lí xâu cách dùng số hàm thủ tục
1.2 Triển khai mới:
Hoạt động giáo viên học sinh Nội dung
Hđ1 Tìm hiểu số hàm thủ tục liên quan đến xâu
GV: Trong tiết trước ta biết số phép toán xâu phép ghép xâu phép so sánh hai xâu Hôm tiếp tục nghiên cứu số thao tác xử lí xâu cách dùng hàm thủ tục
GV: Trong học trước, biết qua hàm chưa? Đã học hàm nào? HS: Nhớ lại, trả lời (đã học số hàm số học)
GV: Đọc SGK, cho biết cấu trúc chức số hàm xử lí xâu
HS: Nghiên cứu SGK, trả lời GV: Giảng giải hàm cụ thể Mỗi hàm đưa số ví dụ, yêu cầu HS cho biết kết
HS: Trả lời kết quả, bổ sung, nhận xét GV: Nhận xét, hoàn chỉnh
GV: Ngoài hàm nghiên cứu trên, NNLT Pascal cung cấp cho ta số thủ tục xử lí xâu: thủ tục Delete Insert Hãy tìm hiểu cấu trúc chức hai thủ tục
KIỂU XÂU (tt) 2 Các thao tác xử lí xâu
* Hàm thủ tục:
Thủ tục Delete(st, vt, n) thực xóa n kí tự xâu st vị trí vt
Vd:
St Thao tác Kết quả
‘Viet Nam’ Delete(st, 5, 4) ‘Viet’ ‘Khanh Hoa’ Delete(st, 1, 5) ‘ Hoa’
Thủ tụ Insert(st1, st2, vt) thực chèn xâu st1 xâu st2 vị trí vt
TIẾT
30
St1 St2 Thao tác Kết quả
‘ Ranh’ ‘TX Cam’ Insert(st1,st2,7) ‘TX Cam Ranh’ ‘ PC ’ ‘IBM486’ Insert(st1,st2,4) ‘IBM PC
(2)HS: Nghiên cứu SGK, trình bày
GV: Giải thích lại thủ tục Đối với thủ tục, GV nêu ví dụ, yêu cầu số học sinh cho biết kết thực
GV: Nhận xét
GV: Các em cần lưu ý, biết tiết học trước, ta xem xâu mảng chiều mà phần tử kí tự Nhưng kiểu mảng chiều với phần tử thuộc kiểu char khác với kiểu xâu nên áp dụng thao tác xử lí xâu cho mảng
GV: Các em nhận xét khác hàm thủ tục?
HS: Đưa nhận xét, HS khác bổ sung GV: Tổng hợp nhận nhét
GV: Hãy nhận xét kết trả hàm? (Hàm Copy?, hàm Pos?, hàm Length? Hàm Upcase?)
HS: Hàm Copy cho kết xâu, hàm Pos hàm Length cho kết số, hàm Upcase cho kết kí tự Như vậy, kết trả hàm xử lí xâu giá trị số, kí tự xâu tuỳ theo hàm cụ thể
GV: Cho biết kết chương trình sau Var s1, s2: string;
Begin
S1 := ‘ em’; S2 := ‘Truong’; Insert(s1, s2, 10); Write(s2);
end
HS: Một số cho kết in hình là: Truong em
Một số thắc mắc vị trí chèn s1 vào s2 (10 > length(s2))
GV: Mặc dù thủ tục thực chèn vào xâu s1 vào xâu s2 chương trình cho kết mong muốn Nhưng em cần lưu ý truyền tham số cho hàm thủ tục cần phải hợp lí, chẳng hạn hàm insert để thêm s1 vào cuối xâu s2 ta nên viết insert(s1, s2, length(s2)+1)
Hđ2 Làm số tập liên quan
GV: Cho HS quan sát số chương trình (đã chuẩn bị giấy khổ lớn), yêu cầu HS trả lời câu hỏi GV đặt
HS: Quan sát chương trình Vd1, suy nghĩ GV: Với câu hỏi, gọi số HS trả lời HS: Lần lượt trả lời
GV: Nhận xét, đưa kết Kết in hình:
Truong emNgo Gia Tu than yeu
Hàm Copy(st, vt, n) cho giá trị xâu gồm n kí tự liên tiếp vị trí vt xâu st
Vd:
Hàm Length(st) cho giá trị độ dài (số lượng kí tự) xâu st
Hàm Pos(st1, st2) cho giá trị vị trí xuất xâu st1 xâu st2
Hàm UpCase(ch) cho giá trị kí tự hoa tương ứng với kí tự ch
* Nhận xét:
- Kiểu mảng chiều với phần tử thuộc kiểu char khác với kiểu xâu, khơng thể áp dụng các thao tác xử lí xâu cho mảng
- Thủ tục Delete(st, vt, n) Insert(st1, st2, vt) làm thay đổi xâu (thủ tục Delete: xâu st bị xóa bớt số kí tự, thủ tục Insert: xâu st2 thêm vào số kí tự)
- Các hàm xâu cho kết giá trị, số, kí tự hay xâu tuỳ theo hàm cụ thể
- Tham số hàm thủ tục chuẩn phải hợp lí, chẳng hạn thủ tục insert(st1, st2, n) n <= length(st2) +
St Thao tác Kết quả
‘Viet Nam’ copy(st, 6, 3) ‘Nam’ ‘Khanh Hoa’ copy(st, 1, 5) ‘Khanh’
St Thao tác Kết quả
‘Viet Nam’ Length(st)
‘100 ki tu’ Length(st)
St2 Thao tác Kết quả
‘Viet Nam’ Pos(‘am’, st2)
‘Khanh
Hoa’ Pos(‘hH’, st2)
Ch Thao tác Kết quả
‘t’ Upcase(ch) ‘T’
(3)2 Kết in hình: Truong Ngo Gia Tu than yeu
3 Khai báo thêm biến số i thay dòng lệnh write(s1); dòng lệnh sau:
For i:=1 to length(s1) do Write(upcase(s1[i]));
GV: Cho biết chương trình Vd2 làm gì? Kết xuất nào?
HS: Lần lượt trả lời
GV: Nhận xét, đưa kết
Chương trình cho nhập vào xâu từ bàn phím xuất hình xâu viết theo thứ tự ngược lại
GV: Yêu cầu học sinh viết chương trình cho Vd3 Gọi vài HS lên bảng viết
3 Một số ví dụ Vd1
Var s1, s2: string[30]; Begin
S1:= ‘Truong em’;
S2:= ‘Ngo Gia Tu than yeu’; Insert(s2, s1, length(s1)+1); Write(s1);
End.
1 Cho biết kết thực chương trình Thêm hai dòng lệnh
Delete(s1, pos(‘em’,s1), 3); vào trước dịng Insert. Cho biết kết chương trình thay đổi nào?
3 Hãy viết thêm vào chương trình để có kết xuất hình ‘TRUONG NGO GIA TU THAN YEU’
Vd2 Cho chương trình sau: Var xau: string;
Begin
Write(‘Nhap vao mot xau bat ki:’); Readln(xau);
For i:=length(xau) downto do Write(xau[i]);
End.
Vd3 Viết chương trình nhập vào xâu Kiểm tra xem xâu có dấu cách hay khơng
Var s: string; Begin
Write(‘Nhap vao mot xau bat ki:’); Readln(s);
If pos(‘ ‘, s)>0 then
Write(‘Co dau cach xau’) Else
Write(‘Trong xau khong co dau cach’); Readln
End. IV. Củng cố
- Những hàm thủ tục liên quan đến xâu Thủ tục Delete(st, vt, n)
Thủ tục Insert(st1, st2, vt) Hàm Copy(st, vt, n) Hàm Length(st) Hàm Pos(st1, st2) Hàm UpCase(ch)
V Dặn dò - Xem tập 1, 2, trang 73 SGK - Làm tập 10 trang 80 SGK
VI RÚT KINH NGHIỆM: