Код:
var
A : Array Of Double;
...
// На одну влево
procedure ShiftArrayLeft1(var A : Array Of Double);
var
Buf : Double;
I : Integer;
begin
Buf := A[Low(A)];
For I := Low(A) To High(A)-1 Do
A[i] := A[I+1];
A[High(A)] := Buf;
end;
по приведенной процедуре сама напишешь сбвиг вправо на 1 шаг, ну и еп K шагов - вызов сдвига на 1 шаг K раз.
Да, в данном случае размер массива определяется автоматически и указывать его нет необходимости.