Bài giảng Môn Tin học lớp 7 - Bài tập về kiểu xâu
Thuật toán:
+ Nhập xâu s
+ Dùng biến đếm để đếm số cặp ở vị trí đối xứng mà khác nhau.
+ Khởi tạo i:=1, k:=length(s), dem:=0
+ Dùng một vòng lặp, chừng nào i < k thì còn
So sánh s[i] và s[k]. Nếu khác nhau thì đảo xâu.
+ Nếu dem không đổi thì đưa ra là xâu đối xứng, ngược lại là xâu đã đảo ngược.
Xâu là gì? BÀI TẬP VỀ KIỂU XÂU 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. Nêu cách khai báo biến kiểu xâu? * Khai báo Var : string[ độ dài xâu] Ví dụ: hoten:string[20] BÀI 7. PHẦN MỀM MÁY TÍNH. Các em hãy cho biết có các thao tác xử lí xâu nào? BÀI TẬP VỀ KIỂU XÂU + Phép ghép xâu, các phép so sánh. + Một số thủ tục, hàm chuẩn dùng để sử lí xâu: coppy, delete, pos... Một số thủ tục chuẩn dùng để sử lí xâu. - Delete(S,vt,n) Xoá n kí tự của xâu S bắt đầu từ vị trí vt. - Insert(S1,S2,vt) Chèn xâu S1 vào xâu S2 bắt đầu từ vị trí vt của S2. ... BÀI TẬP VỀ KIỂU XÂU Một số hàm chuẩn: Copy(S, vt, n) Tạo xâu gồm n kí tự từ liên tiếp bắt đầu từ vị trí vt của xâu S.. Pos(S1, S2) Tìm vị trí xuất hiện đầu tiên của S1 trong S2. Length(st) Cho độ dài của xâu St. Upcase(ch) Cho chữ cái viết hoa tương ứng với chữ thường trong ch. Nhắc lại: Nhập n kí tự sao cho không có 2 kí tự nào trùng nhau (nếu trùng thì yêu cầu nhập lại). In lại xâu đó. BÀI TẬP 1 Yêu cầu Hãy xác định input và output của bài toán. Input : Nhập xâu với n kí Output: Đưa ra xâu có với các phần tử trong xâu không được trùng nhau. Thuật toán BÀI TẬP 1 Ý tưởng để giải bài này? 1. Khởi đầu cho xâu kí tự (giả sử là S) là xâu rỗng 2. Dùng vòng lặp, lặp duyệt đến kí tự cuối cùng + Đọc kí tự cho xâu, giả sử là ch( char). + Dùng một vòng lặp để kiểm tra, kí tự ch đã có rồi thì yêu cầu nhập lại. 3. S:=S+ ch; 4. Đọc kí tự tiếp theo. 5. In xâu Em nào có thể cài đặt được đoạn code của chương trình? BÀI TẬP 1 Đây là chương trình hoàn chỉnh. Program bt1; Uses crt; Var i,n:integer; ch: char; s: string[100]; BEGIN write(‘nhap so ki tu n = ‘); readln(n); writeln(‘nhap xâu s = ‘); s:=’’; for i:= 1 to n do begin readln(ch); while pos(ch, s) 0 do begin write(‘ Kí tự;, ch,’ da co. Hay nhap lai ‘); readln(ch) end; s:=s+ch; end. writeln(‘Xâu đã nhập là:’, ); readln END. BÀI TẬP 2 Nhập một xâu kí tự. Kiểm tra tính đối xứng của xâu đó. Nếu xâu không đối xứng hãy đảo xâu. Input: Nhập Xâu kí tự bất kì Output: In ra xâu + Ban đầu nếu nó đối xứng. + Đã đổi ngược. Thuật toán: + Nhập xâu s + Dùng biến đếm để đếm số cặp ở vị trí đối xứng mà khác nhau. + Khởi tạo i:=1, k:=length(s), dem:=0 + Dùng một vòng lặp, chừng nào i s[k] then begin d:=d+1; ch:=s[i]; s[i]:=s[k]; s[k]:=ch; end; i:=i+1; k:=k-1; end; if d=0 then write(‘ Xau doi xung’) else begin write(‘ Xau ko doi xung’); writeln( ‘in xau da dao’); writeln(s); end; readln END. Đây là phần khai báo của bài tập 2 Program bt2; Uses crt; Var i,k, d:integer; Ch: char; s: string[100]; BÀI TẬP VỀ NHÀ: Chuẩn bị cho tiết luyện tập về kiểu xâu tiếp theo + Ôn lại kiến thức đã học + Đọc và suy nghĩ các bài tập trong sách bài tập Củng Cố Sự khác nhau cơ bản của xâu và mảng là gì? Củng Cố Điền vào chỗ chấm sau: S1 19 19 Củng Cố Điền vào chỗ chấm sau: Đáp án: delete( S, 8,8) Kết qua ‘AHI’
File đính kèm:
- bai tap mang rat hay.ppt