{$mode objfpc}{$H-}{$R+}{$T+}{$Q+}{$V+}{$D+}{$X-}{$warnings on}
program minimo_maximo_02;
    // Muestra la posición de los valores mínimo y máximo 
    // en un vector. 
 
const
    TamanioVector = 4;
    TamanioMinVector = 2;
type
    TipoVector = array[1..TamanioVector] of real;

procedure calcula_min_max( vector: TipoVector; var pos_min, pos_max : integer); 
var
    i : integer;
begin
    pos_min := 1;
    pos_max := 1;
    for i := 2 to TamanioVector do begin
        if vector[i] < vector[pos_min] then begin
            pos_min := i;
        end
        else if vector[i] > vector[pos_max] then begin
            pos_max := i;
        end;
    end;
end;

procedure escribe_min_max(vector: TipoVector);
var
    pos_min, pos_max : integer;
begin
    if TamanioVector < TamanioMinVector then
        writeln('El vector es demasiado pequeño')
    else begin
        calcula_min_max(vector, pos_min, pos_max);
        write('Mínimo: ', vector[pos_min]:0:2);
        writeln(' Posición del mínimo: ', pos_min);
        write('Máximo: ', vector[pos_max]:0:2);
        writeln(' Posición del máximo: ', pos_max);
    end;
end;

const
    vector_prueba: TipoVector = (93.0, 87.4, 91.3 , 86.2);

begin
    escribe_min_max(vector_prueba);
end.
