width=

Bài 9 trang 80 sgk Tin học 11



Giải bài tập Tin học 11 trang 79,80

Bài 9 (trang 80 sgk Tin học lớp 11): Cho mảng hai chiều kích thước nxm với các phần tử là những số nguyên. Tìm trong mỗi dòng phần tử lớn nhất rồi đổi chỗ nó với phần tử có chỉ số dòng bằng chỉ số cột.

program Diag;
uses crt;
Var
	N,i,j,Max,Ind,Vsp:integer;
	A:array[1..15,1..15] of integer;
begin
	clrscr;
	write('nhap N nho hon 15:');
	readln(N);
	for i:=1 to N do
		for j:=1 to N do
		begin
		write('a[',i,',',j,']=');
		readln(a[i,j]);
		end;
	for i:=1 to N do
	begin
		Max:=A[i,1];
		Ind:=1;
		for j:=2 to N do
		if A[i,j]> Max then
		begin
		Max:=A[i,j];Ind:=j;
		end;
		vsp:=A[i,i];
		A[i,i]:=Max;
		A[i,Ind]:=vsp;
	end;
	for i:=1 to N do
	begin
		writeln;
		for j:=1 to N do 
		write(a[i,j]:3);
	end;
	writeln
	readkey;
end.

Trả lời:

for i:=1 to N do
	begin
		Max:=A[i,1];
		Ind:=1;
		for j:=2 to N do
		if A[i,j]> Max then
		begin
		Max:=A[i,j];Ind:=j;
		end;
		vsp:=A[i,i];
		A[i,i]:=Max;
		A[i,Ind]:=vsp;
	end;

Đoạn code này có nhiệm vụ duyệt từng hàng. Ban đầu gán phần tử đầu tiên của hàng là max . Sau đó nếu trong hàng đó có phần tử nào lớn hơn max thì lưu lại giá trị max và chỉ số của phần tử đó trong hàng.

Để sửa chương trình trên để tìm kiếm trong mỗi cột thì ta sửa lại như sau:

program Diag;
uses crt;
Var
	N,i,j,Max,Ind,Vsp:integer;
	A:array[1..15,1..15] of integer;
begin
	clrscr;
	write('nhap N nho hon 15:');
	readln(N);
	for i:=1 to N do
		for j:=1 to N do
		begin
		write('a[',i,',',j,']=');
		readln(a[i,j]);
		end;
	for i:=1 to N do
	begin
		Max:=A[i,1];
		Ind:=1;
		for j:=2 to N do
		if A[i,j]> Max then
		begin
		Max:=A[i,j];Ind:=j;
		end;
		vsp:=A[i,i];
		A[i,i]:=Max;
		A[i,Ind]:=vsp;
	end;
	for i:=1 to N do
	begin
		writeln;
		for j:=1 to N do 
		write(a[i,j]:3);
	end;
	writeln;
	readkey;
end.

Kết quả :

Giải bài tập Tin học 11 | Để học tốt Tin học 11

Các bài giải bài tập và trả lời câu hỏi Tin học 11 Chương 4 khác:


giai-bai-tap-tin-hoc-11-trang-79-80.jsp


Giải bài tập lớp 11 sách mới các môn học