Дерево Фенвика для массива A можно себе представлять так, как изображено на прикрепленном рисунке. В вершине, помеченной числом i, хранится сумма A[i] и всех элементов массива A с индексами, которые записаны в левом поддереве вершины i. Например, Fenwick[11] = A[8] + A[9] + A[10] + A[11]. Дерево Фенвика устроено так, чтобы в каждой вершине Fenwick[n] хранилась сумма отрезка массива от некоторого F(n) до n, нужно сообразить, чему равно F(n). F(n) получается, если идти по дереву в левые поддеревья, пока не наткнёмся на лист, он помечен чётным числом. Если двоичная запись числа n оканчивается на k единиц, то в F(n) эти k единиц заменены на нули.
Пусть нужно вычислить сумму префикса A[0..n], например, n = 9. Глядя на дерево, можно сообразить, что эта сумма равна (A[0] + A[1] + ... + A[7]) + (A[8] + A[9)) = Fenwick[7] + Fenwick[9]. В такой сумме обязательно есть Fenwick[n]: A[0] + A[1] + ... + A[n] = (A[0] + ... + A[F(n) - 1]) + (A[F(n)] + ... + A[n]) = (A[0] + ... + A[F(n) - 1]) + Fenwick[n]. Сумму в скобках тоже можно представить в виде суммы Fenwick[...].
Обновление значения A[n] приводит к обновлению некоторых Fenwick[k], а именно, Fenwick[n], и затем всех вершин-родителей, для которых текущая вершина является левым потомком. Например, чтобы обновить A[9], придется обновить Fenwick[9] и Fenwick[11]. Посчитано, что если текущая вершина имеет номер k, то следующая имеет номер k | (k + 1), и так далее, пока не кончатся вершины.
Высота дерева O(log n), так что операции нахождения суммы и обновления элементов работают за O(log n).
Лучше бы такое на формумах спрашивали, а не тут.
А вообще, Вы знаете что такое .bat? Открываем Internet...И нам выдаёт:
Bat-фалы это по сути текстовые файлы, которые содержат от одной до нескольких строчек кода командной строки.
.bat файлы могут запускать другие программы (в основном для этого и используются), но при этом легко узнать что они делают, просто открыв блокнотом.
Грубо говоря, никаких "команд" для того, чтобы что-то перекинуть с одного компа на другой, нет. Зато .bat файл может запустить такую программу, которая и сделает всё, то что вам нужно. Достаточно знать хоть какой-то язык программирования)
Program Test;
var
Mas: array[1..10] of integer;
result1: integer;
result2: real;
function Sum(): integer;
var summa: integer;
begin
summa := 0;
for var i := 1 to 10 do
summa := summa + Mas[i];
Sum := summa;
end;
procedure Arifmetic(r1: integer; var A: real);
begin
A := r1 / 10;
end;
Begin
for var i := 1 to 10 do
begin
Write('Введите ', i, ' элемент: ');
Readln(Mas[i]);
end;
result1 := Sum();
Arifmetic(result1, result2);
Writeln();
Writeln('Сумма = ', result1);
Writeln('Среднее арифметическое = ', result2);
End.