Написать программу табулирования функции, заданной выражением: Y = х2 + 4x + 3, когда x изменяется от –2 до 2 с шагом 0.2. Использовать для вычислений подпрограмму-функцию.1. Текст программы.

Написать программу табулирования функции, заданной выражением: Y = х2 + 4x + 3, когда x изменяется от –2 до 2 с шагом 0.2. Использовать для вычислений подпрограмму-функцию. 1. Текст программы.
Гость
Ответ(ы) на вопрос:
Гость
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.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы