В общем случае, трассировка - один из отладки программ врукопашную: состояние программы контролируется на определённом отрезке времени её выполнения путём анализа значений переменных. трассировка в том или ином виде при отладке программ сложнее школьного дз практически неизбежна. в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага. в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений. есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует. почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
// PascalABC.NET 3.1, сборка 1184 от 02.03.2016 begin var n:=10; var a:=ArrRandom(n,1,99); Print('A:'); a.Println; var b:=ArrRandom(n,1,99); Print('B:'); b.Println; var x:=a.Zip(b,(p,q)->p*q); Print('X:'); x.Println; Writeln('min(X)=',x.Min) end.
2. "Школьный вариант" (так учат в школе, чтобы жизнь медом не казалась, но может быть, что учителя сами не понимают современные технологии программирования):
// PascalABC.NET 3.1, сборка 1184 от 02.03.2016 const n=10; var a,b,x:array[1..n] of integer; i,min:integer; begin Randomize; Write('A: '); for i:=1 to n do begin a[i]:=Random(99)+1; Write(a[i],' ') end; Writeln; Write('B: '); for i:=1 to n do begin b[i]:=Random(99)+1; Write(b[i],' ') end; Writeln; Write('X: '); min:=100*100; // больше максимального for i:=1 to n do begin x[i]:=a[i]*b[i]; Write(x[i],' '); if min>x[i] then min:=x[i] end; Writeln; Writeln('min(X)=',min) end.