В общем случае, трассировка - один из отладки программ врукопашную: состояние программы контролируется на определённом отрезке времени её выполнения путём анализа значений переменных. трассировка в том или ином виде при отладке программ сложнее школьного дз практически неизбежна. в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага. в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений. есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует. почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
int cols;
int rows;
cout << "Введите размер столбцов ->" << endl;
cin >> cols;
cout << "Введите размер строк ->" << endl;
cin >> rows;
//выделение памяти для двумерного массива
int **ptrarray = new int*[cols];
for (int count = 0; count < cols; count++)
ptrarray[count] = new int[rows];
for (int count_row = 0; count_row < cols; count_row++)
for (int count_column = 0; count_column < rows; count_column++)
ptrarray[count_row][count_column] = rand() % 41 + (-20);
for (int count_row = 0; count_row < cols; count_row++)
{
for (int count_column = 0; count_column < rows; count_column++)
cout << setw(4) << setprecision(2) << ptrarray[count_row][count_column] << " ";
cout << endl;
}
// удаление двумерного динамического массива
for (int count = 0; count < cols; count++)
delete[] ptrarray[count];
delete[] ptrarray;
Объяснение: