-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 của ngôn ngữ lập trình Pascal.. Kĩ năng: -Nhận biết và bước đầu sử dụng được một số hàm và thủ tục để gi[r]
Trang 1Ngày soạn 11/12/09
i Mục tiêu
1 Kiến thức:
-7()8 9+,: ;< =,( ớch :?4 cỏc hàm và 85? 8D: liờn quan xõu trong ngụn *-I =JK trỡnh Pascal
-NB 9+,: :O6 trỳc chung và :5Q: *R*- :?4 BS8 ;T hàm và 85? 8D: liờn quan 9)* xõu :?4 ngụn *-I =JK trỡnh Pascal
2 Kĩ năng:
-5J* U()8 và U+V: 9W6 ;X YD*- 9+,: BS8 ;T hàm và 85? 8D: 9Z -([( E61)8 BS8 ;T bài 8JK 9\* -([* liờn quan
3 Tư duy:
- Logic cỏc ki Z6 9 ó 5_: 8`G ta ]5[ *R*- =JK trỡnh CV( cỏc :5+\*- trỡnh K5Q: 8`K 5\*M
4 Thỏi độ:
- Chỳ ý *5(b8 tỡnh, 8+ duy 8T8 khi =JK trỡnh R*- hỏi xõy Y<*- bài.
ii Chuẩn bị bài giảng
1 Phương tiện:
- GV: Giỏo ỏn, bài giảng điện tử.
- HS: Sỏch giỏo khoa, vở ghi Xem trước bài học.
2 Phương pháp dạy học
-Gợi mở vấn đáp
-Đàm thoại
-Đặt vấn đề
iii Tiến trình dạy học
1 Kiểm tra bài cũ:
- Khai bỏo U()*& VAR 82*3U()* : e9S dài =V* *5O8 :?4 xõu];
- 5JK F6O8 giỏ 8.h cho U()* xõu: read/readln(); write/writeln();
- Tham :5()6 9)* 8n*- ký 8< trong xõu: 82*3U()*e:5o3;TfM
- Phộp ghộp xõu: ký 5(b6 là +, 9+,: ;X YD*- 9Z ghộp *5(r6 xõu thành BS8 xõu
- Cỏc phộp so sỏnh: =, <>, >, <, <=, >=: 85<: 5(b* C(b: so sỏnh hai xõu
2 Nội dung bài giảng:
Hoạt động 1 Tỡm hiểu về một số hàm và thủ tục chuẩn liờn quan xõu trong ngụn ngữ lập trỡnh Pascal.
1 (V( 85(b6 :O6 trỳc chung :?4 hàm length(st)
lờn U[*-M
- v(& í *-5x4 :?4 Length và :?4 st?
1 Quan sỏt :O6 trỳc chung
- Length: là tờn hàm, cú *-5x4 là 9S dài, st: là
Tiết 30
Trang 2- 5()6 :5+\*- trỡnh vớ YD&
Var st:string;
Begin
st:= ‘Ha Noi’;
Write(length(st));
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trỡnh in ra màn
hỡnh?
- 5<: 5(b* :5+\*- trỡnh 9Z 5_: sinh 85O1 ])8
E6[M
- v(& 5Q: *R*- :?4 hàm length() là gỡ?
- 5()6 9r bài 8JK Q*- YD*-& %()8 :5+\*- trỡnh
*5JK BS8 xõu, in ra màn hỡnh ;T ký 8< ‘a’ cú
trong xõu
2 (V( 85(b6 :O6 trỳc chung :?4 hàm
Upcase(ch)
- 5()6 :5+\*- trỡnh vớ YD&
Var ch:char;
Begin
ch:= ‘h’;
Write(upcase(ch));
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trỡnh in ra màn
hỡnh?
- 5<: 5(b* :5+\*- trỡnh 9Z 5_: sinh 85O1 ])8
E6[M
- v(& 5Q: *R*- :?4 hàm upcase()?
- 5()6 bài 8JK Q*- YD*-& %()8 :5+\*- trỡnh
*5JK BS8 xõu, in ra màn hỡnh xõu 9{ Y`*- in
hoa
BS8 U(Z6 85Q: xõu ký 8<M
- Quan sỏt :5+\*- trỡnh 9Z Y< tớnh ])8 E6[M
- d)8 E6[ là: 6
- Quan sỏt ])8 E6[ :?4 :5+\*- trỡnh
- Hàm cho ;T =+,*- ký 8< :?4 xõu st
2 Quan sỏt :O6 trỳc chung :?4 hàm Upcase
- Quan sỏt :5+\*- trỡnh 9Z Y< tớnh ])8 E6[M
- d)8 E6[ là: H
- Quan sỏt ])8 E6[ :?4 :5+\*- trỡnh
- Cho giỏ 8.h là :5I cỏi in hoa :?4 ch
Var st:string;
Begin readln(st);
For i:=1 to length(st) do write(upcase(st[i]));
End
Hoạt động 2 Hàm Pos (V( 85(b6 :O6 trỳc chung :?4 hàm Pos
Trang 33 (V( 85(b6 :O6 trúc chung :?4 hàm
Pos(s1,s2)
- 5()6 :5+\*- trình ví YD&
Var vt:byte;
Begin
vt:=Pos(‘cd’, ‘abcdefcd’);
Write(vt);
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trình in ra màn
hình?
- 5<: 5(b* :5+\*- trình 9Z 5_: sinh 85O1 ])8
E6[M
- v(& 5Q: *R*- :?4 hàm pos?
- Thay tham ;T :?4 hàm Pos trong :5+\*- trình
U*- Pos(‘k’, ‘abc’) v( ])8 E6[ :?4 hàm U*-
bao nhiêu?
- 5()6 bài 8JK Q*- YD*-& %()8 :5+\*- trình
*5JK vào BS8 xâu st Xét xem trong xâu có YO6
cách hay không?
- v(& Có cách -([( nào khác?
3 Quan sát :O6 trúc chung :?4 hàm Pos và các
ví YD 9Z U()8 :5Q: *R*-M
- Quan sát :5+\*- trình 9Z Y< tính ])8 E6[M
- d)8 E6[ là: 3
- Quan sát ])8 E6[ :?4 :5+\*- trình
- Hàm cho giá tri là BS8 ;T nguyên là Ch trí :?4 xâu st2 trong xâu st2
- 7*- không 0
Var st:string;
- Có 85Z ;X YD*- For 9Z tìm YO6 cách trong xâu
HOẠT ĐỘNG 3 Hàm Copy, thủ tục Delete.
4 (V( 85(b6 :O6 trúc chung :?4 hàm
copy(st,vt,n)
- 5()6 :5+\*- trình ví YD&
Var st:string;
Begin
st:=copy(‘bai tap’,3,4);
Write(st);
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trình in ra màn
hình?
- 5<: 5(b* :5+\*- trình 9Z 5_: sinh 85O1 ])8
E6[M
4 Quan sát :O6 trúc chug :?4 hàm copy và ví
YD 9Z U()8 :5Q: *R*-M
- Quan sát :5+\*- trình 9Z Y< tính ])8 E6[M
- d)8 E6[ là: ‘i ta’
- Quan sát ])8 E6[ :?4 :5+\*- trình
- Hàm cho giá 8.h là BS8 xâu ký 8< 9+,: =O1
Trang 4- v(& 5Q: *R*- :?4 hàm copy?
- Thay các tham ;T :?4 hàm copy trong :5+\*-
trình ví YD trên *5+ sau và 5v( ])8 E6[ in ra
màn hình:
Copy(‘abc’,1,5)
Copy(‘abc’,5,2)
Copy(‘abc’,1,0)
- 5<: 5(b* :5+\*- trình 9Z 5_: sinh 85O1 ])8
E6[M
5 (V( 85(b6 :O6 trúc chung :?4 85? 8D:
delete(st,vt,n);
- 5()6 :5+\*- trình ví YD&
Var st:string;
Begin
st:= ‘HaNoi’;
delete(st,3,2);
Write(st);
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trình in ra màn
hình?
- 5<: 5(b* :5+\*- trình 9Z 5_: sinh 85O1 ])8
E6[M
- v( :5Q: *R*- :?4 85? 8D: delete();
- Thay =b*5 gán st:= ‘HaNoi’; và 85? 8D: xóa
U( các =b*5 sau và 5v( ])8 E6[ in ra màn hình
st:=’abc’; Delete(st,1,5);
st:=’abc’; Delete(st,5,2);
st:=’abc’; Delete(st,1,0);
- 5()6 bài 8JK Q*- YD*-& %()8 :5+\*- trình
*5JK BS8 xâu và xoá 9( các YO6 cách 85n4
9W6 xâu
trong xâu st, -B n ký 8< UN8 9W6 8`( Ch trí vt
Cho giá 8.h là: ‘abc’
Cho giá 8.h là xâu .'*-Cho giá 8.h là xâu
.'* Quan sát ])8 E6[ :?4 :5+\*- trình 9Z ](ZB
*-5(bB suy =6J*M
5 Quan sát :O6 trúc chung :?4 85? 8D: Insert và các ví YDM
- Quan sát :5+\*- trình 9Z Y< tính ])8 E6[M
st=’Hai’
- Quan sát ])8 E6[ :?4 :5+\*- trình
- 5? 8D: 85<: 5(b* C(b: xóa 9( trong U()* xâu
st -B n ký 8<c UN8 9W6 8n Ch trí vt
st:= ‘’; xâu '*-M st:= ‘abc’;
st:= ‘abc’;
Var st:string;
begin readln(st);
while st[1]= ‘ ’ do delete(st,1,1);
writeln(st);
readln;
end
HOẠT ĐỘNG 4 Giới thiệu cấu trúc chung của thủ tục Insert.
Trang 56 (V( 85(b6 :O6 trúc chung :?4 85? 8D:
Insert(st1,st2,vt);
- 5()6 :5+\*- trình ví YD&
Var st1,st2:string;
Begin
st2:=‘HaNoi’;
st1:= ‘ ’;
insert(st1,st2,3);
Write(st);
readln;
End
- v(& d)8 E6[ :?4 :5+\*- trình in ra màn
hình?
- 5<: 5(b* :5+\*- trình 9Z 5_: sinh 85O1 ])8
E6[M
- v( :5Q: *R*- :?4 85? 8D: insert();
- Thay =b*5 gán st2:=‘HaNoi’; và 85? 8D: chèn
U( các =b*5 *5+ sau và 5v( ])8 E6[&
st2:=‘ef’; Insert(‘abc’,st2, 5);
st2:=‘ef’; Insert(‘abc’,st2, 0);
6 Quan sát :O6 trúc chung :?4 85? 8D: Insert
- Quan sát :5+\*- trình 9Z Y< tính ])8 E6[M
- d)8 E6[ st2=’Ha Noi’
- Quan sát ])8 E6[ :?4 :5+\*- trình
- 5? 8D: 85<: 5(b* C(b: chèn xâu st1 vào trong U()* xâu st2 UN8 9W6 8`( Ch trí vt
st2= ‘efabc’;
st2= ‘abcef’;
HOẠT ĐỘNG 5 Rèn luyện kĩ năng vận dụng hàm và thủ tục.
1 Xác 9h*5 bài toán
- 5()6 *S( dung 9r bài lên U[*-M
- Xác 9h*5 YI =(b6 vào, YI =(b6 ra
- v(& Các *5(bB CD chính khi -([( E61)8 bài
toán này?
- v(& Trong bài này, ta :W* ;X YD*- *5I*-
hàm và 85? 8D: nào?
2 Chia =VK làm 3 nhóm Yêu :W6 C()8 :5+\*-
trình lên bìa trong
- Thu K5()6 8.[ =/(M 5()6 ])8 E6[ lên U[*-M _(
5_: sinh nhóm khác *5J* xét, 9@*5 giá và U
sung
3 5()6 :5+\*- trình B6 giáo viên 9^ C()8 9Z
chính xác hóa =`( cho 5_: sinh
1 Quan sát, suy *-5x 9Z 8.[ =/(M
- Vào: S8 xâu ký 8< UO8 ]M
- Ra: S8 xâu :5o có 1 ký 8.N*- -(I4 hai 8nM
- Xoá B_( YO6 cách 85n4 9W6 xâu và :6T( xâu
- Xoá các YO6 cách 85n4 -(I4 hai 8nM
- Hàm Pos(), 85? 8D: delete();
2 5[G =6J* theo nhóm 9Z C()8 :5+\*- trình
- Thông báo ])8E6[M
- 5J* xét và U sung *5I*- 85()6 sót :?4 nhóm khác
3 Quan sát và ghi *5V
Trang 6Giáo viên ;G`* ;* các ví YD này 9Z 8(b* cho 5_:
sinh theo dõi trên màn hình :*- *5+ C(b: :5`1 85X
và không làm BO8 85/( gian *-( C()8 :5+\*- trình
%V( B'( ví YDc giáo viên 9( sâu vào câu =b*5 8.<:
8()K 9@K Q*- yêu :W6 :?4 ví YDc *5+ CJ1 các em ;
8()K thu nhanh 5\*
Ví dụ 1 : 5JK 1 xâu, C()8 ra màn hình xâu dài
5\*
Ví dụ 2 : 5JK 1 xâu, ](ZB tra xem ký 8< 9W6 tiên
:?4 xâu S1 có trùng CV( ký 8< :6T( cùng :?4 xâu S2
hay không ?
Một số ví dụ :
VD 1 :
Program vd1 ; Uses crt ; Var s1,s2 : String ; Begin
Clrscr ; Write('Nhap xau thu 1 : ') ; Readln(s1) ;
Write('Nhap xau thu 2 : ') ; Readln(s2) ;
If length(s1) > Length(s2) then Write(s1)
else Write(s2);
Readln ; End
VD 2 :
Program vd2 ; Uses crt ; Var s1,s2 : String ;
x : Byte ; Begin Clrscr ; Write('Nhap xau thu 1 : ');
Trang 7Ví dụ 3 : 5JK 1 xâu, C()8 ra màn hình xâu 9{ theo
85Q 8< *-+,: =`( :?4 các ký 8< trong xâu
Ví dụ 4 : 5JK 1 xâu, C()8 ra màn hình xâu 9{
*5+*- 9^ 9+,: Uv 8O8 :[ các ký 8< là YO6 cách
Readln(s1) ; Write('Nhap xau thu 2 : ');
Readln(s2) ;
x := length(s2) ;
If s1[1] = s2[x] then Write('Trung nha') else
Write('Khac nhau');
Readln ; End
VD 3 :
Program vd3 ; Uses crt ; Var i,k : Byte ;
a : String ; Begin
Clrscr ; Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ; For i := k downto 1 do Write(a[i]) ;
Readln ; End
VD 4 :
Program vd4 ; Uses crt ; Var i,k : Byte ;
Trang 8Ví dụ 5 : 5JK 1 xâu, C()8 ra màn hình xâu -B
các ký 8< ;T :?4 xâu 9{
a,b : String ; Begin
Clrscr ; Write('Nhap xau : ') ; Readln(a) ;
k := length(a) ;
b :='' ; For i := 1 to k do
if a[i] <> '' then
b := b+a[i] ; Write(b) ; Readln ; End
VD 5 :
Program Xulixau ; Uses crt ;
Var s1,s2 : String ;
i : Byte ; Begin Clrscr ; Write('Nhap xau s1 : ') ; Readln(s1) ;
s2 := '' ; For i := 1 to length(s1) do
If ('0'<s1[i]) and (s1[i]<='9') then s2 := s2 + s1[i] ;
Write(s2);
Readln ;
Trang 9End
3 Củng cố:
Những hàm và thủ tục liờn quan đến xõu
- 5? 8D: Delete(st,vt,n);
- 5? 8D: Insert(st1,st2,vt);
- Hàm Copy(st,vt,n)
- Hàm Length(st)
- Hàm Pos(st1,st2)
- Hàm UpCase(ch)
4 Dặn dò:
- ([( bài 8JK ;T 10 trang 80
iv Nhận xét
Phương pháp:
Hiệu quả sử dụng:
Hiệu quả SD TBDH:
ND cần điểu chỉnh:
Nhận xét của giáo viên hướng dẫn: