Due soli dati da ordinare, cioè il più piccolo deve precedere il più grande.
...
If x > y Then
Begin
temp:=x;
x:=y;
y:=temp;
End;
Scambiare il contenuto di due variabili con una procedura
Procedure SCAMBIA(Var x, y: Real);
Var
temp: Real;
Begin
temp:=x;
x:=y;
y:=temp;
End;
Scambiare i valori contenuti nell’array V alle posizioni a e b
Procedure SCAMBIA(Var V: Vettore; a, b: Integer);
Var
temp: Real;
Begin
temp:=V[a];
V[a]:=V[b];
V[b]:=temp;
End;
...
SCAMBIA(V, a, b);
...
oppure
Procedure SCAMBIA(Var x, y: Real);
Var
temp: Real;
Begin
temp:=x;
x:=y;
y:=temp;
End;
...
SCAMBIA(V[a], V[b]);
...
Ordinare un array di due elementi
....
If(V[1] > V[2]) Then
SCAMBIA(V[1], V[2]);
oppure, senza la chiamata…
...
If(V[1] > V[2]) Then
Begin
temp:=V[1];
V[1]:=V[2];
V[2]:=temp;
End;
Esempio: sia V = (20, 15) allora
SCAMBIA(V, 1, 2);
produce V = (15, 20)
Ordinare un sottoarray di due elementi
...
If(V[i] > V[i+1]) Then
SCAMBIA(V[i], V[i+1]);
Esempio: sia V = (20, 15, 10, 3) allora
...
If(V[2] > V[3]) Then
SCAMBIA(V, 2, 3);
produce V = (20, 10, 15, 3)