Jsem to ale trouba, řikám, že mi to nemyslí. Díky moc, už to funguje... =)) jupí.
Příspěvky odeslané z IP adresy 95.85.252.–
Zkratka, zadáli uživatel stejné hodnoty, jako jsou následně níže uvedeny, vyjde naprosto odlišné číslo. a já nechápu proč. Něco mi stále uniká.
Tak, zkusil jsem něco vytvořit, ale mám problém. Zadám-li konkrétní hodnoty koeficientů u jednotlivých mocnin neznámé x, vše se v pořádku vypočítá. Zadám-li hodnoty koeficientů ručně, vypočíta se výsledná hodnota chybně. Nevím proč, pořád něco přehlížím, už mi to nemyslí... Prosím, pomozte, kde dělám chybu ?
Totot je onen nefunkční program (chybný výpočet)
type
stupen=array[0..20] of real;
var
a,b:stupen;
x,s:real;
n:integer;
d:integer;
procedure horner(var a,b:stupen;var x,s:real; n:integer);
var
i:integer;
begin
b[0]:=a[0];
for i:=1 to n do b[i]:=a[i]+b[i-1]*x;
s:=b[n];
end;
begin
clrscr;
writeln('zadej stupen polynomu');
read(n);
writeln('zadej hodnotu pro x');
readln(x);
for d:= 0 to n do
begin writeln('zadej koeficient pri x^',n-d);
readln(a[n]);
end;
write('hodnota funkce v bode',x:1:0,' je:');
horner(a,b,x,s,n);
writeln(s:6:2);
readln;
end.
Nahradím-li část kódu od zadávání stupně polynomu až po konec cyklu napevno danými hodnotami -
n:=3;
a[0]:=2;
a[1]:=-6;
a[2]:=2;
a[3]:=-1;
x:=3;
vše funguje, tak jak má (správný výpočet hodnoty v bodě x=3). Nejspíš je chyba naprosto triviální, já ji však prostě nevidím.
Můžete mi pomoci ? díky.
Děkuji za rady.
Ta chyba je můj omyl, v programu to mám správně. Jsem už zvyklý používat takovéto značení, ale chápu, že je asi méně praktické. Budu-li v budoucnu zde opět žádat o rady, určitě se Vaší připomínkou inspiruji.
Jdu se pokusit o řešení dle vašich rad, nastane-li nějaký problém, asi se opět ozvu, Prozatím díky.
Zdravím, pokud mám vyřešenou metodu půlení intervalu za pomoci použití hornerova schématu, jak jej mám použít samotné, aby fungovalo ?
program ...;
var a: array [0..50]of real;
function Horner (Hc:real; Hn:integer):real;
var i:integer;
b:real;
begin b:=a[0];
for li:= 1 to Hn do b:=Hc*b+a[i];
Horner:=b;
end;
Potřebuju nějak tuto funkci použít k zadávaní hodnot polynomu a jeho následného výpočtu právě tak, jak to Hornerovo schéma "umí". Jsem začátečník a moc si s tím nevím rady. Můžete mi prosím pomoci ? Děkuji.