Помощь - Поиск - Пользователи - Календарь
Полная версия: Сдвиг циклический, обыкновенный
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Kit
Подскажите, пожалуйста, как мне перовести циклическую перестановку столбцов в матрице m*n : 2 вместо 1, 3 вместо 2..., первый вместо последнего. Только основу, дальше сам как-нить! blink.gif
volvo
Матрица M строк на N столбцов:
var
i, j, T: integer;
...
for i := 1 to m do begin
T := a[i, 1];
for j := 2 to n do
a[i, j - 1] := a[i, j];
a[i, n] := T;
end;
...
GoodWind
нечто вроде:

const n=5;
m=3;

var a:array[m,n] of byte;
i,j:integer;
t:byte;
begin
{наполнение матрицы}
for i:=0 to m do
begin
t:=a[i,0];
for j:=0 to n-1 do a[i,j]:=a[i,j+1];
a[i,n]:=t;
end;
{вывод матрицы}
end.

Kit
GoodWind правду пишет, только у меня почему-то помимо измененной матрицы выводится еще ряд(ы) ноликов. Не знает почему это?
Kit
Упс, все, разобрался, позор на мою седую голову. Спасибо за помощь! blum.gif
volvo
Kit, а у тебя, извини, матрица как задана,
a = array[0 .. m-1, 0 .. n-1] of integer
?

Мой вариант для
a: array[1 .. m, 1 .. n] of integer
Kit
Слушай, а ты близко выгадал ошибку)) Просто по привычке в одном месте m с n перепутал.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.