Pereiti prie turinio

Rekomenduojami pranešimai

gal galetumete padeti sukurt stai tokia programa su c arba pascal kalba.

 

uzduotis:

 

Sudarykite programą lygties f(x)=0 sprendimui iteratyviu būdu dichotomijos (dalybos pusiau)

metodu. Kiekvienoje iteracijoje atkarpa [a,b] dalinama pusiau ir pasirenkama ta atkarpos pusė,

kurios galuose f(x) turi skirtingų ženklų reikšmes.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

na gerai. Pagelbėsiu šiek tiek.

 

{Apsibrėži savo norimą funkciją}

 

function functionName(x : real) : real;

begin

functionName = x ^2 + 3;

end;

 

{pagrindinė programa}

 

aStart = 500;

bStart = -500;

a = aStart;

b = bStart;

 

do

begin

c = (a + b) / 2;

f1 = functionName(a);

f2 = functionName©;

f3 = functionName(b);

 

if abs(f1 - f2) > abs(f1 + f2) then

begin

b = f2;

end;

 

if abs(f2 - f3) > abs(f2 + f3) then

begin

a = f2;

end;

end

 

while f1 = 0 or f2 = 0 or f3 = 0 or abs(f2 - f3) < 0.001 or (a = aStart and b = bStart);

 

if (a = aStart and b = bStart then

println('Sprendinių nėra');

 

if f1 = 0 then

println(f1)

else

if f2 = 0 then

println(f2)

else

if f3 = 0 then

println(f3)

else

println('Apytiksliai ', f2);

 

Nu kažkas tokio. :laugh_xmas: persižiūrėk, pasibandyk, bug'us išgaudyk

 

PS. primiršęs šiek tiek pascal, tai sintaksės klaidas manau išsitaisysi.

Nuoroda į pranešimą
Dalintis kituose puslapiuose
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...