Написать программу табулирования функции, заданной выражением: 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.
В решении хорошо видно, как часть чисел из-за погрешности машинного представления отображается неточно. В частности, мы "не попали" точно в х=0 и если бы табуляция шла на интервале [-2;0] с шагом 0.2, то при задании в цикле условия x<=b без компенсации погрешности, мы бы не получили значение для х=0.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку