Ĺadny brzuch
Witam
Mam pewien problem nad którym siedzę już dłuższy czas i nie mogę go rozwiązać. Czytalem rożne podarniki, ale niewiele mi pomogły, dlatego postanowiłęm sie zwrocić z tym pytaniem do osób dobrze znających sie na sprawie.
Mam program dotyczący metody bisekcji. Jednak wywala mi on komunikat:
identifier redeclared: "bisekcja"
Mógłby ktoś zerknać i powiedzieć w czym problem? Oto kod programu:
program bisekcja; uses SysUtils; function funk(x:real) : real; begin //funk Exp(x*Ln(1/3))-6*sqrt(x)+8*x; //funk:=(Exp(3*Ln(x))-6*Exp(2*Ln(x))-7*x+2); funk:=(x*x*x) - (6*(x*x))-(7*x)+2; end; function bisekcja(a,b, dokl : real; var i : integer) : real; var fun1, x : real; begin i:=0; if (abs(funk(a))<dokl) then bisekcja:=a else if (abs(funk(B))<dokl) then bisekcja:=b else repeat begin if (a=B) then begin writeln('Nie ma w tym przedziale'); break; end else begin x:=(a+B)/2.0; //writeln('x = ',x,' a = ', a ,' b = ', B); i:=i+1; fun1:=funk(x); if (fun1=0) then break; if (fun1 > 0) then a:=x else b:=x; end; end; until (abs(fun1) < dokl); bisekcja:=x; //end end; var a,b,dokl : real; i: integer; BEGIN writeln('Podaj dokladnosc'); readln(dokl); writeln('podaj zakres a'); readln(a); writeln('podaj zakres b'); readln(B); writeln; writeln('wynik = ', bisekcja(a,b,dokl,i):0:6); writeln('ilosc = ', i); END.
Użytkownik Smbd_smn edytował ten post 11 styczeń 2009, 16:01
metoda, zmienna, funkcja, procedura, klasa, itp nie mogą się nazywać tak samo jak program
Hym... ciekawa sprawa bo wczesniej gdy zmieniałem nazwę programu to mi wywalało jakoś kolejny błąd. W koncu jakimś cudem zadziałało i jest OK. Dzięki wielkie za poradę. Dzięki temu skupiłem sie jedynie na danym problemie ;)
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Mam pewien problem nad którym siedzę już dłuższy czas i nie mogę go rozwiązać. Czytalem rożne podarniki, ale niewiele mi pomogły, dlatego postanowiłęm sie zwrocić z tym pytaniem do osób dobrze znających sie na sprawie.
Mam program dotyczący metody bisekcji. Jednak wywala mi on komunikat:
identifier redeclared: "bisekcja"
Mógłby ktoś zerknać i powiedzieć w czym problem? Oto kod programu:
program bisekcja; uses SysUtils; function funk(x:real) : real; begin //funk Exp(x*Ln(1/3))-6*sqrt(x)+8*x; //funk:=(Exp(3*Ln(x))-6*Exp(2*Ln(x))-7*x+2); funk:=(x*x*x) - (6*(x*x))-(7*x)+2; end; function bisekcja(a,b, dokl : real; var i : integer) : real; var fun1, x : real; begin i:=0; if (abs(funk(a))<dokl) then bisekcja:=a else if (abs(funk(B))<dokl) then bisekcja:=b else repeat begin if (a=B) then begin writeln('Nie ma w tym przedziale'); break; end else begin x:=(a+B)/2.0; //writeln('x = ',x,' a = ', a ,' b = ', B); i:=i+1; fun1:=funk(x); if (fun1=0) then break; if (fun1 > 0) then a:=x else b:=x; end; end; until (abs(fun1) < dokl); bisekcja:=x; //end end; var a,b,dokl : real; i: integer; BEGIN writeln('Podaj dokladnosc'); readln(dokl); writeln('podaj zakres a'); readln(a); writeln('podaj zakres b'); readln(B); writeln; writeln('wynik = ', bisekcja(a,b,dokl,i):0:6); writeln('ilosc = ', i); END.
Użytkownik Smbd_smn edytował ten post 11 styczeń 2009, 16:01
metoda, zmienna, funkcja, procedura, klasa, itp nie mogą się nazywać tak samo jak program
Hym... ciekawa sprawa bo wczesniej gdy zmieniałem nazwę programu to mi wywalało jakoś kolejny błąd. W koncu jakimś cudem zadziałało i jest OK. Dzięki wielkie za poradę. Dzięki temu skupiłem sie jedynie na danym problemie ;)