Mám řadou zadanou funkci suma (od k=1,do n) sin(1/k)*sin(k*x). V zadaném intervalu mám vypsat funkční hodnoty pro 3 daná n. Napsal jsem takovýto program:
function F(n:integer;x:real):real;
var F1:real;
k:integer;
const n1=3;
n2=7;
n3=33;
begin
k:=0;
F1:=0;
if n=n1 then
begin
while k<=n1 do
begin
k:=k+1;
F1:=F1+sin(1/k)*sin(k*x);
end;
end
else if n=n2 then
begin
while k<=n2 do
begin
k:=k+1;
F1:=F1+sin(1/k)*sin(k*x);
end;
end
else if n=n3 then
begin
while k<=n3 do
begin
k:=k+1;
F1:=F1+sin(1/k)*sin(k*x);
end;
end;
F:=F1;
end;
var x:real;
const min=-4;
max=4;
bodu=1000;
begin
x:=min;
while x<=max do
begin
x:=x+(abs(min)+max)/bodu;
writeln(x,' ',F(3,x),' ',F(7,x),' ',F(33,x));
end;
end.
Problém je v tom, že ta funkce by měla počítat součet pro libovolné hodnoty n (a konkrétní n, která chci, se mají asi zadávat až v těle programu), což nevím, jak udělat. Děkuji za pomoc