Ошибка тут:
Код:
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. Т.е. тебе надо очищать значение этой переменной на каждой итерайии внешнего цикла.
ЗЫ. Вообще, обычно при поиске макс/мин берут значение первого элемента массива, а сам цикл начинают со второго элемента. Особенно это полезно, когда ты заранее не знаешь диапазон значений.
ЗЗЫ. В архиве не обязательно было паковать экзешник, а код можно было выложить в тебе сообщения, он не такой большой.