[PASCAL] Bisekcja - pomocy!


(Bolero16) #1

Witam.

Mam za zadanie napisać program szukający miejsca zerowego przy pomocy bisekcji. Posiedziałem trochę i się potrudziłem, w końcu program udał się uruchomić. Problem w tym, że pętli się w nieskończoność z dziwnymi wartościami. Co mam źle? pozdro

program albert;

function f(x:real):real;

begin

f:=5*(x*x*x*x)-3*(x*x)+0.1;

end;

var

a, b, c, Z : real;

begin

writeln('Program ma za zadanie wyznaczenie miejsca zerowego z okreslona dokladnoscia Z w przedziale [a]


(Grzelix) #2

wartości b i a są stałe:

  1. wczytanie

    write(‘Podaj wartosc a=’); read(a);

    write(‘Podaj wartosc b=’); read(b);

Modyfikacja zmiennej c:

c:=(a+b)/2; 


if f(a)*f(c)<0 then 

c:=b 

else 

c:=a;

innych przypisać nie widzę, czyli nigdzie nie zmieniasz wartości a lub b na mój gust powinno być:

c:=(a+b)/2; 


if f(a)*f(c)<0 then 

b:=c

else 

a:=c;

(Bolero16) #3

Dzięki WIelkie :wink:

Ale banalny błąd