Дана матрица A размером m x n , состоящая из натуральных чисел, больших 1.
В этой задаче требуется найти :
1). Строки матрицы упорядочить по невозрастанию произведения элементов строк
2). Составить одномерный массив B, в котором Bj , равен номеру столбца, содержащего только числа, кратные 5, в противном случае Bj = 0.
---------------------------
Код:
Program h; const m=5; n=4; a: array[1..m,1..n] of integer= ( (3,2,4,6), (2,5,3,5), (5,7,3,5), (4,6,3,2), (9,5,2,6) );
Var i, j , P, count: integer; B: array[1..100] of integer;
Begin
{ Нахождение произведения элементов строк }
for i:=1 to m do P:=1; for j:=1 to n do begin P:= P * a[i,j]; end;
{ Перестановка строк матрицы по невозрастанию произведений элементво строк }
for i:=1 to m do for j:=m Down to i+1 do if a[Pred[j] < a[j] tnen begin temp:=a[j-1]; a[j-1]:=a[j]; a[j]:= temp; end;
{ Выполнение 2-го пункта моего задания } for j := 1 to n do begin
count := 0; for i := 1 to m do if (a[i, j] mod 5) = 0 then count := count + 1;
if count = m then B[j] := j else B[j]:=0;
end; writeln('Полученный массив B='); for i:=1 to m do for j:=1 to n do write( B[j]); readln; end.
-----------------
Подскажите как сделать 1 пункт задачи... у меня ничего не получается..
Member
Статус: Не в сети Регистрация: 25.11.2005 Откуда: краснодар
алгоритмы сортировки знаеш?
возьми любой и в качестве функции сравнения делай:
function change(rownumber1,rownumber2:integer):boolean;
//rownumber1-номер n-ной строки
//rownumber2-номер строки n+1
var
n1,n2:integer;
begin
//считаем произведение елементов
n1:=a[rownumber1][0]*a[rownumber1][1]*a[rownumber1][2]*a[rownumber1][3];
n2:=a[rownumber2][0]*a[rownumber2][1]*a[rownumber2][2]*a[rownumber2][3];
if n1<n2 then change:=true else change:=false;
end;
в основной программе//пузырьковая сортировка
var
n:integer;
check:boolean=false;//отметка о перестановке
repeat
check:=false;
for n:=0 to 3 do begin//цикл по строкам матрицы
if change(n,n+1{поэтому цикл заканчивается на 3 а не 4}) then begin
перестановка;
check:=true;
end;
end;
until check=false;
чото типа того
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения