gepar, у тебя цикл какой-то наобумный. Во-первых, уточни, код к какой задаче ты тут представил ("транспонирование матрицы" или "поменять местами две строки")?
Если поменять местами две строки, то тогда там будет цикл ''for i:=1 to n do begin buf:=m[a,i]; m[a,i]:=m[b,i]; m[b,i]:=buf; end'', где a и b - номера строк, которые нужно поменять местами (как правильно тебе написал Fly). Никаких вложенных циклов (с j:=1 to n) тут быть не должно.
А если ты имел в виду транспонирование матрицы, то тут нужно лишь симметрично отразить элементы матрицы относительно главной диагонали, т.е. (n*n-n)/2 = n(n-1)/2 элементов матрицы, находящихся сверху от главной диагонали переместить в нижнюю часть, а нижние в верхнюю + нужно будет устроить еще и проверку факта, был ли данный элемент в конкретной итерации уже заменен на симметричный ему в одной из предыдущей итерации или нет, иначе каждый элемент будет переставлен дважды, т.е. вернется на свое прежнее место, так как повторное транспонирование матрицы приводит к первоначальной матрице (транспонирование - инволютивное преобразование, если уж ругаться математикой)).