Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

несколько максимальных значений в матрице

21K
02 декабря 2006 года
HEBMEH9IEMbIu
8 / / 02.12.2006
вот помогите пожалста разобраться..
нужно найти 5 максимальных значений в матрице заполняемой рандумом...

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

но вот когда вывожу на печать сохраненные максимальные значения, они почему равны неизвестно откуда взявшемуся числу! такое в матрицу не может быть занесено.. вот... иоэте это какието глюки компилятор?:confused:

Код:
var i,j,n,k,l: integer;
    A:array[1..10, 1..10] of integer;
    B:array[1..5] of integer;
    maxAij: integer;


{-----------------------------------------}

function Amax(max, s4et3:integer):integer;

var s4et, s4et1, s4et2: integer;
begin

for s4et:=1 to s4et3 DO
begin
for s4et1:=1 to 10 do
 begin
   for s4et2:=1 to 10 do
     begin
       if ((k=s4et1) AND (l=s4et2)) then continue;

       if max<(A[s4et1,s4et2]) then
     begin
       max:=A[s4et1,s4et2];
       k:=i;
       l:=j;
     end;
     end;
 end;
end;
B[s4et3]:=max;
end;
{--------------------------------}

begin {main}

for i:=1 to 10 do
 begin
  for j:=1 to 10 do A[i,j]:=4430-2*Random(4430);
 end;
B[1]:=Amax(A[1,1], 1);
for n:=2 to 5 do
 begin
   B[n]:=Amax(B[n-1], n);
   write(B[n],' ');
 end;
for i:=1 to 5 do write(B[n],' ');
Readln;
end.
24K
02 декабря 2006 года
Оззя
2 / / 02.12.2006
Код:
var i,j,n,k,l: integer;
    A:array[1..10, 1..10] of integer;
    B:array[1..5] of integer;
    maxAij: integer;


{-----------------------------------------}

function Amax(max, s4et3:integer):integer;

var s4et, s4et1, s4et2: integer;
begin

for s4et:=1 to s4et3 DO
begin
for s4et1:=1 to 10 do
 begin
   for s4et2:=1 to 10 do
     begin
{       if ((k=s4et1) AND (l=s4et2)) then continue;}

       if max<(A[s4et1,s4et2]) then
     begin
       max:=A[s4et1,s4et2];
{      k:=i;
       l:=j;}
     end;
     end;
 end;
   B[s4et]:=max;
end;

end;
{--------------------------------}

begin {main}

for i:=1 to 10 do
 begin
  for j:=1 to 10 do A[i,j]:=4430-2*Random(4430);
 end;
 WriteLn;
 Amax(A[1,1], 5);
for i:=1 to 5 do write(B,' ');
Readln;
end.
21K
03 декабря 2006 года
HEBMEH9IEMbIu
8 / / 02.12.2006
:) пасиба! тока все равно понять не могу откудова в моем случае брались значения в 5-10 раз больше чем было внесено в матрицу...:D

единственное что массив Б заполняется одним единственным значением, тоесть максимальным... а нужно найти 5 максимальных.. необзательноже в матрице будет 5 одинаково больших значения...:cool:

аа изобразил :D сначала находим максимальнео в каждой строке, записываем их в массив Б, потом сортируем по убыванию и выводим первые 5.. получаем то что хотели
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог