Помощь - Поиск - Пользователи - Календарь
Полная версия: отсортировать матрицу по заданному столбцу
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
magicmagic
Помогите решить сию проблему написал программу сортировки матрицы по заданному столбцу с использованием двойного динамического массива, выдает ошибку exitcode=201 не пойму почему. Помогите.

Код

var i,j,n,t,m:integer;
a:array of array of real;
k:real;
begin
Write('Введите размерность матрицы ');
readln(n);readln(m);
SetLength(a,n,m);
for i:=0 to n-1 do
for j:=0 to m-1 do
readln (a[i,j]);
readln(t);
for i:=0 to n-2 do
for j:=0 to n-i do
if a[j,t]>a[j+1,t] then begin
k:=a[j,t];
a[j,t]:=a[j+1,t];
a[j+1,t]:=k;
end;
writeln ('отсортированный массив ');
for i := 1 to n do begin
for j:=1 to n do
write(a[i,j],' ');
writeln;
end;
readln;
end.
Федосеев Павел
Если выполнять пошагово, то ошибка 201 возникнет при сортировке, в момент, когда i=0, j=n-1 и при сравнении в строке
if a[j,t]>a[j+1,t] then begin
будет обращение к несуществующему элементу a[n, t].
Лучше организуй циклы так
for i := 0 to n - 1 do
for j := 0 to n - 2 - i do

И кроме этого, при обмене ты ограничиваешься обменом элементов, а не строки.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.