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

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

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

Автор: Трейсер 18.10.2007 17:33

вот прога.
(Произвести циклический сдвиг двумерного массива К раз где К - простое число.)
такая уже была я видел. но здесь надо не делать сдвиг, а просто поменять местами столбцы
Вот что я написал но здесь много неправельно программа даже не компилируеться помогите розобратся. спс.

program lab3;
uses crt;
const n=3;
var a: array [1..n, 1..n] of integer;
temp, i, j:byte;
begin
clrscr;
randomize;
for i:=1 to n do
begin
for j:=1 to n do
begin
a [i,j]:=random (101);
end;
writeln('');
end;
writeln('')
begin
temp:=a[i,1];
a[i,1]:=a[1,2];
a[i,2]:=[i,3];
a[i,3]:=temp;
writeln(a[i,j]:3);
writeln('');
end.

а еще сказано что надо менять местами К раз.Как это задать? а то у меня меняет местами на 1 столбец.

Автор: мисс_граффити 18.10.2007 20:26

Что-то ты увлекся begin/end
Например, вот здесь:

for j:=1 to n do
begin
a [i,j]:=random (101);
end;

или здесь:
begin
temp:=a[i,1];
a[i,1]:=a[1,2];
a[i,2]:=[i,3];

они зачем?
а поскольку баланс как-то слабо соблюдается, у компилятора возникают сложности.

и еще - сразу привыкай делать нормальные отступы, это повышает читаемость программы и упрощает процесс отладки.

Автор: Трейсер 19.10.2007 1:01

А как обойтись без begin и end?

Автор: Артемий 19.10.2007 1:04

просто их убрать..например:

for j:=1 to n do
a [i,j]:=random (101);