// num/slice1.cpp #include #include using namespace std; // Вывод массива значений по строкам template void printValarray (const valarray& va, int num) { for (int i=0; i va(12); // Заполнение массива данными for (int i=0; i<12; i++) { va[i] = i; } printValarray (va, 3); // первый столбец = второй столбец, // возведенный в степень третьего столбца va[slice(0,4,3)] = pow (valarray(va[slice(1,4,3)]), valarray(va[slice(2,4,3)])); printValarray (va, 3); // Создание массива значений valarray с троекратным повторением // третьего элемента va valarray vb(va[slice(2,4,0)]); // Умножение третьего столбца на элементы vb va[slice(2,4,3)] *= vb; printValarray (va, 3); // Вывод квадратных корней из элементов второй строки printValarray (sqrt(valarray(va[slice(3,3,1)])), 3); // Удвоение элементов третьей строки va[slice(2,4,3)] = valarray(va[slice(2,4,3)]) * 2.0; printValarray (va, 3); }