Помощь - Поиск - Пользователи - Календарь
Полная версия: задача по матрице
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Chopper
:low: Дана матрица А размером MxN, состоящая из натуральных чисел, больших 1. Выполнить следующие действия:
1) строки матрицы А упорядочить по невозрастанию произведения элементов строк.
2) составить одномерный массив В, в котором элемент Вj, равен номеру столбца, содержа-щего только числа, кратные 5, в противном случае Вj = 0.
mithquessir
Цитата
строки матрицы А упорядочить по невозрастанию произведения элементов строк

Это как?
volvo
mithquessir
Скорее всего, так:
Цитата
2 3
3 9
2 8

Произведения элементов строк: 6, 27, 16... Значит, в результирующей матрице первой будет вторая строка исходной матрицы, потом - третья, а потом - первая.
Chopper
Я прав?
mithquessir
Вот вторая:
Код

const
 n = 3;
 m = 5;
 flg:boolean = false;
 a:array[1..n,1..m] of integer = ((0,5,5,5,1),(10,5,1,5,5),(10,5,5,5,8));
var
 b:array[1..n] of integer;
 i,j,num:integer;
begin
 for i := 1 to m do
   begin
     for j := 1 to n do
       if (a[j,i] mod 5 = 0) and (a[j,i] > 1) then
         flg := true
       else
         begin
           flg := false;
           break;
         end;
     if flg then
     begin
       inc(num);
       b[num] := i;
     end;
   end;
 for i := 1 to num do
 Write(b[i]:2);
end.

volvo
Проверь, что-то она глючно работает. <_<
volvo
mithquessir
Как написал, так и работает... Внимательно прочитай условие...
Код

const
 n = 3; m = 5;
 a:array[1..n, 1..m] of integer =
   ((0,5,5,5,1), (10,5,1,5,5), (10,5,5,5,8));
var
 flag: boolean;
 b: array[1..m] of integer;
 i,j: integer;
begin
 for i := 1 to m do
   begin
     flag := true;
     for j := 1 to n do
       flag := flag and ((a[j,i] mod 5 = 0) and (a[j,i] > 1));
     b[i] := Byte(flag) * i
   end;

 writeln('array B:');
 for i := 1 to m do
   Write(b[i]:2);
 writeln
end.
Chopper
Спасибо ребят, тока че то она не хочет работать как положено, попробую уламать.
volvo
Chopper
Моя программа работает... Проблема в том, что она реализует только вторую часть задания...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.