Помощь - Поиск - Пользователи - Календарь
Полная версия: ПОгите с алгоритмом
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
asu2006
Для матрицы Т(m, n), 1<(m, n)<10, вычислить сумму всех положительных элементов. Переставить строки по убыванию значений максимальных элементов строк

М
1. Заголовок темы должен быть информативным.

Переименуй, пожалуйста.

neic
1. Пересчитать сумму:

{после ввода матрицы}
s:=0;
For i:=1 to n do
begin
For j:=1 to m do
If a[i,j]>0 then s:=s+a[i,j]
end;



2. Как я понял, нужно поменять строки от большого к меньшему или всю матрицу по убыванию сделать?
Сделаю первый вариант, т.к. он более правдоподобен.


L:=A[1];
A[1]:=MIN;
A[K]:=L;

for u:=1 to n do
begin
FOR I:=2 TO m DO
BEGIN
FOR J:=I TO m DO
BEGIN
IF A[U,I]>A[U,J] THEN
BEGIN
L:=A[U,I];
A[U,I]:=A[U,J];
A[U,J]:=L;
END;
END;
END;




Вроде всё выглядит так. Покрайней мере одномерный массив работает.
Буду вопросы пиши сюда или ЛС.
asu2006

Вот код

Код
const c=10;
var
T: array[1..c,1..c] of integer;
s,x,y:integer;
m,n:byte;
begin
writeln('Matrix 1<(n,m)<10)');
write('chislo strok =');
readln(n);
write('chislo ctolbcov =');
readln(m);
s:=0;
if (n>1) and (m<10) then begin
writeln;
writeln('Vvod elementov matrix');

For x:=1 to n do
For y:=1 to m do
begin
  write('T[',x,',',y,']=');
  readln(T[x,y]);
if T[x,y]>0 then
s:=s+t[x,y];
end;
end;
writeln;
writeln('Summa polojitelnih elementov =',s);
writeln;
writeln('Matrix');
for x:=1 to n do begin
for y:=1 to m do
  write(T[x,y],' ');
  writeln;
  end;

Помогите доделать.
Цитата
Переставить строки по убыванию значений максимальных элементов строк
Michael_Rybak
 ! 
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.