Всем привет!
Дана программка, которая выполняет сдвиг элементов массива на одну поз. вправо
program sdvig;
const n=10;
type mass=array[1..n]of integer;
var i:integer;x:mass;
begin
for i:=1to n do
begin
write(' Введте ',i,'-й элемент массива ');
readln(x[i])
end;
for i:=n-1 downto 2do x[i]:=x[i-1];x[1]:=0;
writeln('Результат');
for i:=1to n do write(x[i] :4);
end.
tmp := x[n];
for i := n downto 2 do x[i] := x[i-1];
x[1] := tmp;
Спасибо! А "tmp" это новая переменная? Тогда ее наверно надо указать в разделе описания переменных?
Очевидно, да.
понятно) я решил так:
program sdvig;
const n=10;
type mass=array[1..n]of integer;
var k,i:integer;x:mass;
begin
for i:=1to n do
begin
write(' Введте ',i,'-й элемент массива ');
readln(x[i])
end;
k:=x[9];
for i:=n-1 downto 2do x[i]:=x[i-1];x[1]:=x[10];x[10]:=k;
writeln('Результат');
for i:=1to n do write(x[i] :4);
end.
> А вот хотелось бы как-нибудь без дополнительных переменных(
Можно, но бессмысленно, будет больше операций и меньше логичности.
Для двух переменных целого типа обмен без доп. переменной делается так:
Спасибо! Буду вникать.