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

Ваш аккаунт

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

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

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

Двумерный массив

46K
04 октября 2009 года
Inna Lazareva
16 / / 04.10.2009
помогите решить!!!!
Задана матрица m*n. Найти сумму двух макс. значений элементов в каждом рядке!
6
04 октября 2009 года
George
4.1K / / 05.01.2007
[highlight=pascal]
type
TIntArray = array of integer;

function CountSumms(AMatrix: array [0..m] of array [0..n] of integer): TIntArray;
var
FirstMax, SecondMax, MaxJ: integer;
begin
SetLength(Result, m);
for i := 0 to m do
begin
FirstMax := 0;
SecondMax := 0;
MaxJ := 0;
for j := 0 to n do
begin
if AMatrix[i, j] > FirstMax then
begin
FirstMax := AMatrix[i, j];
MaxJ := j;
end;
end;
for j := 0 to n do
begin
if (AMatrix[i, j] > SecondMax) and (AMatrix[i, j] <= FirstMax) and (j <> MaxJ) then
SecondMax := AMatrix[i, j];
end;
Result := FirstMax + SecondMax;
end;
end;[/highlight]
Может быть это не самое изящное и идеальное решение, к тому же скорее всего с ошибками (должны же Вы сделать что то сами %) ), но идея, думаю понятна. =)
46K
04 октября 2009 года
Inna Lazareva
16 / / 04.10.2009
спасибо большое!!!!
только можно еще вопрос ...а зачем надо maxJ??
6
05 октября 2009 года
George
4.1K / / 05.01.2007
очень просто. См. комментарии в сл. куске кода:
[highlight=pascal]
// Обнуляем все переменные
FirstMax := 0;
SecondMax := 0;
MaxJ := 0;
// В этом цикле находим максимальное число в "рядке"
for j := 0 to n do
begin
if AMatrix[i, j] > FirstMax then
begin
FirstMax := AMatrix[i, j];
MaxJ := j;
end;
end;
// А в этом второе наибольшее, которое может быть равно первому,
// но не должно совпадать. Поэтому и сделал проверку по индексу.
// MaxJ - индекс первого числа. Он не должен совпасть со вторым.
for j := 0 to n do
begin
if (AMatrix[i, j] > SecondMax) and (AMatrix[i, j] <= FirstMax) and (j <> MaxJ) then
SecondMax := AMatrix[i, j];
end;
// Результат - массив чисел
Result := FirstMax + SecondMax;
[/highlight]
46K
05 октября 2009 года
Inna Lazareva
16 / / 04.10.2009
Еще раз огомное спасибо!! Теперь мне все ясно!! Вы меня спасли))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог