-1

我想在键入时创建一个函数并将其作为函数读取。例如,如果我输入 x+y,那么 f(x,y)=x+y。这可能吗?以下代码不起作用。

real function f(x,y)
real x,y
write(6,*) "type f(x,y)"
read*, f
return
end
4

2 回答 2

1

是的,你可以,但你的语法有点不对劲。

      PROGRAM READFUNC
        REAL x,y,F,res

        res = F(x,y)

        WRITE(*,*) res
      END

      REAL FUNCTION F(x,y)
        REAL x,y

        WRITE (*,*) "Type in"
        READ (*,*) F

        RETURN
      END

请注意,我用 gfortran 编译了这个,所以我不确定它是否使用任何 F90+ 扩展。

编辑阅读您的编辑后,我发现这不是您想要的;你想要某种 eval/parser。一般来说,这不是一件小事。您将不得不进行某种令牌解析工作。

但是,有一些已经编写好的库可以为您执行此操作。

有关在哪里寻找更多研究的示例,请参阅本文。

于 2013-06-13T04:41:01.543 回答
0
     F(X,Y)=X+Y
 99  READ(*,*)X,Y
     WRITE(*,*)F(X,Y)
     GO TO 99

您输入 3 4 或 3,4 并输出 7

于 2013-06-18T03:31:05.450 回答