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 4

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

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 4, tài liệu kèm theo lời giải chi tiết sẽ giúp các bạn học sinh học tốt hơn môn Tin học 11. 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 4 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 được tổng hợp gồm có nội dung của bài tập và thực hành số 4. Qua bài viết bạn đọc có thể thấy được mục đích và nội dung yêu cầu của bài tập và thực hành. Nội dung của bài thực hành bao gồm lời giải của 2 bài tập trong sách giáo khoa môn Tin học. 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 4

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

+ Biết nhận xét, phân tích, đề xuất thuật toán giải bài toán sao cho chương trình chạy nhanh hơn.

+ Làm quen với dữ liệu có cấu trúc và bài toán sắp xếp.

2. Nội dung

Bài 1 (trang 65 sgk Tin học 11):

a) Hãy tìm hiểu và chạy thử chương trình thuật toán sắp xếp dãy số nguyên bằng thuật toán tráo đổi với các giá trị khác nhau của n dưới đây.

Qua đó nhận xét về thời gian chạy chương trình.

Trả lời:

program sapxep;
uses crt;
const Nmax=250;
var
	N,i,j,t:integer;
	A:array[1..Nmax] of integer;
begin
	clrscr;
	randomize;
	write('nhap so luong phan tu cua day N=');
	readln(N);
	for i:=1 to N do
	begin
	A[i]:=random(300)-random(300);
	end;
	for i:=1 to N do
	write(A[i]:5);
	writeln;
	for j:=N downto 2 do
		for i:=1 to j-1 do
			if A[i]>A[i+1] then
			begin
			t:=A[i];
			A[i]:=A[i+1];
			A[i+1]:=t;
			end;
	writeln('day da duoc sap xep la ');
	for i:=1 to N do write(A[i]:4);
	readln;
end.

Kết quả

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

b) Khai báo thêm biến nguyên Dem và bổ sung vào chương trình những câu lệnh cần thiết để biến Dem tính số lần thực hiện tráo đổi trong thuật toán. Đưa kết quả ra màn hình.

Trả lời:

program sapxep;
uses crt;
const Nmax=250;
var
	N,i,j,t,dem:integer;
	A:array[1..Nmax] of integer;
begin
	clrscr;
	randomize;
	write('nhap so luong phan tu cua day N=');
	readln(N);
	for i:=1 to N do
	begin
	A[i]:=random(300)-random(300);
	end;
	dem:=0;
	for i:=1 to N do
	write(A[i]:5);
	writeln;
	for j:=N downto 2 do
		for i:=1 to j-1 do
			if A[i] > A[i+1] then
			begin
			t:=A[i];
			A[i]:=A[i+1];
			A[i+1]:=t;
			dem:=dem+1;
			end;
	writeln('day da duoc sap xep la ');
	for i:=1 to N do write(A[i]:4);
	writeln;
	writeln('so lan thuc hien trao doi la ',dem);
	readln;
end.

Kết quả

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

Bài 2 (trang 66 sgk Tin 11): Hãy đọc và tìm hiểu những phân tích để viết chương tình giải bài toán :

Cho mảng A gồm n phần tử. Hãy biết chương trình tạo mảng B[1..n] trong đó B[i] là tổng của I phần tử đầu tiên trong A.

Trả lời:

Có 2 cách:

Cách 1 là duyệt lần lượt các phần từ của mảng B. Đến vị trí I ta sẽ duyệt từ 1 đến I của mảng A rồi cộng dồn vào B[i]

Cách 2 là ta nhận thấy B[j]=B[j-1]+A[j] nếu j khác 1và B[j]=A[1] nếu j=1.

Cách 1:

program sapxep;
uses crt;
const Nmax=250;
var
	N,i,j,t,dem:integer;
	A:array[1..Nmax] of integer;
	B:array[1..Nmax] of integer;
begin
	clrscr;
	randomize;
	dem:=0;
	write('nhap so luong phan tu cua day N=');
	readln(N);
	for i:=1 to N do
	begin
	A[i]:=random(300)-random(300);
	B[i]:=0;
	end;
	for i:=1 to N do
		for j:=1 to i do
		begin
			B[i]:=B[i]+A[j];
			dem:=dem+1;
		end;
	writeln('dem=',dem);
	readln;
end.

Kết quả

Số lần thực thi phép cộng là:

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

Cách 2:

program sapxep;
uses crt;
const Nmax=250;
var
	N,i,j,t,dem:integer;
	A:array[1..Nmax] of integer;
	B:array[1..Nmax] of integer;
begin
	clrscr;
	randomize;
	dem:=0;
	write('nhap so luong phan tu cua day N=');
	readln(N);
	for i:=1 to N do
	begin
	A[i]:=random(300)-random(300);
	B[i]:=0;
	end;
	B[1]:=A[1];
	for i:=2 to N do
		begin
		B[i]:=B[i-1]+A[i];
		dem:=dem+1;
		end;
	writeln('dem=',dem);
	readln;
end.

Kết quả

Số lần thực thi phép cộng là

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

Nhận thấy sử dụng cách 2 có thể làm giảm đáng kể số lượng phép toán cần thực hiện. Tuy tốc độ máy tính rất nhanh nhưng cũng có giới hạn. Vì thế ta nên tìm cách viết sao cho chương trình thực hiện càng ít phép toán càng tốt.

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

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 4, 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.

Đánh giá bài viết
1 278
Sắp xếp theo

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

    Xem thêm