Я думаю, что те, кто знает С/С++, паскаль и т.д., должны знать бейсик (ну хоть иметь представление о нём) ...
a - массив
n - число элементов массива
m - число позиций сдвига
for i=1 to m
p(i)=a(n-m+i)
next i
for i=n-m to 1 step -1
a(i+m)=a(i)
next i
for i=1 to m
a(i)=p(i)
next i
"-" - требует больше оперативной памяти
"+" - быстрый
Есть второй вариан, требующий меньше памяти, но но выполняется несколько дольше:
for i=1 to m
p=a(n)
for j=n to 2 step -1
a(j)=a(j-1)
next j
a(1)=p
next i
"-" требует больше времени
Написал: Д. Поляков