Bài giảng Tin học Lớp 11 - Tiết 34: Bài tập và thực hành 5

ppt 19 trang phanha23b 29/03/2022 3500
Bạn đang xem tài liệu "Bài giảng Tin học Lớp 11 - Tiết 34: Bài tập và thực hành 5", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_tin_hoc_lop_11_tiet_34_bai_tap_va_thuc_hanh_5.ppt

Nội dung text: Bài giảng Tin học Lớp 11 - Tiết 34: Bài tập và thực hành 5

  1. Tiết 34. BÀI TẬP VÀ THỰC HÀNH 5 Bài 1 : ❖Nhập từ bàn phím một xâu. Kiểm tra xâu đó có phải là xâu đối xứng hay không ? ✓ Input: Nhập vào xâu. ✓ Output: Xuất ra kết quả có phải là xâu đối xứng
  2. Tiết 34. BÀI TẬP VÀ THỰC HÀNH 5 Bài 1 : Ví dụ: S:= ‘I was saw I’ 1 2 3 4 5 6 7 8 9 10 11 I w a s s a w I 11 10 9 8 7 6 5 4 3 2 1 I w a s s a w I ➢Xâu đối xứng có tính chất ? Đọc nó từ trái sang phải cũng thu được kết quả giống như đọc từ phải sang trái (còn được gọi là xâu Palindrome).
  3. Tiết 34. BÀI TẬP VÀ THỰC HÀNH 5 Bài 1 : THUẬT TOÁN Bước 1: Nhập Xâu a Bước 2: Tính chiều dài xâu a Bước 3: Tạo xâu P (xâu rỗng) Bước 4: Với I = length(a) → 1 thì P:=P+a[i]. Bước 5: Nếu a=P thì a là xâu đối xứng, ngược lại thì không phải là xâu đối xứng
  4. Tiết 34. BÀI TẬP VÀ THỰC HÀNH 5 var i, x: byte; a, p: string; BEGIN write(‘Nhap vao xau:’); readln(a); x:= length(a); p:= ‘’; {xac dinh do dai cua xau} for i:=x downto 1 do {khoi tao xau rong} p:= p+a[i]; if a=p then {tạo xau dao nguoc} write(‘Xau la Palindrome’) else write(‘Xau khong la Palindrome’); readln; END.
  5. Tiết 34. BÀI TẬP VÀ THỰC HÀNH 5 Bài 1 : b) Hãy viết lại chương trình trên,trong đó không dùng biến xâu p 1 2 3 4 5 6 7 8 9 10 11 I w a s s a w I - So sánh các kí tự ở vị trí 1→11, 2→10, nếu có kí tự khác nhau thì không phải là xâu đối xứng. Bởi vậy dùng biến Logic để ghi nhận sự phát hiện này. - Chúng ta sẽ có bao nhiêu lần xét? Chúng ta sẽ có n div 2 lần xét
  6. Program bai1_b; Uses crt; Var s: string; x,i: byte; KT: Boolean; Begin Clrscr; Write(' Nhap xau s='); readln(s); x:=length(s); KT:=true; For i:=1 to (x div 2) do begin If s[i]<> s[x-i+1] then KT:=false; end; If KT then write('doi xung') else write('khong doi xung'); readln; End.
  7. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5
  8. Tiết 35.BÀI TẬP VÀ THỰC HÀNH 5 Bài 2: Viết chương trình nhập từ bàn phím một xâu kí tự S và thông báo ra màn hình số lần xuất hiện của mỗi chữ cái tiếng Anh trong S ( không phân biệt chữ hoa hay chữ thường ) - Input: Nhập vào xâu - Output: Xuất ra số lần xuất hiện của các chữ cái tiếng Anh trong xâu vừa nhập.
  9. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Chúng ta sẽ có bao nhiêu chữ cái trong tiếng Anh? Từ chữ cái A → Z (26 chữ cái) ; Thuật toán ✓Bước 1: Nhập vào xâu S. ✓Bước 2: Tạo mảng A lưu trữ số lần xuất hiện của chữ cái tiếng Anh. ✓Bước 3: Khởi tạo cho từng phần tử mảng. ✓Bước 4: Nếu trong xâu S chữ cái A→ Z thì tăng giá trị của phần tử trong mảng. ✓Bước 5: Xuất ra mảng vừa tạo.
  10. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Bài 2: Cho xâu S: 1 2 3 4 5 6 7 H O T H I K Y Tạo mảng A: Ghi nhận số lần xuất hiện của các kí tự trong xâu S A H I J K O T Z A 0 2 1 0 1 1 1 0 Var A: array[ ] of byte; A[‘H’]=2 có nghĩa là có 2 kí tự ‘H’ trong xâu S. 2
  11. Program bai02; Uses crt; Var a: array['A' 'Z'] of byte; s: ; for c:='A' to 'Z' do if a[c]<>0 then writeln( 'So i: ; lan xuat hien', c,': ',a[c]); c: ; readln; Begin End. clrscr; write('nhap xau :');readln(s); for c:='A' to 'Z' do a[c]:=0; for i:=1 to length(s) do begin . end;
  12. Program bai02; Uses crt; Var a: array['A' 'Z'] of byte; s: string; i: byte; c: char; Begin clrscr; write('nhap xau :'); readln(s); for c:='A' to 'Z' do a[c]:=0; for i:=1 to length(s) do begin s[i]:=upcase(s[i]); if (s[i]>='A') and (s[i]<='Z') then a[s[i]]:=a[s[i]]+1; end;
  13. for c:='A' to 'Z' do if a[c]<>0 then writeln( 'So lan xuat hien', c,': ',a[c]); readln; End.
  14. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Các thao tác xử lí xâu 1.Thủ tục delete(St, vt, n); 2.Thủ tục insert(St1, St2, vt); 3.Hàm length(St); 4.Hàm Pos(St1, St2);
  15. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Bài 3: Nhập vào từ bàn phím một xâu. Thay thế tất cả các cụm kí tự ‘anh’ bằng cụm kí tự ‘em’. ➢Input: Nhập vào một xâu ➢Output: Xuất ra xâu kết quả đã thay thế cụm từ ‘anh’ bằng cụm từ ‘em’
  16. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Bài 3: Ví dụ: S:= ‘anh yeu truong anh’ → ‘em yeu truong em’ 1 16 17 18 a n h y e u t r u o n g a n h Bước 1: Tìm vị trí bắt đầu của xâu ‘anh’ Bước 2: Xóa xâu ‘anh’ vừa tìm thấy Bước 3: Chèn xâu ‘em’ vào xâu S tại vị trí trước đây xuất hiện xâu ‘anh’(lặp lại các bước trên cho đến khi không còn xâu ‘anh’) Bước 4: In ra xâu S 1 15 16 e m y e u t r u o n g e m
  17. Uses crt; Var s: string; i: byte; Begin Clrscr; Write('Nhap xau S:'); Readln(s); i:=Pos('anh',s); While i<> 0 do Begin Delete(s,i,3); Insert('em',s,i); I:=Pos('anh',s); End; writeln(S); readln; End.
  18. Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5 Những kiến thức cần nắm : ✓ Cách tạo một xâu mới từ xâu ban đầu. ✓ Đếm số lần xuất hiện của một chữ cái trong toàn bộ văn bản. ✓ Tìm kiếm và thay thế một từ bằng một từ khác trong toàn bộ văn bản. Những kiến thức cần chuẩn bị: ✓ Kiến thức về kiểu dữ liệu có cấu trúc. ✓ Câu hỏi và bài tập trang 79 (SGK).