Ho fatto solo quello di 3:

codice:
PROGRAM Ocresciente;
USES crt;
VAR
 n:array[1..3] of real;
 i,j:integer;
 tmp:real;
BEGIN
 clrscr;
 i:=1;
 REPEAT
  write('Inserisci il ',i,' mo numero: ');
  readln(n[i]);
  i:=i+1;
 UNTIL((i-1)=3);
 IF(n[1]=n[2])or(n[1]=n[3])or(n[2]=n[3])THEN
  writeln('Errore: 2 o 3 dei numeri inseriti sono uguali')
 ELSE
  FOR i:=0 TO 2 DO
   FOR j:=(i+1) TO 3 DO
    IF(n[j]<n[i])THEN
     BEGIN
     tmp:=n[i];
     n[i]:=n[j];
     n[j]:=tmp;
     END;
  i:=1;
  writeln(' ');
 REPEAT
  writeln('Il: ',i,' e'': ',n[i]:5:2);
  i:=i+1;
 UNTIL((i-1)=3);
 writeln(' ');
 readln;
END.

l'altro è in fase di costruzione, ma una valta capito l'algoritmo...