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