/tmp/idqqg.jpg Giải Tin học 11: Bài tập và thực hành 5 | Myphamthucuc.vn - Giáo dục trung học Đồng Nai

Giải Tin học 11: Bài tập và thực hành 5 | Myphamthucuc.vn

Bài tập và thực hành 5

1. Mục đích, yêu cầu

Làm quen với việc tìm kiếm, thay thế và biến đồi xâu.

2. Nội dung

Bài 1:

a) Khi chạy chương trình, nhập vào xâu: ‘ vui ma hoc hoc ma vui’ thì chương trình đưa ra thông báo: “xau khong la palindrome”, còn khi nhập vào xâu ‘abcddcba’ thì chương trình đưa ra thông báo: “Xâu là palindroine?”.

Kết quả của chương trình cho như hình 52 dưới đây:

b) Để viết lại chương trình dùng biến xâu thì ta cần khai thác khả năng tham chiếu đến từng kí tự trong xâu thông qua vị trí của xâu này. Như vậy, không cần thiết phải tạo một xâu mới để cuối cùng so sánh hai xâu, mà chỉ cần sánh cặp kí tự ở vị trí đối xứng nhau để kết luận có phải hay không.

Bởi vậy, ta có thể dùng một biến logic để ghi nhận sự phát hiện này. Trước vòng lặp thực hiện các so sán nói trên, cần không chuyển biến logic ở mỗi bước lặp, hễ hai kí tự được so sánh khác nhau thì biến logic đó sẽ phải thay đổi giá trị.

Chương trình sau đây dùng để kiểm tra xem xâu nhập vào có phải là xâu palindrome hay không.

vai i, X: byte;

a: string;

palii: boolean;

begin

write (Nhap vao xau: ’ );

reailn(a) ;

X:= length(a); {xac dinh do dai cua xau}

palin:=true;

{khoi tao palin, tam coi xau a la palindrome}

for i:= 1 to X div 2 do {so sanh cap ki tu doi xung}

if a [i. ] oa [x-i + 1 ]

then palin: =false;

if palin then writeln: Xau la palindrome’)

Xem thêm:  Xây dựng thực đơn cho bữa tiệc | Myphamthucuc.vn

else writeln(’Xau khong la palindrome’);

readln

End.

Khi chạy chương trình, nhập vào xâu: ‘He 2007 ‘ thì chương trình đưa ra thông báo: “xau khong la palindrome”, còn khi nhập vào xau ‘abcđdcba’ thì chương trình đưa ra thông báo: “xau la palindrome” kết quả của chương trình cho như hình 53 dưới đây:

Tuy nhiên, ta có thể không dùng vòng for-do mà dùng while-do hay repeat-until và có thể không cần dùng biến logic. Chương trinh sau đây đáp ứng được yêu cầu đặt ra:

var x: byte;

a: string;

palin: boolean;

begin

write(‘Nhap vao xau: ‘ ) ,

readln(a);

X: =length (a) , {xac dinh do dai cua xa} i:=1;

while (i<=(x div 2)) and (a [i] =a [x-i + 1] ) do i: = i +1,ế if i> (x div 2) then writeln(‘Xau la palindrome’)

else writeln(‘Xau khong la palindrome’);

readln

End.

Khi chạy chương trình, nhập vào xâu: ‘tin hoc hoc tin’ thì chương trình đưa ra thông báo: ‘xau khong la palindrome”, còn khi nhập vào xâu ‘ ABCDDCBD’ thì chương trình cũng đưa ra thông báo: “xau khong la palindrome”, còn khi nhập vào xâu: ‘ ABCD0770DCBA’ thì chương trình đưa ra thông báo: “xau la palindrome” .

Kết quả cùa chương trình cho như hình 55 dưới đây:

Bài 2. Để giải quyết bài toán này, chúng ta nhận thấy rằng:

Cần ghi nhận số lần xuất hiện của từng chữ cái. Có tất cả 26 chữ cái ‘ A ‘ ‘ z ‘. Có thể dùng một mảng với chỉ số là kí tự từ ‘A ‘ đến ‘z’ để ghi nhận số lần xuất hiện của các kí tự trong xâu s. Bởi vậy, chúng ta dùng một mảng một chiều để đếm số lần xuất hiện của một kí tự trong xâu s. Cụ thể, để ghi nhận sổ lần xuất hiện của kí tự, ta có thể dùng dem[A] để ghi nhận sổ lần xuất hiện kí tự A (hay kí tự a, vì không phân biệt chữ hoa hay chữ thường).

Xem thêm:  Chứng minh tính đúng đắn của câu tục ngữ "Gần mực thì đen gần đèn thì sáng" ngắn nhất | Myphamthucuc.vn

Để giải quyết vấn đề không phân biệt chữ hoa hay chữ thường ta cần dùng hàm Upcase(c).

Do một kí tự xuất hiện trong xâu s có thể không phải là một chữ cái nên khi duyệt lần lượt từng kí tự trong xâu s, cần kiểm tra xem kí tự đó có phải là chữ cái hay không để ghi nhận số lần xuất hiện của nó. Chúng ta đã gặp đoạn chương trình kiểm tra một kí tự có là chữ số hay không ở ví dụ 5 tiết học 12. Từ đó, có thể viết được đoạn chương trinh làm việc duyệt từng phần tử cùa xâu và đếm.

Dàn ý của chương trình:

phần khai báo

begin

{nhập xâu S}

N: = length (S);

{Khởi tạo cho màng Dem}

for i: =1 to N do {Neu s[i] là chữ cái thì đém tăng cho s[1]

for c:=’A’ to Z do {Thông báo sô lần xuất hiện của c}

End.

Chương trình nhập từ bàn phím một xâu kí tự 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 (không phân biệt chữ hoa hay chữ thường).

Program tinh_ki_tu,

var s,sl: string;

i, j, n: integer;

dem: array [ ‘A’ . . ‘z ’ ] of integer;

c: char ;

begin

write(’Nhap vao xau: ‘);

readln(S);

n:= length(s);

for C:= ‘A’ to ‘Z’ do {khoi tao cho mang dem} dem[c]:= 0 ; s 1 : = ’ ‘ ;

readln

End.

Khi nhập vào lần lượt các xâu: ‘đfd’2n5fv’ 3m.A’ , ‘ 55B7cfcManu07 ‘ , ‘ 8gs9’0A6ha5kQ ‘ thì chương trình cho các kết quả như hình 56 dưới đây:

Xem thêm:  Bài 11. Tây Âu thời hậu kì trung đại (ngắn nhất) | Myphamthucuc.vn

Bài 3. Đối với bài toán này:

Để thay thế tất cả cụm từ “anh” trong một xâu st thành cụm kí tự ’em’, có thể làm một cách tự nhiên: Tìm vị trí xâu con ‘anh’  trong xâu st đã cho, xóa xâu con này đi rồi chèn xâu “em” vào vị trí đó. Lặp đi lặp lại điều này cho đến khi không tìm thấy xâu “anh’ cần thay thế trong xâu st nữa. Đẻ giải quyết vấn đề này, chúng ta cần vận dụng các hàm Pos, thủ tục chuẩn Delete, Insert.

Dàn ý chương trinh:

{phần khai báo}

Begin

{Nhập xâu S}

{Chừng nào còn tìm thấy xâu con ‘anh ‘ trong xâu st còn làm ba công việc sau: Tìm vị trí bắt đầu cùa xâu ‘anh’ ;

Xóa xâu ‘ anh’ vừa tìm thấy;

Chèn xâu ‘ em’ vào xâu s tại vị trí trước đây xuất hiện xâu ‘anh’ ;

{In xau S kết quả}

end.

Chương trình 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 từ ‘em’

program thay_the_cum_tu;

var vt: byte;

St: string;

Begin

write(’Nhap vao mot xau: ‘);

readln(st);

while pos (‘anh’, st)<>0

begin

Vt : = pos ( ‘ anh ‘ , St. : ; delete(St,vt,3);

insert(’em’,St,vt) ; end;

write (‘Xau sau khi da duoc thay the: ‘ ,st ,’)

readln

End.

Khi nhập vào lần lượt các xâu: ‘anh’ và ’em’ ; ‘anh em trong mot nha ‘ thì chương trình cho các kết quả theo thử tự như sau: ’em va em’ ,’ em em trong mot nha ‘ . Kết quả chương trình cho như hình 57 dưới đây:

Tham khảo toàn bộ: Giải Tin học 11

Xem thêm bài viết thuộc chuyên mục: Học tập

Bài viết hay nhất

Câu 10. Tại sao phải dạy học tích hợp? Chủ trương dạy học tích hợp có gì mới? Những thuận lợi, khó khăn và cách khắc phục khi thực hiện dạy học tích hợp? | Myphamthucuc.vn
Câu 10. Tại sao phải dạy học tích hợp? Chủ trương dạy học tích hợp có gì mới? Những thuận lợi, khó khăn và cách khắc phục khi thực hiện dạy học tích hợp? | Myphamthucuc.vn
Mối quan hệ biện chứng giữa cái chung và cái riêng? Vận dụng ý nghĩa phương pháp luận trong giải quyết mối quan hệ trên để phân tích mối quan hệ giữa chủ nghĩa Mác-Lênin với thực tiễn cách mạng Việt Nam? | Myphamthucuc.vn
Câu 11. Tại sao phải thực hiện dạy học phân hóa? Chủ trương dạy học phân hóa trong CT mới có gì khác CT hiện hành? Những thuận lợi và khó khăn trong việc thực hiện dạy học phân hóa hiện và cách khắc phục? | Myphamthucuc.vn
Câu 11. Tại sao phải thực hiện dạy học phân hóa? Chủ trương dạy học phân hóa trong CT mới có gì khác CT hiện hành? Những thuận lợi và khó khăn trong việc thực hiện dạy học phân hóa hiện và cách khắc phục? | Myphamthucuc.vn
Tư tưởng Đất Nước của Nhân dân trong Đất nước của Nguyễn Khoa Điềm
Tư tưởng Đất Nước của Nhân dân trong Đất nước của Nguyễn Khoa Điềm
Các Kiểm Tra Hạn Sử Dụng Của Kem Chống Nắng Skin Aqua Nhật Bản
Các Kiểm Tra Hạn Sử Dụng Của Kem Chống Nắng Skin Aqua Nhật Bản
Bài thơ “Ngắm trăng” được sáng tác trong hoàn cảnh nào?
Bài thơ “Ngắm trăng” được sáng tác trong hoàn cảnh nào?
Câu hỏi ôn tập bài Sau phút chia li chọn lọc chi tiết
Phân tích tâm trạng nhân vật Liên khi chờ tàu năm 2023
Giới thiệu về Ngô Gia văn phái năm 2023
Kem Dưỡng Estee Lauder Thật Giả Qua Các Dung Tích, So Sánh Và Nhận Biết Serum Advance Night Repair
Kem Dưỡng Estee Lauder Thật Giả Qua Các Dung Tích, So Sánh Và Nhận Biết Serum Advance Night Repair
Nhân vật Mị sau khi về làm dâu nhà thống lí Pá Tra trong Vợ chồng A Phủ
Nhân vật Mị sau khi về làm dâu nhà thống lí Pá Tra trong Vợ chồng A Phủ
Phân tích bức tranh tứ bình trong bài Nhớ rừng của Thế Lữ năm 2023
Viết thư cho Cô giáo cũ nhân ngày 20/11 năm 2023
Soạn bài Vừa nhắm mắt vừa mở cửa sổ
Chủ đề của truyện Tấm Cám là gì
Chủ đề của truyện Tấm Cám là gì

jun88

Liên hệ telegram @hanievu