[/q][q]По третьей задаче: Так как тут одинаковый код будет использоваться дважды, можно оформить процедурой... Пусть x и y - соответственно начало и конец части последовательности, тогда: Код: n:=(y-x)+1; t:=n div 2; for i:=1 to t do begin z:=a[x]; a[x]:=a[y]; a[y]:=z; inc(x); dec(y); end; По четвертой задаче: Если я правильно понял условие, то: если мы имеем массив вида {1, 2, 3, 4, 5, 6, 7, 8, 9} и надо сместить на 6 элементов вправо, то мы получим такой массив: {4, 5, 6, 7, 8, 9, 1, 2, 3}, а если влево - то {7, 8, 9, 1, 2, 3, 4, 5, 6}, да? Есть ли ограничения? (т.е. можно ли использовать дополнительный массив) Если можно, тогда: Код: t:=(n-k) mod n; for i:=1 to n do begin j:=(i+t) mod n; b[i]:=a[j]; end; А если нельзя - тогда можно воспользоваться кодом из второй задачи (т.е. сдвигать массив поэлементно) |