Автор: Chopper 14.12.2004 22:57
:low: Дана матрица А размером MxN, состоящая из натуральных чисел, больших 1. Выполнить следующие действия:
1) строки матрицы А упорядочить по невозрастанию произведения элементов строк.
2) составить одномерный массив В, в котором элемент Вj, равен номеру столбца, содержа-щего только числа, кратные 5, в противном случае Вj = 0.
Автор: mithquessir 15.12.2004 1:47
Цитата
строки матрицы А упорядочить по невозрастанию произведения элементов строк
Это как?
Автор: volvo 15.12.2004 1:56
mithquessir
Скорее всего, так:
Цитата
2 3
3 9
2 8
Произведения элементов строк: 6, 27, 16... Значит, в результирующей матрице первой будет вторая строка исходной матрицы, потом - третья, а потом - первая.
Chopper Я прав?
Автор: mithquessir 15.12.2004 2:16
Вот вторая:
Код
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 15.12.2004 2:43
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 15.12.2004 2:53
Спасибо ребят, тока че то она не хочет работать как положено, попробую уламать.
Автор: volvo 15.12.2004 3:09
Chopper
Моя программа работает... Проблема в том, что она реализует только вторую часть задания...