c# – Fortran函数说明
发布时间:2020-12-16 00:03:25 所属栏目:百科 来源:网络整理
导读:我在Fortran中有这个功能,我试图用C#重新编码它 C **************************************************************** C FUNCTION POLY C***************************************************************** FUNCTION POLY(N,A,X) DIMENSION A(N) C POLY =
我在Fortran中有这个功能,我试图用C#重新编码它
C **************************************************************** C FUNCTION POLY C***************************************************************** FUNCTION POLY(N,A,X) DIMENSION A(N) C POLY = 0. L = N DO 1 K = 1,N POLY = POLY*X + A(L) 1 L = L-1 RETURN END C***************************************************************** 我发现DIMENSION A(N)创建了N个值的向量,但是我们已经从函数参数中得到了一个变量A,这是否意味着数组值都等于A?如果是,那么A(N)的用途是什么. 解决方法FUNCTION POLY(N,X) ! implicitly real (float) function poly(int n,int a,real x) DIMENSION A(N) ! shape A as 1d array of n values in this scope C ! say nothing (blank comment) POLY = 0. ! initialise return variable to float value 0 L = N ! set L (implicitly integer) to n DO 1 K = 1,N ! for(int k=1; k<=n; ++k) POLY = POLY*X + A(L) ! update return variable 1 L = L-1 ! decrement L RETURN ! return current value for poly END 所以用c语法: float poly(int n,float x) { // redim a(n) float result = 0; int l = n; for(int k=1; k <= n; ++k) { result = result*x + a(l); --l; } return result; } 不翻译的位是将A重新定义为数组.在C中,您将传递一个指针并将其用作数组,而在C/C++#中,您可能会传递具有自己的length属性的类似矢量的结构. 在C#中,使用列表: float poly(List<float> coeffs,float x) { float result = 0; for(int i=coeffs.Count-1; i >= 0; --i) { result = result*x + coeff[i]; } return result; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |