Giao diện mới của VnDoc Pro: Dễ sử dụng hơn - chỉ tập trung vào lớp bạn quan tâm. Vui lòng chọn lớp mà bạn quan tâm: Lưu và trải nghiệm

Giải bài tập Tin học 11: Bài tập và thực hành 5

Tin học 11 - Bài tập và thực hành 5

VnDoc xin giới thiệu tới các bạn học sinh tài liệu Giải bài tập Tin học 11: Bài tập và thực hành 5, tài liệu chắc chắn sẽ là nguồn thông tin hữu ích để phục vụ công việc học tập của các bạn học sinh được tốt hơn. Mời các bạn học sinh và thầy cô cùng tham khảo chi tiết tại đây nhé.

Giải bài tập Tin học 11: Bài tập và thực hành 5 vừa được VnDoc.com sưu tập và xin gửi tới bạn đọc cùng tham khảo. Bài viết bao gồm các nội dung mục đích yêu cầu và nội dung của bài thực hành. Qua bài viết bạn đọc có thể thấy được lời giải của 3 bài tập trong sách giáo khoa môn Tin học lớp 11 về bài tập và thực hành 5, bạn đọc có luyện tập được cách cạy thử chương trình kiểu xâu... Mời các bạn cùng tham khảo chi tiết và tải về tại đây nhé.

Giải bài tập Tin học 11 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 (trang 73 sgk Tin 11): Nhập vào 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. Xâu đối xứng có tính chất: đọc nó từ phải sang trái cũng thu được kết quả giống như đọc từ trái sang phải (còn được gọi là xâu palindrome).

a) Hãy chạy thử chương trình sau:

program vd2;
uses crt;
var
	i,x:byte;
	a,p:string;
begin
	clrscr;
	write('nhap xau:');
	readln(a);
	x:=length(a);
	p:='';
	for i:=x downto 1 do
	p:=p+a[i];
	if a=p then
		write('xau la palindrome')
	else
		write('xau khong phai la palindrome');
	readkey;
end.

Giải bài tập Tin học 11: Bài tập và thực hành 5

b) Hãy viết lại chương trình tên, trong đó không dùng biến xâu p.

Do xâu đảo ngược cũng chính là xâu viết xuôi nên

Xau[1]=Xau[length(xau)]
Xau[2]=Xau[length(xau-1)]
…..

Vậy ta có thể làm theo cách sau:

Sử dụng biến I để đếm xuôi rồi so sánh với xau[length(xau)-i] nếu khác nhau thì kết luận luôn không phải là palindrome. Lặp đến khi nào i> length(xau)-I +1(Vì duyệt tiếp chỉ là sự lặp lại)

program vd2;
uses crt;
var
	a:string;
	i:integer;
	p:boolean;
begin
	clrscr;
	write('nhap xau:');
	readln(a);
	i:=1;
	p:=true;
	while (i<length(a)-i+1)  do
	begin
	if a[i]<>a[length(a)-i+1] then
	begin
	break;
	end;
	i:=i+1;
	end;
	if p
	then
	writeln('xau la palindrome')
	else
	writeln('xau khong phai la palindrome');
	readkey;
end.

Cách này sẽ tiết kiệm được chi phí hơn cách trước do chỉ cần duyệt khoảng 1/2 xâu.

Giải bài tập Tin học 11: Bài tập và thực hành 5

Bài 2 (trang 73 sgk Tin 11): Viết chương tì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).

Trả lời:

Phân tích:

Ta sẽ tạo một mảng gồm 26 kí tự để lưu trữ số lần xuất hiện của các chữ cái trong bảng chữ cái tiếng Anh. Phần từ đầu tiên sẽ lưu số lần xuất hiện của kí tự 'A' (do đề bài yêu cầu không phân biệt chữ thường với chữ hoa). Để lấy vị trí mảng của một kí tự nào đó ta dùng câu lệnh:

ord(upcase(a[i]))-ord('A')

ord sẽ lấy giá trị tương ứng của kí tự trong bảng mã ASCII sau đó trừ đi giá trị của 'A' trong bảng ASCII .

Ví dụ:

Mã ASCII của 'A' là 65 thì vị trí trong mảng của nó là 65-65 =0

Mã ASCII của 'A' là 66 thì vị trí trong mảng của nó là 66-65 =1

program vd2;
uses crt;
var
	a:string;
	gt:array[0..26] of integer;
	i:integer;
begin
	clrscr;
	write('nhap xau:');
	readln(a);
	for i:=0 to 25 do
	gt[i]:=0;
	for i:=1 to length(a) do
	begin
	gt[ord(upcase(a[i]))-ord('A')]:=gt[ord(upcase(a[i]))-ord('A')]+1;
	end;
	for i:=0 to 25 do
	if gt[i]>0 then
	writeln(chr(ord('A')+i),':',gt[i]);
	readkey;
end.

Kết quả:

Giải bài tập Tin học 11: Bài tập và thực hành 5

Bài 3 (trang 73 sgk Tin 11): 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'.

Trả lời:

Ta sẽ tìm vị trí mà từ 'anh' xuất hiện đầu tiên bằng hàm pos sau đó xóa từ 'anh' đi rồi chèn từ 'em' vào.

Đến khi nào xâu ban đầu không còn từ 'anh' nữa thì dừng.

program vd2;
uses crt;
var
	a:string;
	vt:integer;
begin
	clrscr;
	write('nhap xau:');
	readln(a);
	while pos('anh',a)>0 do
	begin
	vt:=pos('anh',a);
	delete(a,vt,3);
	insert('em',a,vt);
	end;
	write(a);
	readkey;
end.

Giải bài tập Tin học 11: Bài tập và thực hành 5

----------------------------

Trên đây VnDoc.com vừa giới thiệu tới các bạn bài viết Giải bài tập Tin học 11: Bài tập và thực hành 5, mong rằng qua bài viết này các bạn có thể học tập tốt hơn môn Tin học lớp 11. Mời các bạn cùng tham khảo thêm kiến thức các môn Toán 11, Ngữ văn 11, Tiếng Anh 11, đề thi học kì 1 lớp 11, đề thi học kì 2 lớp 11...

Mời bạn đọc cùng tham gia nhóm Tài liệu học tập lớp 11 để có thêm tài liệu học tập nhé

Để có kết quả cao hơn trong học tập, VnDoc xin giới thiệu tới các bạn học sinh tài liệu Sinh học lớp 11, Vật lý lớp 11, Hóa học lớp 11, Giải bài tập Toán 11 mà VnDoc tổng hợp và đăng tải.

Chia sẻ, đánh giá bài viết
1
Sắp xếp theo
    🖼️

    Gợi ý cho bạn

    Xem thêm
    🖼️

    Giải bài tập Tin học 11

    Xem thêm