В общем случае, трассировка - один из отладки программ врукопашную: состояние программы контролируется на определённом отрезке времени её выполнения путём анализа значений переменных. трассировка в том или ином виде при отладке программ сложнее школьного дз практически неизбежна. в простейшем случае, трассировка - вывод значений переменных на экран (например, в окно консоли) , либо расчёт их на бумажке для каждого шага. в более продвинутом варианте используются точки останова, окно наблюдения, выполнение по шагам и, если есть, контекстный интерпретатор выражений. есть также специальная "трассирующая консоль" - интерфейс вывода информации из программы в отладчик, если таковой присутствует. почти любой современный отладчик показывает состояние програмm при её останове, что делает трассировку процессом легко доступным
Var arnx,armx,arny,army,delMmax:array[1..1000] of real; N,M,res,i,j:integer; min:real; begin min:=maxreal; {не уверен существует ли эта константа в fpc, если что, она равна максимальному значению типа real} readln(N); for i:=1 to N do readln(arnx[i],arny[i]); readln(M); for i:=1 to M do begin readln(armx[i],army[i]); delMmax[i]:=-1; for j:=1 to N do if delMmax[i]<sqrt(sqr(armx[i]-arnx[j])+sqr(army[i]-arny[j])) then delMmax[i]:=sqrt(sqr(armx[i]-arnx[j])+sqr(army[i]-arny[j])); if delMmax[i]<min then begin min:=delMmax[i]; res:=i; end; end; writeln(res); end.
Пример ввода: 3 2 1 1 2 1 1 3 1 5 3 3 4 2 Пример вывода: 2