cho ma trận a và b a) tính ma trận tổng b) tìm vị trí và giá trị của tất cả số đối xứng trong ma trận c) xuất ra ma trận chuyển vị của a
2 câu trả lời
Câu a), b), c) bạn keyy làm hết rồi :<<
Nhưng câu c) có cách viết gọn hơn bạn tham khảo chương trình sau:
const fi='changematrix.inp';
fo='changematrix.out';
var a,b: array [1..20,1..20] of integer;
i,j,m,n:integer;
begin
assign(input,fi);
reset(input);
read(m,n);
for i:=1 to m do
begin
for j:=1 to n do read(a[i,j]);
readln;
end;
close(input);
assign(output,fo);
rewrite(output);
for i := 1 to n do
begin
for j:=1 to m do write(a[j,i],' ');
writeln;
end;
close(output);
end.
Program Matran;
Uses crt;
Var A, B, C,D:array[0..100,0..100] of longint;
i,j,m,n,dem,s: longint;
Function sodoixung(a:longint):boolean;
Var b,c: longint;
Begin
a:=b; c:=0;
While a<>0 do
Begin
c:=c+a mod 10;
a:=a div 10;
End;
If c=b then exit(true);
exit(false);
End;
Begin
Clrscr;
Write('Nhap so dong: '); readln(m);
Write('Nhap so cot: '); readln(n);
For i:=1 to m do
For j:=1 to n do
Begin
Write('A[',i,',',j,']= ');
Readln(A[i,j]);
End;
For i:=1 to m do
Begin
For j:=1 to n do
Write(A[i,j]:5);
Writeln;
End;
dem:=0;
For i:=1 to m do
For j:=1 to n do
If A[i,j]=0 then dem:=dem+1;
Write('Co ',dem,' phan tu = 0');
Writeln;
s:=0;
For i:=1 to m do
For j:=1 to n do
s:=s+A[i,j];
Write('Tong ma tran la: ',s);
Writeln;
For i:=1 to m do
For j:=1 to n do
Begin
Write('B[',i,',',j,'] = '); Readln(B[i,j]);
End;
For i:=1 to m do
For j:=1 to n do
C[i,j] := A[i,j] + B[i,j];
For i:=1 to m do
Begin
For j:=1 to n do
Write(C[i,j]:5);
Writeln;
End;
For i:=1 to m do
For j:=1 to n do
If sodoixung(A[i,j]) then
Begin
Write('A[',i,',',j,' = ',A[i,j],' la so doi xung');
Writeln;
End;
For j:=1 to m do
For i:=1 to n do
D[i,j]:=A[j,i];
Write('Ma tran chuyen vi: ');
Writeln;
For i:=1 to m do
Begin
For j:=1 to n do
Write(D[i,j]:5);
Writeln;
End;
Readln;
End.