PascalABC.NET 3.4.0, сборка 1670 от 23.05.2018Внимание! Если программа не работает, обновите версию!1. Современное решение, возможно, на первый взгляд непонятное, но зато "в одну строку"begin SeqWhile(-2.0,t->t+0.25,t->t<=2.0) .ForEach(x->Writeln(x:4:1,(x<-1 ? -3*x+2+Sin(x) : x<0 ? Abs(x) : x*Ln(x+1)):16:12))end.
2. "Школьный" вариантvar x,y:real;begin x:=-2; while x<=2 do begin if x<-1 then y:=-3*x+2+Sin(x) else if x<0 then y:=Abs(x) else y:=x*Ln(x+1); Writeln(x:4:1,y:16:12); x:=x+0.25 endend.
Результат:-2.0 7.090702573174-1.8 6.266014053126-1.5 5.502505013396-1.3 4.801015380644-1.0 1.000000000000-0.8 0.750000000000-0.5 0.500000000000-0.3 0.250000000000 0.0 0.000000000000 0.3 0.055785887829 0.5 0.202732554054 0.8 0.419711840952 1.0 0.693147180560 1.3 1.013662770270 1.5 1.374436097811 1.8 1.770301595437 2.0 2.197224577336