Выводить обычные и рекуррентные способы решения функций. Перевод кода Delphi - C#
Формулировка задачи:
Помогите пожалуйста перевести этот код в C#. Задача состоит в том что должен выводить обычные и реккурентные способы решения функций - e^x, ln(x) через ln(1+x) и cos(x). Дисциплина называется числовые методы. Не обязательно в form, просто консольное сойдет.
Листинг программы
- var
- Form1: TForm1;
- implementation
- {$R *.dfm}
- function fact(n:cardinal):extended;
- var
- f:extended;
- i:cardinal;
- begin
- if n=0 then f:=0 else f:=1;
- for i:=2 to n do
- f:=f*i;
- result:=f;
- end;
- function stepen(a:extended;n:integer):extended;
- var
- i:integer;
- begin
- result:=1;
- for i:=1 to n do
- result:=result*a;
- end;
- procedure TForm1.Button1Click(Sender: TObject);
- var
- s,s2,a,x,p,an,eps,sor,t:extended;
- n,i,k:integer;
- ps:boolean;
- begin
- sor:=0;
- s:=0;
- ps:=true;
- if edit1.text<>'' then begin
- x:=strtofloat(edit1.text);
- eps:=strtofloat(edit3.text);
- case radiogroup1.ItemIndex of
- 0:begin
- sor:=exp(x);
- if x<0 then begin x:=x*(-1);ps:=false;end;
- case radiogroup2.ItemIndex of
- 0:begin //0
- s:=1+x;
- i:=2;
- an:=x;
- p:=1;
- repeat
- x:=x*an; //âîçâåäåГ*ГЁГҐ Г± ГІГҐГЇГҐГ*Гј
- p:=p*i;
- a:=x/p;
- s:=s+a;
- inc(i);
- until abs(a)<=eps;
- end;
- 1:begin
- a:=1;
- i:=1;
- s:=a;
- repeat
- a:=a*x/i;
- s:=s+a;
- inc(i);
- until abs(a)<=eps;
- end;
- end;
- if ps=false then s:=1/s;
- end;
- 1:begin
- x:=abs(x);
- while abs(x)>pi do
- begin
- if x>pi then x:=x-pi else x:=x+pi;
- end;
- sor:=cos(x);
- s:=1;
- n:=0;
- repeat
- n:=n+2;
- a:=power(x,n)*power(-1,n div 2)/fact(n);
- s:=s+a;
- until (abs(a)<=eps);
- end; //1
- 2:begin //2 ln(x+1)
- if x>-1 then
- begin
- sor:=ln(x+1);
- an:=x+1;
- k:=0;
- if an>2 then
- repeat
- an:=an/2;
- inc(k);
- until an<2;
- x:=an-1;
- i:=1;
- s:=x;
- n:=2;
- repeat
- i:=-i;
- a:=i*power(x,n)/n;
- inc(n);
- s:=s+a;
- until abs(a)<=eps;
- s:=k*ln(2)+s;
- end;
- end;
- end; end;
- edit4.Text:=floattostr(s);
- edit5.Text:=floattostr(sor);
- end;
- end.
Решение задачи: «Выводить обычные и рекуррентные способы решения функций. Перевод кода Delphi»
textual
Листинг программы
- function stepen(a:extended;n:integer):extended;
- var
- i:integer;
- begin
- result:=1;
- for i:=1 to n do
- result:=result*a;
- end;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д