Ошибка тут:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | procedure summa_maxim_elementov();
var max_el,summa, i, j : Integer ;
begin
max_el := 0 ;
summa := 0 ;
for i := Low(B) to High(B) do
begin
for j := Low(B) to i do
begin
if (B[i,j] > max_el) then
begin
max_el := B[i,j];
end ;
end ;
summa := (summa + max_el);
end ;
|
Ты очищаешь найденное макс. значение только раз, перед поиском и сумированием. Пусть в первой строке макс. значение 6, а во второй - 4. Но все значения второй строки у тебя меньше, чем уже найденный макс из первой строки. Соответсвенно, вместо макс. знаяения второй строки у тебя в переменной max_el будет 6, а не 4. Т.е. тебе надо очищать значение этой переменной на каждой итерайии внешнего цикла.
ЗЫ. Вообще, обычно при поиске макс/мин берут значение первого элемента массива, а сам цикл начинают со второго элемента. Особенно это полезно, когда ты заранее не знаешь диапазон значений.
ЗЗЫ. В архиве не обязательно было паковать экзешник, а код можно было выложить в тебе сообщения, он не такой большой.