В общем случае, трассировка - один из отладки программ врукопашную: состояние программы контролируется на определённом отрезке времени её выполнения путём анализа значений переменных. трассировка в том или ином виде при отладке программ сложнее школьного дз практически неизбежна. в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага. в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений. есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует. почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
//PascalABC.NET (версия 3.1, сборка 1196 от 09.03.2016) function Transpose(a: array[,] of integer): array[,] of integer; //Поворот на 90гр по часовой стрелке begin var m := Length(a, 0); var n := Length(a, 1); Result := new integer[n, m]; for var i := 0 to n-1 do begin for var j := 0 to m-1 do Result[i, j] := a[m-1-j, i]; end; end;
begin var n := ReadInteger('Введите n:'); //Заполнение матрицы NxN сл. числами и вывод на экран var a :=MatrixRandom(n, n); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(a[i,j]); println; end; println;
Println('поворот влево на 90 гр'); var b := Transpose(a); b:=Transpose(b); b:=Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот вправо на 90гр'); b := Transpose(a); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; println;
Println('поворот на 180 гр'); b := Transpose(a); b := Transpose(b); for var i:=0 to n-1 do begin for var j:=0 to n-1 do Print(b[i,j]); println; end; end.