Выводить обычные и рекуррентные способы решения функций. Перевод кода Delphi - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста перевести этот код в C#. Задача состоит в том что должен выводить обычные и реккурентные способы решения функций - e^x, ln(x) через ln(1+x) и cos(x). Дисциплина называется числовые методы. Не обязательно в form, просто консольное сойдет.
Листинг программы
  1. var
  2. Form1: TForm1;
  3. implementation
  4. {$R *.dfm}
  5. function fact(n:cardinal):extended;
  6. var
  7. f:extended;
  8. i:cardinal;
  9. begin
  10. if n=0 then f:=0 else f:=1;
  11. for i:=2 to n do
  12. f:=f*i;
  13. result:=f;
  14. end;
  15. function stepen(a:extended;n:integer):extended;
  16. var
  17. i:integer;
  18. begin
  19. result:=1;
  20. for i:=1 to n do
  21. result:=result*a;
  22. end;
  23. procedure TForm1.Button1Click(Sender: TObject);
  24. var
  25. s,s2,a,x,p,an,eps,sor,t:extended;
  26. n,i,k:integer;
  27. ps:boolean;
  28. begin
  29. sor:=0;
  30. s:=0;
  31. ps:=true;
  32. if edit1.text<>'' then begin
  33. x:=strtofloat(edit1.text);
  34. eps:=strtofloat(edit3.text);
  35. case radiogroup1.ItemIndex of
  36. 0:begin
  37. sor:=exp(x);
  38. if x<0 then begin x:=x*(-1);ps:=false;end;
  39. case radiogroup2.ItemIndex of
  40. 0:begin //0
  41. s:=1+x;
  42. i:=2;
  43. an:=x;
  44. p:=1;
  45. repeat
  46. x:=x*an; //âîçâåäåГ*ГЁГҐ Г± ГІГҐГЇГҐГ*Гј
  47. p:=p*i;
  48. a:=x/p;
  49. s:=s+a;
  50. inc(i);
  51. until abs(a)<=eps;
  52. end;
  53. 1:begin
  54. a:=1;
  55. i:=1;
  56. s:=a;
  57. repeat
  58. a:=a*x/i;
  59. s:=s+a;
  60. inc(i);
  61. until abs(a)<=eps;
  62. end;
  63. end;
  64. if ps=false then s:=1/s;
  65. end;
  66. 1:begin
  67. x:=abs(x);
  68. while abs(x)>pi do
  69. begin
  70. if x>pi then x:=x-pi else x:=x+pi;
  71. end;
  72. sor:=cos(x);
  73. s:=1;
  74. n:=0;
  75. repeat
  76. n:=n+2;
  77. a:=power(x,n)*power(-1,n div 2)/fact(n);
  78. s:=s+a;
  79. until (abs(a)<=eps);
  80. end; //1
  81. 2:begin //2 ln(x+1)
  82. if x>-1 then
  83. begin
  84. sor:=ln(x+1);
  85. an:=x+1;
  86. k:=0;
  87. if an>2 then
  88. repeat
  89. an:=an/2;
  90. inc(k);
  91. until an<2;
  92. x:=an-1;
  93. i:=1;
  94. s:=x;
  95. n:=2;
  96. repeat
  97. i:=-i;
  98. a:=i*power(x,n)/n;
  99. inc(n);
  100. s:=s+a;
  101. until abs(a)<=eps;
  102. s:=k*ln(2)+s;
  103. end;
  104. end;
  105. end; end;
  106. edit4.Text:=floattostr(s);
  107. edit5.Text:=floattostr(sor);
  108. end;
  109.  
  110. end.

Решение задачи: «Выводить обычные и рекуррентные способы решения функций. Перевод кода Delphi»

textual
Листинг программы
  1. function stepen(a:extended;n:integer):extended;
  2. var
  3.  i:integer;
  4. begin
  5.  result:=1;
  6.  for i:=1 to n do
  7.   result:=result*a;
  8. end;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут