souhlas a hlavne to neni cesta, kterou bych mel postupovat... trochu me to desi, protoze to je 2. nejlehci ukol co tam mame (pry) a ja kvuli tomu uz po druhe odlozil zkousku (:
Příspěvky odeslané z IP adresy 62.245.94.–
#3 q
Hodnoty maji byt mezi -4..4, Taylor udela pekne jen jednu vlnu tehle rady a to pro n=1 (myslim nejaky rozumny, 9 radu). Ta zelena rada na obrazku je pro n=33, tam je to myslim na uz uplne nerealne. Teoreticky mi to prislo ok, ale po prakticke strance to je neuspokojive reseni (muzu ho sem hodit), kazdopadne jak pisi, nejsem zadny programator, takze by se urcite dalo poladit. Jinak predpokladam, ze by mi reseni pomoci Taylora stejne vratil...
Zdravim, mel bych takovy dotaz, doufam, ze jiz neni v nejakem vlaknu zodpovezen. Jsem tak trochu v koncich, je to zakladni ukol na programko a ja to nejak nedavam... Potrebuji aproximovat radu (v priloze), ve ktere se vyskytuji goniometricke funkce, ale nesmim vyuzit funkci sinus/kosinus ci vnorene cykly. Jen scitani, nasobeni, deleni, souctove vzorce. Rady se kresli pro ruzna n (napr. 3, 10, 42). Puvodne jsem zkousel zohybat paraboly a napojit je na sebe, to vedlo k mnoha promarnenym hodinam (: Pak jsem klasicky sahl po aproximaci Taylorem, ktery se take ukazal jako neefektivni, protoze pro velka n bohuzel utika, musel by byt moc vysokych radu. Rada je pouzit de facto souctove vzorce (sin(a+b)=...) pac argumenty rostou aritmetickou radou. Umim udelat "polygonalni kruznici" (viz. nize), ale tim bohuzel koncim. Pokud ji uzitim IF klauzule rozdelim na ctvrtky, tak jde pospojovat do neceho jako sinus/kosinus, ale je to dosti neohrabane a hlavne to neni funkce, je to vypis tabelovanych hodnot. Kazdopadne nejak takhle by se na to asi melo jiti. Nemohl by me prosim nekdo trochu nasmerovat? Vim, ze to neni uplne programovaci task jako spise matematicky, ale ja jsem spatny matematik a jeste mnohem horsi programator, takze to zkousim tady. Diky moc za jakekoli podnetne rady!
program pol_kruz;
const N = 1000;
uhel = 2*Pi/N;
var cos_u,sin_u : real;
cosf, sinf : real;
i : integer;
new_cosf : real;
begin
cos_u := cos(uhel);
sin_u := sin(uhel);
cosf := 1;
sinf := 0;
for i:= 0 to N do begin
writeln(cosf:9:3, ' ', sinf:9:3);
new_cosf := cosf*cos_u-sinf*sin_u;
sinf := cosf*sin_u+sinf*cos_u;
cosf := new_cosf;
end;
readln;
end.