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.
Var a:array[0..100] of integer; <span>i,n:integer; </span> <span>begin </span> <span>read(n); </span> <span>for i:=0 to n-1 do begin read(a[i]); </span> <span>if i mod 2=0 then a[i]:=1 else </span> <span>a[i]:=i mod 5; </span> <span>end; </span> <span>for i:=0 to n-1 do write(a[i],' '); </span> <span>end.</span>