1) В матрице B заменить заданным вектором строки, которые содержат хотя бы один ненулевой элемент. 2) В полученной матрице найти сумму элементов столбцов с нечётными номерами. примечание: матрица B -прямоугольная, размером mxn.
klem4
27.12.2004 0:39
1) В матрице B заменить заданным вектором строки, которые содержат хотя бы один ненулевой элемент.
Вроде так
Код
uses crt; const n=5; var b:array[1..n,1..n] of integer; c:array[1..n] of integer; i,j,k:integer;
Begin clrscr; randomize;
for i:=1 to n do begin for j:=1 to n do begin b[i,j]:=random(11)-random(6); write(b[i,j]:2); write(' '); end; writeln; end;
writeln;
for j:=1 to n do begin c[j]:=random(11)-random(6); write(c[j]:2); write(' '); end;
writeln;
for i:=1 to n do begin k:=i; for j:=1 to n do if b[i,j]<>0 then begin i:=k; for j:=1 to n do b[i,j]:=c[j]; break; end; end;
writeln; writeln;
for i:=1 to n do begin for j:=1 to n do begin write(b[i,j]:2); write(' '); end; writeln; end; readln; end.
klem4
27.12.2004 0:40
2) В полученной матрице найти сумму элементов столбцов с нечётными номерами. примечание: матрица B -прямоугольная, размером mxn.
Код
uses crt; const m=3; n=4; var x:array[1..m,1..n] of integer; i,j,s:integer;
Begin clrscr; randomize; s:=0; for i:=1 to m do begin for j:=1 to n do begin x[i,j]:=random(11)-random(6); write(x[i,j]); write(' '); end; writeln; end; for i:=1 to m do for j:=1 to n do if j mod 2 <> 0 then s:=s+x[i,j]; writeln('s=',s); readln; end.
volvo
27.12.2004 0:45
klem4 Маленький вопрос: а почему бы не выйти из цикла проверки строки, как только строка была заменена вектором, и не перейти к проверке следующей строки? (в первой программе)
klem4
27.12.2004 0:59
Поправил тут
Код
begin i:=k; for j:=1 to n do b[i,j]:=c[j]; break; end;
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.