Bài tập 9 trang 80 SGK Tin học 11

Lý thuyết Bài tập
Câu hỏi:

Bài tập 9 trang 80 SGK Tin học 11

Cho mảng hai chiều kích thước \(n\times m\) 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.

Chương trình sau đây giải bài toán trên:

program Diag;

var

   N, i, j, Max,Ind, Vsp: integer;

   A: array [1..15, 1..15] of integer;

begin

   write('Nhap N: '); 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

end.

Hãy sửa lại chương trình trên khi yêu cầu bài toán thay dòng bằng cột.

Sửa lại chương trình trên khi yêu cầu bài toán thay dòng bằng cột:

program bai9;

uses crt;

var A:array[1..15,1..15] of integer;

     N, i, j, max, ind, vsp:integer;

begin

clrscr;

write('Nhap N: ');readln(n);

for i:=1 to n do

for j:=1 to n do

begin

write('Nhap A[',i,',',j,']: ');

readln(A[i,j]);

end;

for i:=1 to n do

begin

max:=A[1,i];ind:=1;

for j:=2 to n do

if A[j,i] > max then

begin

max:=A[j,i];

ind:=j;

end;

vsp:=A[i,i];

A[i,i]:=max;

A[ind,i]:=vsp;

end;

for i:=1 to n do

begin

writeln;

for j:=1 to n do write(A[i,j]:3);

end;

writeln;

readln

end.

 

-- Mod Tin Học 11

Copyright © 2021 HOCTAP247