Блин вообще воткнуть не могу как делать. Помогите плZZ с прогой,а то преподы съедят. Надо сделать гибкую подпрограмму для обработки матриц произвольного порядка с фиксированным базовым типом... Даны 2 квадратные матрицы разных порядков. Для каждой из матриц, если суммы элементов строк матрицы различны то транспонировать матрицу.
Запарился писать эту прогу.... Помогите пожалуйста с конкретным решением этой задачи..Спасибо
Reza, а что именно не получается? Пример обработки матрицы любой размерности в отдельной процедуре я привел, найти сумму элементов строк, скорее всего, труда не составит; транспонирование матрицы можно найти в ФАКе. Так в чем проблема? Что, нужно написать за Вас ВСЮ программу?
А разобраться сможешь, в том что я сделал? ;) Тогда смотри...
Прикрепленные файлы
__REZA.PAS ( 1.62 килобайт )
Кол-во скачиваний: 298
Функция Ix преобразует "двумерные индексы" в "одномерные", т.к. для универсальности я пользуюсь именно одномерными массивами при работе с матрицами...
не поможете с проблемкой? задание было таковым: составить матрицу размерностью 7х8, вывести ее. Сформировать одномерный массив из сумм положительных элементов каждой строки матрицы. Вывести массив на экран.
Не могу найти где баг.
Program matrica;
Uses Crt;
Var C : Аrray[1..7,1..8] of Integer;
M : Аrray[1..7] of Integer;
S, i, j : Integer;
Begin
Clrscr;
Randomize;
For i:=1 to 7
Do For j:=1 to 8
Do C[i,j]:=Random(4)-2;
Writeln(‘Матрица С’);
For i:=1 to 7
Do Begin
For j:=1 to 8
Do Write(C[i,j]:4,’ ‘);
Writeln;
End;
For i:=1 to 7
Do Begin
S:=0;
For j:=1 to 8
Do If C[i,j]>0
Then S:=S+C[i,j];
M[i]:=S;
End;
Writeln(‘Массив М’);
For i:=1 to 7
Do Writeln(M[i]);
Readkey;
End.
М | Пользуемся тегами code klem4 |
Еще покороче можно :
uses crt;
var
c : array[1..7,1..8] of integer;
m : array[1..7] of integer;
s,i,j : integer;
begin
clrscr;
randomize;
for i := 1 to 7 do begin
writeln;
s := 0;
for j := 1 to 8 do begin
c[i,j] := random(4)-2;
if c[i,j] > 0 then s := s + c[i,j];
write(c[i,j]:3,' ');
end;
m[i] := s;
end;
writeln;
for i := 1 to 7 do writeln('i=',i,' m[',i,']=',m[i]);
readln
end.
Guest, в строке
For j:=1 to 8
Do If C[i,j]>0
Then S:=S+C[i,j];
М | Ну если считать это ошибкой, то да, она там тоже есть ... klem4 |
спасибо большое