Skiler 666
Tuesday, 24 April 2007, 14:37
Помогить пожалуйста решить: 1)В задаваемой квадратной матрице обнулить элементы, расположенные выше главной и побочной диагонали; 2)В задаваемой вещественной матрице поменять местами к-ю и i-ю строки. Спасибо!
Shinji
Tuesday, 24 April 2007, 17:26
По первой:
CODE |
var M: array[1..N,1..N] of integer; H,W0,W1,i,j:integer;
....
H := N div 2; if (N mod 2=0) then H := H-1; W0 := 2;W1 := N-1; for i:=1 to H do begin for j:=W0 to W1 do M[i,j]:=0; W0:=W0+1; W1:=W1-1; end;
|
По второй:
CODE |
var M:array[1...N,1..N] of real; i,k,j:integer; Buf:real; ....
for j:=1 to N do begin Buf := M[i,a]; M[i,a]:=M[k,a]; M[k,a]:=Buf; end;
|
Надеюсь, сделать ввод и печать матриц сможете самостоятельно.
Skiler 666
Tuesday, 24 April 2007, 18:13
Конечно, спасибо за помощь!
Skiler 666
Monday, 07 May 2007, 13:36
В задаваемой квадратной матрице обнулить элементы, расположенные ниже главной и побочной диагонали;
[/CODE]Program _2;
type mtr=array[1..20,1..20] of integer;
Var A:mtr; i,j,n,m:Integer;
Begin
Write('Введите количество строк матрицы n=');
Readln(n);
Write('Введите количество столбцов матрицы m=');
readln(m);
Writeln('Введите',n,'строк по',m,'элементов через пробел');
Writeln('В конце строки Enter');
for i:=1 to n do for j:=1 to m do read(A[i,j]);
for i := n div 2 to n do
for j := n - i + 2 to i - 1 do a[i, j] := 0;
For i:=1 to n do
Begin
For j:=1 to n do write(a[i,j]);
Writeln;
End;
Readln;
Readln;
End. [CODE]
апускаю программу,ввожу числа, а нужного результата нет,числа не обнуляются. Помогите,может,что нибудь исправить надо или дописать.
Shinji
Monday, 07 May 2007, 14:36
ИМХО, вот в этом цикле
CODE |
for j := n - i + 2 to i - 1 do a[i, j] := 0; |
надо махнуть местами границы.
То есть for j:= i-1 to n-i+1
Skiler 666
Monday, 07 May 2007, 15:16
Получилось!
Спасибо большое
Shinji за помощь!!!