Gennady
Гений
(60242)
15 лет назад
Доброго времени суток.
Напрашивается лобовое решение. Предположим массив уже есть и заполнен, число к введено.
while k > 0 do begin
Buf := A[1]; {сохраняем первый элемент в буфере}
for i:=2 to n do A[i-1] := a[ i ]; {начиная со второго сдвигаем элементы на один влево}
A[n] := Buf; {записываем последний элемент}
k := k - 1;
end;
Для сдвига вправо подумайте сами. Все будет аналогично, только в буфер придется сначала сохранять последний элемент и цикл перезаписи немного изменить, чтобы перезапись осуществлялась в другом направлении. Хинт: использовать цикл for i:=n downto 2 do
Удачи!
Руслан Губайдуллин
Профи
(755)
15 лет назад
задание а
var i,n,k:integer;
a,b: array [1..100] of integer;
begin
write('kolichestvo elementov = ');
readln(n);
write('sdvig = ');
readln(k);
writeln('Vvedite massiv);
for i:=1 to n do
read(a);
fillchar(b,sizeof(b),0);{заполнение массива Б нулями}
for i:=1 to n do
begin
g:=i;
g:=g+k;
if g>n
then
g:=g-i;
b[g]:=a;
end;
writeln('Gotovaya matrica');
for i:=1 to n do
write(b,' ');
readln;
end.
задание б
var i,n,k:integer;
a,b: array [1..100] of integer;
begin
write('kolichestvo elementov = ');
readln(n);
write('sdvig = ');
readln(k);
writeln('Vvedite massiv);
for i:=1 to n do
read(a);
fillchar(b,sizeof(b),0);{заполнение массива Б нулями}
for i:=1 to n do
begin
g:=i;
g:=g-k;
if g<1
then
g:=i+g;
b[g]:=a;
end;
writeln('Gotovaya matrica');
for i:=1 to n do
write(b,' ');
readln;
end.
нужна помощь, пиши 395359808!
помогу!
пока