Hola,
¿No habría que comprobar si existe el índice en el Array Román?
PD. Acabo de probarlo, y, parece que si nos "salimos" con el índice, obtenemos valores "aleatorios", que, no termino de comprender... de todas formas me atrevo a proponer algo como esto:
Código Delphi
[-]
function Choose(d: integer; values: array of Integer): Integer;
begin
if Length(values) >= d then
Result := values[d]
else
Result := -1;
end;
De esta forma, si el índice no existe, retornamos "-1"... y todavía así podría haber problemas, igual hay que levantar una excepción o algo así... ¿qué opináis?