Само нахождение номера элемента я понимаю так:
Во первых номер элемента не может быть первым и последним
Значит надо брать со второго элемента списка или массива и до предпоследнего,
итак берём элемент считаем сумму до него и после него, далее отнимаем от большей суммы меньшую и запоминаем её в какую-нибудь переменную, например (К), берём следующий элемент и проделываем теже действия, смотрим если разность сумм будет больше (К), то оставляем (К) таким же, иначе меняем на новую разность и так до конца, пока не найдём самую малую разность сумм, при этом нужно запоминать номер взятого элемента!!!!
В общем если сделать всё по простому, то я имею ввиду сделать что-то в этом роде, используя массив:
Код
const
n=16;
var
mas:array[1..n] of integer;
i,j,k,Sum1,Sum2,ish,nomer:integer;
begin
clrscr; randomize;
for i:=1 to n do begin
mas[i]:=random(9);
write(mas[i]:3); end;
Sum1:=0; Sum2:=0;
{}
j:=2;
for k:=1 to j-1 do
Sum1:=Sum1+mas[k];
{}
for k:=j+1 to n do
Sum2:=Sum2+mas[k];
{}
if Sum1>Sum2 then ish:=Sum1-Sum2 else ish:=Sum2-Sum1;
nomer:=j;
{}
for j:=3 to n-1 do
begin
Sum1:=0; Sum2:=0;
{}
for k:=1 to j-1 do
Sum1:=Sum1+mas[k];
{}
for k:=j+1 to n do
Sum2:=Sum2+mas[k];
{}
if (Sum1>Sum2) then
if ish>(Sum1-Sum2) then begin ish:=Sum1-Sum2; nomer:=j; end;
if (Sum2>Sum1) then
if ish>(Sum2-Sum1) then begin ish:=Sum2-Sum1; nomer:=j; end;
if (Sum1=Sum2) then nomer:=j;
end;
{}
writeln;
write('Номер элемента ',nomer);
end.
Правда это только для наглядности, написал на скорую руку, но думаю основываться надо на этом, естественно надо сделать как то по легче, вернее по меньше шоб написано было!!!
Посмотрим как будет действовать
Atos