Ordinare due dati

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)