Не проверял, так что могут быть мелкие баги:
Код:
var
A : Array Of Integer;
B : Array Of Integer;
N, Z : Integer;
I : Integer;
F : Boolean;
begin
// init source array
N := 100;
SetLength(A,N);
For I := Low(A) To High(A) Do A[i] := Random(200) - 100;
// Definw seach condition
F := False;
For I := Low(A) To High(A)-1 Do
Begin
F := ((A[I+1] mod 2) = 0) And ((A[i] mod 2) = 1);
If F Then Break;
End;
// Copy
SetLength(B,0);
For I := Low(A) To High(A) Do
If F
Then
Begin
If A[i] >= 0 then
Begin
SetLength(B, Length(B)+1);
B[High(B)] := A[i];
End
End
Else
Begin
If A[i] < 0 then
Begin
SetLength(B, Length(B)+1);
B[High(B)] := A[i];
End
End
End;
// Reverse array B
For I := Low(B) To (High(B) div 2) Do
begin
Z := B[i];
B[i] := B[High(B)-I]
B[High(B)-I] := Z;
end;
end;