Ordinare due dati

Due soli dati da ordinare, cioè il più piccolo deve precedere il più grande.

Scambiare il contenuto di due variabili

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)