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.