Const x0=-10; xk=13; h=0.5; var x,y:real; i,n:integer; begin n:=round((xk-x0)/h)+1; x:=x0-h; for i:=1 to n do begin x:=x+h; if x<>7 then begin y:=(x*x*x+5*x-8)/(x-7); writeln(x:5:1,' ',y:8:3); end else writeln(x:5:1,' функция не определена'); end; end.
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
const n=34; begin // 1 var R:=ArrRandom(n,-8,8); R.Println; // 2 var b:=R.Slice(Trunc(0.75*n)-1,3); Writeln('Ср.гармоническое= ',b.Count/b.Aggregate(0.0,(x,y)->x+1.0/y)); // 3 var m:=R.Batch(n div 3).ToArray[1].Where(x->x.IsEven).MinBy(x->abs(x)); Writeln('Минимальный по модулю= ',m); // 4 var R2:=R.Select((x,i)->(x,i)).Batch(n div 2).ToArray; var r21:=R2[0].Where(x->x[0]<0).OrderBy(x->sqr(x[0])); var ind:=r21+R2[1].Where(x->x[0]<0).OrderBy(x->sqr(x[0])).ToArray; var ind1:=ind.UnZipTuple; var aVal:=ind1[0].ToArray; var aInd:=ind1[1].Sorted.ToArray; for var i:=0 to aVal.Count-1 do R[aInd[i]]:=aVal[i]; R.Println end.
var x,y:real; i,n:integer;
begin
n:=round((xk-x0)/h)+1;
x:=x0-h;
for i:=1 to n do
begin
x:=x+h;
if x<>7
then begin y:=(x*x*x+5*x-8)/(x-7); writeln(x:5:1,' ',y:8:3); end
else writeln(x:5:1,' функция не определена');
end;
end.
Результат (для h=1.0):
-10.0 62.235
-9.0 48.875
-8.0 37.333
-7.0 27.571
-6.0 19.538
-5.0 13.167
-4.0 8.364
-3.0 5.000
-2.0 2.889
-1.0 1.750
0.0 1.143
1.0 0.333
2.0 -2.000
3.0 -8.500
4.0 -25.333
5.0 -71.000
6.0 -238.000
7.0 функция не определена
8.0 544.000
9.0 383.000
10.0 347.333
11.0 344.500
12.0 356.000
13.0 375.667