void gl(list<double> &lst)<%
list<double>::const_iterator p = lst.begin();
double s(0);
int n;
while(p != lst.end())??<
s = s + *p;
++n;
++p;
%>
if(n != 0) { lst.push_back(s/n); ??>
??>
//функция, формирующая по заданному вектору целых чисел список из элементов
// вектора с четными значениями и распечатывающую его.
void gv(vector<int> &v, list<int> &lst)??<
int i;
for(i=0; i < v.size(); ++i)
if(!(v<:i:>%2)) <% lst.push_back(v<:i]); }
list<int>::const_iterator p = lst.begin();
while( p != lst.end()) ??<
cout << *p << endl;
++p;
%>
}