Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Поменять местами строки матрицы

Автор: Sunder 6.12.2006 13:24

В FAQ'e нашел способ задания матрицы, чтобы быстро поменять строки матрицы.
http://forum.pascal.net.ru/index.php?s=&showtopic=2694&view=findpost&p=38100

Но, у меня почему-то не получается поменять две строки местами, в которых есть чсла k1 и k2.
Я перепечатал всю эту задачу из FAQ'a. Делаю процедуру ввода этих двух чисел. А дальше не могу найти строки, в которых они содержатся. Подскажите пожалуйста, как это сделать?

И еще, из этой же задачи. В примере количество строк и столбцов равно 10. Все числа в матрицы получаются нормальными. Но если я менюя количество строк на 4, то первая строка с пятизначными числами получается и строки не меняются. Почему?

mega_chok.gif

Автор: volvo 6.12.2006 17:13

Цитата
не могу найти строки, в которых они содержатся

var
a: tmatrix;
ix_k1, ix_k2: integer;
...
ix_k1 := 0; ix_k2 := 0;

for i := 1 to size_row do
for j := 1 to size_col do
if a[i][j] = k1 then ix_k1 := i
else if a[i][j] = k2 then ix_k2 := i;
...

После этого в ix_k1 будет храниться номер строки, в которой содержится последнее вхождение K1 в матрицу, а в ix_k2 - то же самое для K2... Если какой-то из элементов в матрице отсутствует, то в его индексе будет 0...

Цитата
Но если я менюя количество строк на 4, то первая строка с пятизначными числами получается и строки не меняются. Почему?
Приведи код...