Предмет: Информатика,
автор: alena230196
Написать программу вычисления функции y = (f)x . Заполнить таблицу значений x, y = (f)x при x ∈ [a. b] с шагом h
Приложения:
Ответы
Автор ответа:
1
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
end
end.
Результат:
-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
Внимание! Если программа не работает, обновите версию!
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
end
end.
Результат:
-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
Похожие вопросы
Предмет: Алгебра,
автор: mxxxlove
Предмет: Геометрия,
автор: shat101
Предмет: История,
автор: senatorman293
Предмет: Математика,
автор: GLAY2003
Предмет: Биология,
автор: Kamilla140304