Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Срочно!!!!Программирование на Borland Pascal. Срочно помогите!!!!Плз!!!

ospanoff Знаток (289), закрыт 15 лет назад
Дан массив A(n) и натуральное k(k
Дополнен 15 лет назад
Дан массив A(n) и натуральное k(k
Дополнен 15 лет назад
Дан массив A(n) и натуральное k(k меньше n). Произвести циклический сдвиг его элементов на к позиций а) вправо б) влево
Дополнен 15 лет назад
можно всю прогу полностью!!!?
Лучший ответ
Чак Норрис Мастер (1048) 15 лет назад
tmp:=mas[1];
mas[1]:=mas[2];
и так далее, т. е.
mas:=mas[i+1]; где i от 1 до n-1

Это сдвиг на 1 элемент
Кст незабудь mas[n]:=tmp;
Остальные ответы
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!
помогу!
пока
Похожие вопросы