Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.68 MB, 20 trang )
<span class='text_page_counter'>(1)</span>
<span class='text_page_counter'>(2)</span> 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? KIỂM TRA BÀI 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.. 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 [ ].. Var a, b: string;.
<span class='text_page_counter'>(3)</span> 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’;. KIỂM TRA BÀI CŨ. Xâu A lớn hơn xâu B nếu:. • 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.. ST1. 1. 2. C. B. Mã 66. Mã 65 3. A. ST1[1] ST1[2] ST1[3]. ST2. = < <. 1. 2. 3. C. B. B. ST2[1] ST2[2] ST2[3].
<span class='text_page_counter'>(4)</span> 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. 1. n A N 1. B N. 2. 3. 4. 5. 6. g. u. y. e. n. 2. g. 3. u. 4. y. 5. e. 6. 7. 7. n. Cần có thao tác gì để chỉnh sửa xâu A thành xâu B?. 8. 8. A. 9. 10. A. n. 9. n.
<span class='text_page_counter'>(5)</span> KIỂM TRA BÀI CŨ. c. Thủ tục DELETE(St, vt, n). NỘI NỘIDUNG DUNGBÀI BÀIMỚI MỚI. • Xoá n kí tự của xâu St bắt đầu từ vị trí vt 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);. Ví dụ 1: St:= ‘Song Hong’; Delete(St,1,5); 1. S. 2. o. 3. n. 4. 5. g. 6. 7. H. o. 8. n. 9. g. ST[1]. Kết quả: St = ‘Hong’. Ví dụ 2:. St =’tin hoc’. Delete(St,4,3);. St =’tin hoc’.
<span class='text_page_counter'>(6)</span> KIỂM TRA BÀI CŨ NỘI DUNG BÀI MỚI. d. Thủ tục INSERT(St1, St2, vt) Chèn xâu St1 vào xâu St2 bắt đầu từ vị trí vt Ví dụ 1:. 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);. 1. St1:= ‘vi-’; St2:= ‘May-tinh’; Insert(St1,St2,5); 2. 3. 1. v i M a 1. Ví dụ:. 2. 2. 3. 4. 5. 6. M a y - t. y. -. 3. 4. 5. 6. 7. i. 7. n h. t. i. n. h. 8. 9. 10. 11. Kết quả: St2 = ‘May-vi-tinh’. S = ’Abc’ Abc. def St = ’def’. Insert(S,St,1);. St =‘. ’. 8.
<span class='text_page_counter'>(7)</span> 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);. 3. 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. X. a. u. -. k. y. -. t. 9. u. Copy Kết quả St2 = ‘ky-tu’ Ví dụ 2: S1 = copy(s,5,4);. hong S = ’ hoa hong’. S1 = ’. ’.
<span class='text_page_counter'>(8)</span> 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);. f. Hàm LENGTH(S) Cho giá trị là độ dài của xâu S Ví dụ1 : S:= ‘Tin hoc’; D:= Length(S); 1. 2. 3. T. i. n. 4. 5. 6. 7. h. o. c. Kết quả: quả D = 7 Ví dụ 2:. S = ’ab 2’ 1 23 4. D:=Length(S); Kết quả D=.
<span class='text_page_counter'>(9)</span> 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);. g. 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’; D:= Pos(St1,St2); 1. 2. 3. L. O. P. 4. 5. 6. 7. 8. 1. 1. A. 1. Kết quả: D = 5. Ví dụ 2: D:= pos(‘Cd’,S2); S2:= ‘abcde’ Cd CC dCd dCd. D=0.
<span class='text_page_counter'>(10)</span> KIỂM TRA BÀI CŨ. h. Hàm UPCASE(Ch). 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);. • Cho chữ cái in hoa ứng với chữ cái trong ch Ch1:= ‘a’; Ch2:= Upcase(Ch1); Kết quả: Ch2 = ‘A’. St. 1. 2. 3. 4. 5. 6. U. p. C. a. s. e. Upcase(st[1]) Upcase(st[2]) Upcase(st[3]) Upcase(st[4]) Upcase(st[6]) Upcase(st[5]) 1. 2. P. 3. 4. 5. 6. A. S. E.
<span class='text_page_counter'>(11)</span> 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ụ 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.
<span class='text_page_counter'>(12)</span> 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.. 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.
<span class='text_page_counter'>(13)</span> 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ụ 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. 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: Thể hiện bằng Pascal 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 Pascal End..
<span class='text_page_counter'>(14)</span> 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ụ 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. 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: Thể hiện bằng Pascal 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.. Pascal.
<span class='text_page_counter'>(15)</span> 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ụ 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ó. Xác định bài toán: Input: Nhập vào xâu từ bàn phím Output: tạo xâu loại bỏ các dấu cách từ xâu vừa nhập. Hướng giải quyết bài toán: Thể hiện bằng Pascal 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.. Pascal.
<span class='text_page_counter'>(16)</span> KIỂM TRA BÀI CŨ. 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.. 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. Xác định bài toán: Input: Nhập vào xâu từ bàn phím Output: Taọ xâu gồm các chữ số trong xâu vừa nhập. Hướng giải quyết bài toán: Thể hiện bằng Pascal 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 Pascal End..
<span class='text_page_counter'>(17)</span> 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Ố. 1. Em hãy chỉ ra kết quả khi thực hiện các thao tác sau:. Giá trị st. Thao tác. Kết quả. a) ‘Dat Nuoc’. Delete(st, 5, 4) ‘Dat ’. b) ‘Hoc ki 2’. Copy(st, 4, 5). c) ‘Hoc tot’. Length(st). d) ‘Nang dong’ Pos(‘Nang’, st). ‘ki 2’ 7 1.
<span class='text_page_counter'>(18)</span> 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Ố. Các hàm và thủ tục xử lý xâu: Delete(St, vt, n) Insert(S1, S2, vt) Copy(S, vt, n) Length(S) Pos(S1, S2) Upcase(ch).
<span class='text_page_counter'>(19)</span> 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Ố 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..
<span class='text_page_counter'>(20)</span> Châ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..
<span class='text_page_counter'>(21)</span>