Цитата:
Сообщение от QIWI
Найти сумму всех элементов массива расположенных после первого положительного элемента и преобразить массив таким образом, чтобы сначала располагались элементы, целая часть которых лежит в интервале [a,b] и потом все остальные.
|
Легко:
Код:
Const
N=20;
Var
i,j,a,b:Byte;
Sum,D:Real;
V:Array[1..N] of Real;
R:boolean;
Begin
Randomize;
R:=false;
Sum:=0;
Writeln('Initial array:');
For i:=1 to N do
begin
V[i]:=100*Random-50;
If R then Sum:=Sum+V[i];
If (V[i]>0) and Not(R) then R:=true;
Write(V[i]:8:3);
end;
Writeln;
Writeln;
Writeln('Sum= ',Sum:0:3);
Writeln;
Writeln;
Write('a (lower limit) = ');
Readln(a);
Write('b (upper limit) = ');
Readln(b);
Writeln('Ordered array:');
Writeln;
Writeln;
For i:=1 to N-1 do
For j:=N downto i+1 do
If ((Trunc(V[j])>=a) and (Trunc(V[j])<=b)) and
((Trunc(V[j-1])<a) or (Trunc(V[j-1])>b)) then
begin
D:=V[j-1];
V[j-1]:=V[j];
V[j]:=D;
end;
For i:=1 to N do
Write(V[i]:8:3);
Readln
End.