Bài 8 trang 79 SGK Tin học 11

Chương trình sau đây thực hiện những gì?

Lời giải

Trả lời

program BT8;

const NMax = 50;

type Mass = array [1...NMax, O..NMax-1] of real;

var A: Mass;

i,j N: byte; C: real;

begin

Write ('Nhap N= ?');

readln(N); for i:= 1 to N do

for 0 to N-1 do

begin

write('A[i,j; readln(A[i,j ] )

end,

for i:= 1 to N do

for j:= 1 to N-1 do

begin

C:= A[i,j];

A[i , j ] := A[N-i+1, j ]

A [N-i+1,j] := C;

end;

for i:=1 to N do begin

for j : =1 to N— 1 do write (A [ i, j ] : 5 : 2 , ' ');

writeln

end;

End.

Trả lời:

Khi chạy chương trình, với N= 4 thì kết quả của chương trình như hình 67 dưới:

Chương trình thực hiện việc hoán đổi vị trí dòng thứ i với dòng thứ N-i+J, nghĩa là hoán đổi vị trí dòng đầu tiên với dòng cuối cùng của màng hai chiều, dòng thứ hai từ trên xuống với dòng thứ hai từ dưới lên,.. Việc hoán đổi vị trí dòng thứ i với dòng đối xứng với nó được thực hiện khi i nhận giá trị từ 1 đến N, làm cho mỗi dòng được hoán đổi vị trí hai lần. Vì vậy, cuối cùng mảng A không thay đổi so với ban đầu.