Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Дана матрица 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;
чото типа того

_________________
зри в корень(с) Козьма Прутков


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 2 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan