О и я кажется разобрался в чем у меня проблема была, последний интервал не выводился на экран т.к. в цикле я сначала вывожу на экран, а потом уже интервал меняется и следовательно цикл заканчивается не показав последний найденный интервал, я вывел его на экран уже после цикла, и кстати, мне кажется корень правильнее найти вот так:
Изменения пометил синим. т.к. "с" мы присвоили значение вычисленное из предпоследнего интервала, а после уже нашли итоговый интервал. Я и добавил после цикла то что мне показалось нужным. Верно ли так?
Repeat
writeln('[',a:1:5,';',b:1:5,']');
writeln(txt,'[',a:1:5,';',b:1:5,']');
c:=(a+b)/2;
if G(a)*G(c)<0 then b:=c else a:=c;
Until b-a<Eps;
c:=(a+b)/2;
writeln('[',a:1:5,';',b:1:5,']');
EQRoot:=c;
end;