Помогите сделать,нужно в паскале

0 голосов
20 просмотров

Помогите сделать,нужно в паскале


image

Информатика (513 баллов) | 20 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.3, сборка 1547 от 07.10.2017
// Внимание! Если программа не работает, обновите версию!

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.

Пример
-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
(150k баллов)