Program p1;
var a,b:integer;
i,n,x:integer;
begin
Writeln ('Введите к-во');
readln (n);
x:=0;
for i:=1 to n do
begin
Writeln ('Введите число:');
readln (a);
if a>=0 then
begin
if x=0 then b:=a;
if (x>0) and (a<b) then b:=a;
x:=x+1;
end;
end;
Writeln('Наименьшего положительного число: ',b);
<span>end.</span>
<em>// PascalABC.NET 3.3, сборка 1547 от 07.10.2017</em>
<em>// Внимание! Если программа не работает, обновите версию!</em>
begin
var (a,b,xn,xk,dx):=(2.89,14.34,-50.0,50.0,2.5);
var n:=Trunc((xk-xn)/dx);
var (Max,k,s):=(0.0,0,0.0);
var f:real->real:=x->(a*a+b*Sign(x)*Power(Abs(x),1.0/3))/(3.56+Sin(a+b)+Exp(x));
for var i:=0 to n do begin
var x:=xn+dx*i;
var y:=f(x);
if (i+1) mod 3=0 then Writeln(x:5:1,' ',y);
if y>0 then begin
if y>Max then Max:=y;
s+=y; k+=1
end
end;
Writeln('Max(x,y)=',Max:5:1,' ',f(Max));
Writeln('Среднее значение y равно ',s/k:0:9)
end.
<u>Пример</u>
-45.0 -16.6538893021468
-37.5 -15.4796268651575
-30.0 -14.1362550800162
-22.5 -12.5454529373774
-15.0 -10.5472040721327
-7.5 -7.69691252360641
0.0 2.34531251806799
7.5 0.0201157784771028
15.0 1.33732990416318E-05
22.5 8.26246301436193E-09
30.0 4.95110092030162E-12
37.5 2.91644814868151E-15
45.0 1.69913234739356E-18
Max(x,y)= 2.3 2.10840685577529
Среднее значение y равно 0.212935940
Procedure ShellStr(var s: string);
{ сортирует символы строки методом Шелла }
var
i, j, n, step: integer;
c: char;
begin
s := Trim(s);
n := Length(s);
step := n div 2;
while step > 0 do
begin
for j := n - step downto 1 do
begin
i := j;
while i <= n - step do
begin
if s[i] > s[i + step] then
begin
c := s[i];
s[i] := s[i + 1];
s[i + 1] := c
end;
i := i + step
end
end;
step := step div 2
end
end;
procedure TrimNullsLeft(var s: string);
{ Усекает левые (незначащие нули) в строке s }
var
i, n: integer;
begin
i := 1; n := Length(s);
while (s[i] = '0') do i := i + 1;
s := Copy(s, i, n - i + 1)
end;
var
p: integer;
s, M, N: string;
f: text;
begin
Assign(f, 'input.txt');
Reset(f);
Readln(f, s);
Close(f);
Assign(f, 'output.txt');
Rewrite(f);
s := Trim(s);
p := Pos(' ', s);
M := Copy(s, 1, p - 1);
N := Copy(s, p + 1, Length(s) - p);
s := M + N;
ShellStr(s);
TrimNullsLeft(s);
Writeln(f, s);
Close(f);
Writeln('Программа завершила работу')
end.