Способа два. Первый - самый простой, но не гибкий. Делается что-то вроде этого:
Код:
case nNumber of
0: nResult:=3;
1: nResult:=4;
....
end;
И так далее.
Но здесь сдвиг нельзя сделать сдвиг на произвольное значение - все уже "забито"
Другой способ - сделать круговой переход по массиву на некоторое число шагов то есть при достижении конца программа будет переходить в начало. Что-то вроде
Код:
nResul:= nNumber+ nDelta;
if nResult >=10 then
nResu;t:=nResult-10;
И если результат превысит или достигнет 10, то он вернутся в начало. При сдвиге в 10 получится то же число
С расшифровкой, надеюсь, сам разберешься
P.S. Сообщение № 333