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 ...
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ả :

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