как то так, могут быть мелкие ошибки, то что писал тут без компиляции:  
Code
const N=10; 
 var a: array[1..N, 1..N] of integer; 
 i,j,k,temp,rowNum: integer; 
 begin 
 readln(rowNum); {ввод нужной строки} 
 randomize; 
 for i:=1 to N do 
 for j:=1 to N do 
 a[i,j]:=random(100); 
 k:=a[1,1]; 
 for i:=1 to N do {поиск наибольшего элемента на главной диагонали} 
 if a[i,i]>=k then 
 k:=i; {запись строки} 
 for i:=1 to n do 
 begin 
 temp:=a[i,k]; 
 a[i,k]:=a[i,rowNum]; 
 a[i,rowNum]:=temp; 
 end; 
 end.