在fortran中,我可以输入功能吗?

时间:2013-06-13 01:38:21

标签: fortran

我想在输入时创建一个函数并将其作为函数读取。例如,如果我键入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

2 个答案:

答案 0 :(得分: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

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

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

但是,有些库可以为您完成已经编写的文件。

有关何处寻求更多研究的示例,请参阅this article

答案 1 :(得分:0)

     F(X,Y)=X+Y
 99  READ(*,*)X,Y
     WRITE(*,*)F(X,Y)
     GO TO 99

你输入3 4或3,4而你输出7