Прежде всего, код надо отформатировать и исправить имеющиеся в нем ошибки. А затем приступать к его рассмотрению.
var
a, b: integer;
procedure proc(var a: integer; b: integer);
begin
b := 4; a := 6; b := a + b
end;
begin
a := 2; b := 3;
proc(a, b);
Writeln(a, ' ', b)
end.
Описаны две целочисленные переменные a и b. Им присваиваются значения 2 и 3 соответственно. Затем следует вызов процедуры proc, в которую эти переменные передаются в качестве параметров.
На входе в proc получаем a=2, b=3. Далее b получает значение 4, а получает значение 6 и затем b получает значение суммы a+b, т.е. 4+6=10. На этом работа процедуры завершается. Поскольку параметр процедуры a имеет описатель var, то в основную программу вернется значение, которое a имело внутри процедуры (т.е. 6). Значение b=10 действует только внутри процедуры и в основную программу не вернется.
Следовательно, в основной программа значение а поменяется на 6, а значение b сохранится прежним (3).
В результате на выходе будет строка:
6 3
64КБайта = 65536бай
теперь дели это число на 1024 и получаем время 64 сек за которое это файл передаётся.
Теперь 256байт умножаем на это время и видам размер в байтах 16384.
теперь делим на 1024 и получаем 16 это и есть ответ