Предмет: Информатика,
автор: 1SPK
Написать программу табулирования функции, заданной выражением:
Y = х2 + 4x + 3, когда x изменяется от –2 до 2 с шагом 0.2.
Использовать для вычислений подпрограмму-функцию.
1. Текст программы.
Ответы
Автор ответа:
0
function f(x:real):real;
{ возвращает значение функции y(x) для заданного х }
begin
f:=sqr(x)+4*x+3
end;
var
a,b,h:real; { начало интервала, конец интервала, шаг }
x,y:real; { аргумент и значение функции }
begin
Write('Введите начало интервала, конец и шаг: ');
Read(a,b,h);
x:=a;
while x<=(b+0.001*h) do { 0.001*h добавляем для компенсации погрешности }
begin Writeln('x=',x,', y=',f(x)); x:=x+h end
end.
Тестовое решение.
Введите начало интервала, конец и шаг: -2 2 0.2
x=-2, y=-1
x=-1.8, y=-0.96
x=-1.6, y=-0.84
x=-1.4, y=-0.64
x=-1.2, y=-0.36
x=-1, y=-4.44089209850063E-16
x=-0.8, y=0.44
x=-0.6, y=0.959999999999999
x=-0.4, y=1.56
x=-0.2, y=2.24
x=-2.77555756156289E-16, y=3
x=0.2, y=3.84
x=0.4, y=4.76
x=0.6, y=5.76
x=0.8, y=6.84
x=1, y=8
x=1.2, y=9.24
x=1.4, y=10.56
x=1.6, y=11.96
x=1.8, y=13.44
x=2, y=15
В решении хорошо видно, как часть чисел из-за погрешности машинного представления отображается неточно. В частности, мы "не попали" точно в х=0 и если бы табуляция шла на интервале [-2;0] с шагом 0.2, то при задании в цикле условия x<=b без компенсации погрешности, мы бы не получили значение для х=0.
{ возвращает значение функции y(x) для заданного х }
begin
f:=sqr(x)+4*x+3
end;
var
a,b,h:real; { начало интервала, конец интервала, шаг }
x,y:real; { аргумент и значение функции }
begin
Write('Введите начало интервала, конец и шаг: ');
Read(a,b,h);
x:=a;
while x<=(b+0.001*h) do { 0.001*h добавляем для компенсации погрешности }
begin Writeln('x=',x,', y=',f(x)); x:=x+h end
end.
Тестовое решение.
Введите начало интервала, конец и шаг: -2 2 0.2
x=-2, y=-1
x=-1.8, y=-0.96
x=-1.6, y=-0.84
x=-1.4, y=-0.64
x=-1.2, y=-0.36
x=-1, y=-4.44089209850063E-16
x=-0.8, y=0.44
x=-0.6, y=0.959999999999999
x=-0.4, y=1.56
x=-0.2, y=2.24
x=-2.77555756156289E-16, y=3
x=0.2, y=3.84
x=0.4, y=4.76
x=0.6, y=5.76
x=0.8, y=6.84
x=1, y=8
x=1.2, y=9.24
x=1.4, y=10.56
x=1.6, y=11.96
x=1.8, y=13.44
x=2, y=15
В решении хорошо видно, как часть чисел из-за погрешности машинного представления отображается неточно. В частности, мы "не попали" точно в х=0 и если бы табуляция шла на интервале [-2;0] с шагом 0.2, то при задании в цикле условия x<=b без компенсации погрешности, мы бы не получили значение для х=0.
Автор ответа:
0
ну это на паскале
Автор ответа:
0
На питое не думаю, что была бы данная проблема.
Автор ответа:
0
У Вас какая-то странная манера комментировать. Человек попросил программу на Паскале, Вы пишете про Питон... Хорошо еще, не про маму с папой...
Автор ответа:
0
всем спасибо за решение
Автор ответа:
0
Для "спасибо" тут есть кнопочка синяя)
Похожие вопросы
Предмет: Химия,
автор: kostivabohdana
Предмет: Русский язык,
автор: cata995737
Предмет: География,
автор: aliilybaev2
Предмет: Химия,
автор: fortuna1200