В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные – в конец с сохранением порядка следования. Дополнительный массив заводить не разрешается
Категория: Delphi/Pascal
2012-02-01 22:26:21
code: #pascal
program massiv; uses crt; var i,n,k:integer; a:array [1..100] of integer; {начало процедуры вставки элемента "el" в массив на место "p"} procedure inMas(var r:integer;p:integer;el:integer); var i:integer; begin r:=r+1; for I := r downto p+1 do a[i]:=a[i-1]; a[p]:=el; end; {--- корнец процедуры вставки---} {начало процедуры удаления элемента с индексом "p" из массива} procedure delMas(var r:integer;p:integer); var i:integer; begin for I := p to r-1 do a[i]:=a[i+1]; r:=r-1; end; {--- корнец процедуры удаления---} {начало самой программы} begin write('N= '); readln(n); {считываем размер массива} writeln('Vvedite elementy massiva:'); for i:=1 to n do begin write('A[',i,']= '); readln(a[i]); end; {считываем элементы массива} clrscr; for i:=1 to n do write(A[i],' '); {выводим массив} k:=1; for I := 1 to n do {идём по массиву} if a[i]<0 then {и отрицательные элементы} begin {ниже перемещаем в начало, посредством} inmas(n,k,a[i]);{вставки } delmas(n,i+1); {и удаления} inc(k); end; writeln ; for i:=1 to n do write(A[i],' '); {выводим ПОЛУЧИВШИЙСЯ массив на экран} readln; end.
Поделиться: