Программа: вводится массив. нужно циклически сдвинуть его на 2 позиции влево.
Проблема: через random вещественные числа вводятся как-то непонятно(как сделать так, чтобы массив сначала выводился как есть в строку, а потом сдвинутый на другой строке?) Хелп
program pila;
uses crt;
const
n=10;
var
x:array[1..n] of real;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do begin
x[i]:=random(100)-50;
write(x[i]:6:2);
end;
writeln;
for i:=1 to n-2 do begin
x[i]:=x[i+2];
write(x[i]:6:2);
end;
readkey;
end.
x[i]:=random(100)-50;
write(x[i]:6:2);
А влево
Виноват.
Тогда так
Было
1 2 3 4 5 6
Стало
3 4 5 6 1 2
Циклически означает, что элементы, выходящие за пределы границ, передвигаются в начало (конец) последовательности.
А как тогда так сделать, как ты говоришь?Как код будет выглядеть?
http://forum.pascal.net.ru/index.php?showtopic=15786&hl=циклический+сдвиг
program gremmi;
uses crt;
const
n=10;
m=2;
var
x:array[1..n] of integer;
y:array[1..n] of integer;
i:integer;
begin
clrscr;
randomize;
for i:=1 to n do begin
x[i]:=random(100);
write(x[i],' ');
end;
writeln;
for i:=1 to m do
y[i]:=x[n-m+i];
for i:=n-m downto 1 do
x[i+m]:=x[i];
for i:=1 to m do
x[i]:=y[i];
for i:=1 to n do
write(x[i],' ');
readln;
end.