Bài giảng Tin học Lớp 11 - Tiết 34: Bài tập và thực hành 5
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:
- bai_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
- 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
- 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).
- 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
- 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.
- 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
- 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.
- Tiết 35. BÀI TẬP VÀ THỰC HÀNH 5
- 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.
- 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.
- 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
- 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;
- 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;
- for c:='A' to 'Z' do if a[c]<>0 then writeln( 'So lan xuat hien', c,': ',a[c]); readln; End.
- 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);
- 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’
- 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
- 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.
- 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).