Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.
Nástěnka
❗22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
❗04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
❗23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.
Nejste přihlášen(a). Přihlásit
Ahoj, píšu program, který pomocí Taylorova rozvoje spočte hodnotu funkce sin pro nějaký úhel, který zadá uživatel. Uživatel také zadá s jakou to chce přesností. Přesnost honodtím tak, že naše hodnota je přesná pokud součet posledních dvou prvků součtu je menší než epsilon. Můj kód vypadá takto:
Proč mi to prosím nefuguje?
program taylor;
var pomoc:real;
alfa:integer;
i:integer;
x:real;
epsilon:real;
suma:real;
begin
Writeln('Zadejte velikost uhlu alfa ve stupnich:');
Readln(alfa);
Writeln('Zadejte velikost povolene chyby: ');
Readln(epsilon);
x:=(alfa*pi/180);
pomoc:=x;
suma:=x;
i:=2;
while pomoc-pomoc*((i-1)*(i-1)-(i-1))/(x*x)>=epsilon do
begin
If i mod 2 = 1 then begin
pomoc:=abs(pomoc)*(x/i)*(x/(i-1));
If i mod 4 = 3 then pomoc:=-pomoc;
suma:=suma + pomoc;
end;
i:=i+1
end;
writeln(suma:2:5);
readln;
end.
Offline
Ahoj ↑ JohnNash:,
problém bude niekde vo vyhodnocovaní tej presnosti. Ja bz som končila vtedy, keď absolútna hodnota člena, ktorý chcem pripočítať k sume, je menšia než zadané kladné epsilon, prípadne keď absolútna hodnota súčtu posledných dvoch členov je menšia než epsilon... Nechýba tam tá absolútna hodnota?
Offline
Zdravím,
několik malých poznámek:
1) Prosím, snaž se kód dávat do tagů code.
2) Pokud deklarujeme proměnné stejného typu, můžeme je dát na jeden řádek a oddělit čárkami.
3) Kde máme definované Ludolfovo číslo?
4) Píšeš, že Ti to nefunguje, ale co nefunguje? Nejde to zkompilovat, nebo to háže špatný výsledek?
Offline
↑ JohnNash:
Těch chyb je tam více. Např. podmínka, špatně vyčísovaná proměnná pomoc i by se mělo zvětšovat vždy o 2.
Nicméně tady je funkční program. (trochu upravený a o něco málo doplněný)
Offline