|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.12.2009, 11:08 | #1 |
Регистрация: 13.04.2008
Сообщений: 9
|
Конвертация Delphi->C#
Может кто-нибудь помочь перевести Delphi код в C# ? код очень простой, но С# не знаю..
const CountF=3; type Arr=array[0..1] of real; Arr2=array [0..1,0..1] of real; Arr3=array [0..2,0..1] of real; ArrSimp=array[0..2] of real; type TLogic= class public procedure Dihotomiya(a,b,eps:real;var Iter:Integer;var AnswerX:real;var Answerf:real); procedure Newton(x,y,eps:real;var Iter:Integer;var AnswerX:Arr;var Answerf:real); procedure Simplex(eps,x,y:real;var Answer:Arr; var Answerf:real;var Iter:integer); private function f(x:real):real; function Round(x,eps:real):real; function df(x:Arr):Arr; function proizv(x:Arr;y:Arr2):Arr; function Gesse(x:Arr):Arr2; function df2(X11:Arr2;x:Arr):Arr2; function SimpF(x,y:real): real; end; implementation procedure TLogic.Dihotomiya(a,b,eps:real;var Iter:Integer;var AnswerX:real;var Answerf:real); var x1,x2,delta,f1,f2,EpsMeth:real; Begin Iter:=0; delta:=eps/4; repeat Iter:=Iter+1; x1:=(a+b-delta)/2; x2:=(a+b+delta)/2; f1:=f(x1); f2:=f(x2); if f1<=f2 then b:=x2 else a:=x1; EpsMeth:=(b-a)/2; until EpsMeth<=eps; AnswerX:=(a+b)/2; Answerf:=f(AnswerX); end; function TLOgic.f(x:real):real; var Temp:real; Begin Temp:=Exp(-x)+Math.Power(x,4); Result:= Temp; end; procedure TLogic.Newton(x,y,eps:real;var Iter:Integer;var AnswerX:Arr;var Answerf:real); var it1:integer; x0,x1: Arr; //ïåðåìåííûå df1,proiz:Arr; Gess:Arr2; Begin Iter:=0; x1[0]:=x; x1[1]:=y; repeat x0:=x1; Gess:=Gesse(x0); Iter:=Iter+1; df1:=df(x0); Gess:=df2(Gess,x0); proiz:=proizv(df1,Gess); for it1:=0 to Length(x1)-1 do x1[it1]:=x0[it1]- proiz[it1]; until ((Abs(x1[0]-x0[0])<=eps) AND ((Abs(x1[1]-x0[1])<=eps)) OR (Iter=50)); AnswerX:=x1; Answerf:=0; end; function TLogic.df(x:Arr):Arr; var Temp:Arr; Begin // Temp[0]:=3*SQR(x[0])-3; // Temp[1]:=2*x[1]-2; // Temp[0]:=8*x[0]-4*x[1]+1; // Temp[1]:=6*x[1]-4*x[0]; Temp[0]:=2*x[0]-40*x[0]*(x[1]-Sqr(x[0]))-2; Temp[1]:=20*x[1]-20*Sqr(x[0]); //Temp[0]:=(exp(-0.5*x[0])*(-0.5-0.5*sqr(x[0])+2*x[0]))*sin(x[1]); //Temp[1]:=(1+sqr(x[0]))*exp(-0.5/x[0])*cos(x[1]); Result:=Temp; end; function TLogic.proizv(x:Arr;y:Arr2):Arr; var Temp:Arr; i,j:integer; Begin for i:=0 to Length(x)-1 do Temp[i]:=0; for i:=0 to Length(x)-1 do for j:=0 to Length(x)-1 do Temp[i]:=x[j]*y[j,i]+Temp[i]; Result:=Temp; end; function TLogic.Gesse(x:Arr):Arr2; var Temp:Arr2; Begin Temp[0,0]:=120*Sqr(x[0])-40*x[1]+2; Temp[0,1]:=-40*x[0]; Temp[1,0]:=Temp[0,1]; Temp[1,1]:=20; result:=Temp; End; function TLogic.df2(X11:Arr2;x:Arr):Arr2; var i,j:integer; TempVal1,Opred:real; Begin Opred:=X11[0,0]*X11[1,1]-X11[1,0]*X11[0,1]; if Opred<>0 then Begin TempVal1:=X11[0,0]; X11[0,0]:=X11[1,1]; X11[1,1]:=TempVal1; TempVal1:=X11[1,0]; X11[1,0]:=X11[0,1]; X11[0,1]:=TempVal1; for i:=0 to Length(x)-1 do for j:=0 to Length(x)-1 do X11[i,j]:=Math.Power(-1,i+j) *X11[i,j]/Opred; end; Result:=X11; end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Конвертация pdf в xls | Veroonya | Компоненты Delphi | 11 | 11.01.2016 17:06 |
Конвертация файла в БД | Mixasik | PHP | 3 | 21.11.2009 21:35 |
Конвертация раскладки текста (Delphi) | ekzobyte | Помощь студентам | 1 | 24.05.2009 17:29 |
Конвертация одной БД в другую | Старовъръ | БД в Delphi | 2 | 19.08.2008 12:26 |
конвертация db в dbf? | Eduard | БД в Delphi | 2 | 20.09.2007 13:24 |