

Что значит процедура Swap в Паскале???
Я так понимаю, что она меняет переменные местами так, чтобы они соответствовали условию. Например, дано: а, b,c, d: integer
of a>c Swap (a, c) .Как она работает????
на самом деле хороший вопрос. затрагивает некоторые нюансы
Франциск показал как можно поменять 2 числа местами в теле программы, но если написать процедуру так:
procedure Swap1(a,b:integer);
var
t:integer;
begin
t:=a;
a:=b;
b:=t;
end;
то смена значений будет только в процедуре. Дело в том, что в нее (процедуру) передаются только значения переменных и при любые изменениях в процедуре не затронут значения переменных вне ее.
Специально для таких целей как swap сделали передачу значений по указателю. Для этого используется уже известное ключевое слово var в описании процедуру (или функции).
procedure Swap2(var a,b:integer);
var
t:integer;
begin
t:=a;
a:=b;
b:=t;
end;
Скопируй в себе обе процедуры и запусти такую программу:
var
AA,BB:integer;
begin
AA:=1;
BB:=11;
writeln(AA,' ',BB);
Swap1(AA,BB);
writeln(AA,' ',BB);
Swap2(AA,BB);
writeln(AA,' ',BB);
end.
Не нужен нам этот ваш своп. Как писали
i:=a[0]; a[0]:=a[1]; a[1]:=i;
так и продолжаем писать.
Посмотрите в словаре как переводится это слово и все вопросы отпадут!
Верно