Дан линейный массив a[1..n], содержащий целые числа. найти длину наименьшего отрезка числовой прямой, содержащего все положительные элементы массива. pascal
Const K = 13; Var A:array[1..K] of integer; i,Mn,Mx:integer; Begin Write('Исходный массив: '); For i:= 1 to K do Begin A[i]:=random(21)-10; Write(A[i],' ') End; WriteLn;
Mn:=A[K]; Mx:=A[K]; For i:= 1 to K-1 do Begin if (A[i]<Mn)and(A[i]>0) then Mn:=A[i]; if (A[i]>Mx)and(A[i]>0) then Mx:=A[i]; End; WriteLn('Искомая длина: ',Mx-Mn); End.
// Внимание! Если программа не работает, обновите версию!
begin
var s:=ArrRandom(ReadInteger('n='),-20,99).Println.Where(x->x>0).OrderBy(x->x);
Writeln('Длина отрезка равна ',s.Last-s.First)
end.
K = 13;
Var
A:array[1..K] of integer;
i,Mn,Mx:integer;
Begin
Write('Исходный массив: ');
For i:= 1 to K do
Begin
A[i]:=random(21)-10;
Write(A[i],' ')
End;
WriteLn;
Mn:=A[K];
Mx:=A[K];
For i:= 1 to K-1 do
Begin
if (A[i]<Mn)and(A[i]>0) then Mn:=A[i];
if (A[i]>Mx)and(A[i]>0) then Mx:=A[i];
End;
WriteLn('Искомая длина: ',Mx-Mn);
End.