Страница 1 из 1

Странный swap

Добавлено: 06 янв 2008, 23:37
Monopo
Имею двумерный массив a[1..n,1..n] целых чисел.
Хочу поменять последнюю строку с последним столбцом.

Код: Выделить всё

...
for i:=1 to n do
    for j:=1 to n do
        read(a[i,j]);
    writeln('Resultat>');
    for i:=1 to n-1 do
        swap(a[n,i],a[i,n]);
...
Выдает ошибку в swap, устанавливает курсор на запятую между двумя элементами массива и говорит, что там нужна ')', закомментирую swap - ошибка пропадает.
Чего ему там не хватило?

Re: Странный swap

Добавлено: 06 янв 2008, 23:51
somewhere
процедуру swap можно в студию?

Re: Странный swap

Добавлено: 07 янв 2008, 09:41
Serge_Bliznykov
somewhere, он его не приведёт.
это встроенная функция Pascal!
Swap (function)

Swaps the high- and low-order bytes of the
argument.

Declaration:
function Swap(X): (Same type as parameter);
вот же народ... и ведь нашёл же он её!!!! ;-)))

Monopo,
для того, чтобы поменять два элемента массива местами, достаточно
одной доп.переменной и такого кода:

Код: Выделить всё

begin
  TempX := a[n,i];
  a[n,i] := a[i,n];
  a[i,n] := TempX;
end;

Re: Странный swap

Добавлено: 07 янв 2008, 12:12
somewhere
Ну тогда понятно, ведь это функция, и у нее один параметр. К тому же она просто байтики аргумента старшие и младшие меняет местами, а не конкретные переменные по разным адресам.

Re: Странный swap

Добавлено: 07 янв 2008, 12:34
Duncon
function Swap(X: SmallInt): SmallInt;
function Swap(X: Longint): Longint;

Re: Странный swap

Добавлено: 14 янв 2008, 17:56
silverman
да хватит париться! функции, массивы, программы, какая пофиг разница! Даёшь флуд на полную катушку! Флуд ради флуда! Давайте обсудим, у кого какие мусорные вёдра и выбивалки для ковров!!!!!