Xác định bài toán: Input: Nhập vào hai xâu từ bàn phím Output: 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.. Hướng giải quyết bài toán[r]
Trang 2KIỂM TRA BÀI CŨ
Khai báo xâu:
Var <tên biến>: string[độ dài lớn nhất của xâu];
Trong đó:
+ String: tên dành riêng.
+ Độ dài lớn nhất của xâu (<=255)
được ghi trong cặp ngoặc [ ]
Xâu là dãy các kí tự trong bộ mã ASCII, mỗi kí tự được gọi là một phần tử của xâu
Var a, b: string;
Câu hỏi 1: Em hãy cho biết thế nào là xâu?
Cách khai báo xâu? Từ đó hãy viết chương trình khai báo 2 xâu a và b?
Trang 3KIỂM TRA BÀI CŨ
1 2 3 1 2 3
ST2
<
Câu 2: Em hãy nêu quy tắc để So sánh 2 xâu?
So sánh hai xâu sau:ST1:= ‘CBA’; ST2:= ‘CBB’;
ST1
• Kí tự đầu tiên khác nhau giữa chúng ở xâu A có mã
ASCII lớn hơn ở xâu B.
• Xâu B là đoạn đầu của xâu A.
Trang 4KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
Cần có thao tác
gì để chỉnh sửa xâu A thành xâu
B ?
A n
e y
u g
n
A
n
1 2 3 4 5 6 7 8 9
N
1 2 3 4 5 6 7 8 9 10
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
Trang 52.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
c Thủ tục DELETE(St, vt, n)
Ví dụ 1:
St:= ‘Song Hong’;
Delete(St,1,5);
g n
o H
g n
o S
1 2 3 4 5 6 7 8 9
ST[1]
g n
o H
Kết quả: St = ‘Hong’
NỘI DUNG BÀI MỚI
St =’tin hoc’ Delete(St,4,3); St =’tin
Ví dụ 2:
hoc’
Trang 6d Thủ tục INSERT(St1 , St2, vt)
Ví dụ 1: St1:= ‘vi-’; St2:= ‘May-tinh’;
v i
1 2 3
M a y - t i n h
1 2 3 4 5 6 7 8
-Kết quả: St2 = ‘May-vi-tinh’
1 2 3 4 5 6 7 8 9 10 11
Chèn xâu St1 vào xâu St2 bắt đầu từ vị trí vt
Insert(St1,St2,5);
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
S = ’Abc’
St =
Ví dụ:
St = ’def’
Insert(S,St,1);
Trang 73 Hàm COPY(S, vt, n)
• Tạo một xâu gồm n ký tự liên tiếp bắt đầu
từ vị trí vt của xâu S
Ví dụ 1: St1:= ‘Xau-ky-tu’; St2:= Copy(St1,5,5);
1 2 3 4 5 6 7 8 9
Copy
Kết quả St2 = ‘ky-tu’
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
Ví dụ 2:
hong
Trang 8f Hàm LENGTH(S)
Ví dụ1 : S:= ‘Tin hoc’;
D:= Length(S);
Kết quả: D = 7 quả
Cho giá trị là độ dài của xâu S
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
S = ’ab 2’ Kết quả D=
Ví dụ 2:
1 23 4
D:=Length(S );
Trang 9g Hàm POS(St1, St2)
- Cho vị trí xuất hiện đầu tiên của xâu St1 trong xâu St2
Ví dụ 1: St2:= ‘LOP 11A1’; St1:= ’11A1’;
Kết quả: D = 5 D:= Pos(St1,St2);
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
Ví dụ 2:
S2:= ‘abcde’
D:= pos(‘Cd’,S2);
D = 0
Cd Cd CdCd Cd
Trang 10• Cho chữ cái in hoa ứng với chữ cái trong ch
h Hàm UPCASE(Ch)
Ch2:= Upcase(Ch1);
1 2 3 4 5 6
Upcase(st[1]) Upcase(st[2]) Upcase(st[3]) Upcase(st[4]) Upcase(st[5]) Upcase(st[6])
1 2 3 4 5 6
Kết quả: Ch2 = ‘A’
Ch1:= ‘a’;
St
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
Trang 11KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
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.
Xác định bài toán:
Input: Nhập họ tên của hai người vào hai biến xâu
Output: Đư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.
Hướng giải quyết bài toán?
Dùng hàm Length để biết độ dài của hai xâu,sau đó dùng câu lệnh If dạng đủ để thực hiện: nếu length(a)>length(b) thì đưa ra xâu a; nếu không thì đưa ra xâu b
Trang 12KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Thể hiện bằng pascal
Var a, b: String;
Begin
write (‘Nhap ho ten nguoi thu 1: ’);
readln (A);
write (‘Nhap ho ten nguoi thu 2: ’);
readln (B);
if length(A) > length(B) then
write (A)
else
write(B);
readln
End.
pascal
Trang 13KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 2: Viết chương trình nhập hai xâu từ 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 nhat:’);
Readln(b);
x:= length(b);
If a[1]= b[x] then Write(‘Trung nhau’)
else write(‘Khac nhau’);
Readln
End.
Xác định bài tốn:
Input: Nhập vào hai xâu từ bàn phím
trùng với kí tự cuối cùng của xâu thứ hai khơng.
Hướng giải quyết bài tốn:
Pascal
Thể hiện bằng Pascal
Trang 14KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 3: Viết chương trình nhập vào một xâu từ phím và đưa
ra màn hình xâu được viết theo thứ tự ngược lại.
Var a : string[50] ;
i, d : byte ; Begin
Write(‘nhap vao xau:’);
Readln(a);
d:= length(a);
For i:= d downto 1 do
Write(a[i]);
Readln;
End.
Xác định bài tốn:
Input: Nhập vào hai xâu từ bàn phím
trùng với kí tự cuối cùng của xâu thứ hai khơng.
Hướng giải quyết bài tốn:
Thể hiện bằng Pascal
Pascal
Trang 15KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 4.
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];
write(‘ket qua: ’,b);
Readln
End.
Ví dụ 4: Viết chương trình nhập vào một xâu từ phím và đưa ra màn hình xâu thu được từ nó bởi việc loại bỏ các dấu cách nếu có.
Pascal
Xác định bài tốn:
Input: Nhập vào xâu từ bàn phím
Hướng giải quyết bài tốn:
Thể hiện bằng Pascal
Trang 16KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 4.
Ví dụ 5
Program Xulixau;
Var s1, s2 : string ;
i : byte ; Begin
Write(‘nhap vao 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(‘Ket qua: ’, s2);
Readln
End.
Ví dụ 5: Viết chương trình nhập vào một xâu s1 từ bàn phím, tạo xâu s2 gồm tất cả các chữ số có trong s1.
Xác định bài tốn:
Input: Nhập vào xâu từ bàn phím
Hướng giải quyết bài tốn:
Thể hiện bằng Pascal
Trang 17Em hãy chỉ ra kết quả khi thực hiện các thao tác sau:
1
Giá trị st Thao tác Kết quả
d) ‘Nang dong’ Pos(‘Nang’, st)
‘Dat ’
‘ki 2’
7 1
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 4.
Ví dụ 5
CỦNG CỐ
Trang 18Copy(S, vt, n) Insert(S1, S2, vt) Delete(St, vt, n)
Pos(S1, S2)
Length(S)
Upcase(ch)
Các hàm và thủ tục xử lý xâu:
KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 4.
Ví dụ 5
CỦNG CỐ
Trang 19KIỂM TRA BÀI CŨ
NỘI DUNG BÀI MỚI
2.Một số thao
tác xử lí xâu.
a) Ghép xâu
b) So sánh xâu
c) Delete(st,vt,n);
d) Insert(s1,s2,vt);
e) Copy(st,vt,n);
f) Length(s);
g) Pos(s1,s2);
h) Upcase(ch);
3 Một số ví dụ
Ví dụ 1.
Ví dụ 2.
Ví dụ 3.
Ví dụ 4.
Ví dụ 5
CỦNG CỐ
DẶN DÒ
- Ôn lại bài học hôm nay.
- Làm bài tập 10 trang 80 SGK
- Chuẩn bị trước Bài tập và thực hành số 5.
Trang 20Chân thành cám ơn các thầy, cô giáo đã
có mặt tham dự tiết học ngày hôm nay