OpenFC是一个实用工具,可以进行各种数学计算、工程计算等,可满足初中生、大学生和各类工程技术职员的大多数需要。OpenFC也是一个编程工具,相信喜好数学的编程喜好者必然会喜欢。
OpenFC是一个开放式的数值计算程序。
OpenFC中的计算使用程序控制方法,其源程序书写格式自由,且具备C++风格的注解。用户可以通过简单的编程便捷地达成他们所需的功能,比如:可以用常规的数学函数进行整数、实数和复数表达式的计算;进行常量概念;用字符串;用数组;用逻辑函数;用if判断语句、which选择计算语句、for循环、dowhile循环等进行步骤控制等等。
借用本系统好了解OpenFC、Forcal32W.dll和MForcal32W.dll的详细情况。
·一个开放式数值计算工具,可以便捷地进行功能扩展。
·演示FORCAL的要紧功能。
·演示MForcal的全部功能。
OpenFC是一个开放式的数值计算程序,由Forcal32W.dll和MForcal32W.dll提供支持。
OpenFC可以编译运行具备固定格式的源程序(字符串表达式),源程序中可以用C++风格的注解。源程序中可以用的运算符有+、-、*、/、^、、=、、=、==、!=、、|、!、++、--等等,具备数值计算、逻辑运算、关系运算、字符数据处置、步骤控制、函数调用等很多的可编程功能。
OpenFC是开放式的,比较容易进行功能扩展。OpenFC通过加载Forcal扩展动态库进行功能扩展,这类库可以用VC、Delphi或者Fortran等高级语言进行撰写。
OpenFc可以对源程序进行模块化编译,可以打开多个文件同时进行操作,提升了运行效率。
OpenFC允许用户将常见的计算概念为命令,通过命令菜单实行计算。命令菜单是OpenFC倡导的计算方法。
在OpenFC中,用户也可以自概念窗口,用户在窗口中可以用编辑框、静态文本、普通按钮、单选按钮、复选框、组框、位图等控件。用户自概念命令和用户自概念窗口改变了人机界面,强烈推荐用。
用户可通过工作区文件对OpenFc的工作环境进行配置,如设置需要加载的扩展动态库、设置模块、设置命令、设置常量等等,所有可根据我们的爱好和实质工作需要进行配置。
现在,通过Forcal扩展动态库为OpenFC增加的功能有:解非线性方程(组)、多元积分、微分方程求解、函数图形绘制(由OpenGL图形库提供支持,可以绘制精美的二维和三维数学函数图形)等等。
[2010.02.10] 增加AutoMfc程序。
[2010.01.20] 增加Forcal优化动态库FcOpt。
[2009.11.08] 增加OpenFC的语法高亮功能,可通过工作区文件自概念语法高亮的Forcal关键词。现在的问题:撤消及恢复功能否用。
[2009.11.01] OpenFC界面由RichEdit提供支持。
[2009.08.01] OpenFC由Forcal32W.dll和MForcal32W.dll提供支持,升级为OpenFC V6.0。
OpenFC由Forcal32W.dll和MForcal32W.dll提供支持,MForcal32W.dll是一个标准的Forcal扩展动态库。MForcal32W.dll可以编译固定格式的Forcal源程序。
用OpenFC需要先知道FORCAL表达式和MForcal的源程序格式。
OpenFC中用的表达式格式与标准的Forcal表达式格式一模一样。
OpenFC中用的源程序格式与标准的MForcal源程序格式一模一样。每个源程序被编译为一个模块。在MForcal中,源程序和模块几乎是近义词。
1.1 源程序的一般格式
在MForcal源文件中,可以有多个FORCAL表达式,表达式之间用分号“;”隔开。 两个连续的分号“;;”表示前面的表达式在实行时不会输出结果。
因为FORCAL数学表达式有三种,即整数表达式、实数表达式和复数表达式。为便于区别,MForcal将以i:开头的表达式作为整数表达式,以r:开头的表达式作为实数表达式,以c:开头的表达式作为复数表达式,缺省为实数表达式。缺省的表达式种类可以重新设置:若表达式以integer:开头,表示自该表达式开始,后面的缺省表达式为整数表达式;若表达式以real:开头,表示自该表达式开始,后面的缺省表达式为实数表达式;若表达式以complex:开头,表示自该表达式开始,后面的缺省表达式为复数表达式。
同时,在源文件中可以进行注解,注解办法与C++语言相似,即:每行两个//后的内容为注解内容;在一行内或者多行之间/*...*/之间的内容为注解内容。注解不是源程序的有效部分,但可以使程序更易读。
举比如下:
//这是一个例子!灰色部分为注解,不会被实行;
i:2.2+3; //以i:开头是整数表达式;
c:sin;//以c:开头是复数表达式;
2.2+3.3;//这是实数表达式。
2+3;/* 从这里开始,连续几行注解:
333+222;
. . . . . . ;
555-222;
*/ sin;
exp;
integer: //设置缺省表达式为整数表达式;
2.2+3;//这是整数数表达式;
可以用加载MForcal的任何一个程序验证以上代码。
1.2 程序的实行
因为表达式有的带有参数,有的不带参数,MForcal在进行处置时,对于有参数的表达式只进行编译,不进行计算。
MForcal只顺序实行不带参数的表达式。假如该表达式以两个连续的分号“;;”结尾,则该表达式只实行,不输出计算结果。
但,假如表达式以冒号“ : ”开头,则无论是有参表达式还是无参表达式,都是只编译,不实行,格式如下:
i:: 2+3;//整数无参表达式,只编译,不实行;
i:: f1=2+3;//整数无参表达式,只编译,不实行;
c:: 2+3i;//复数无参表达式,只编译,不实行;
c:: f2=2+3i; //复数无参表达式,只编译,不实行;
: 2+3; //实数无参表达式,只编译,不实行;
: f3=2+3; //实数无参表达式,只编译,不实行。
无参表达式f1、f2和f3可以在其他可实行的表达式中被调用。
另外,假如无参表达式以感叹号“ ! ”开头,则编译后立即实行,且将来实行模块时不再自动实行。格式如下:
i:! 2+3; //整数无参表达式,编译成功,立即实行,将来不再自动实行;
i:! f1=2+3;//整数无参表达式,编译成功,立即实行,将来不再自动实行;
c:! 2+3i;//复数无参表达式,编译成功,立即实行,将来不再自动实行;
c:! f2=2+3i;//复数无参表达式,编译成功,立即实行,将来不再自动实行;
! 2+3; //实数无参表达式,编译成功,立即实行,将来不再自动实行;
! f3=2+3; //实数无参表达式,编译成功,立即实行,将来不再自动实行;
无参表达式f1、f2和f3可以在其他可实行的表达式中被调用。
1.3 源程序的完整格式
编译时,将源程序中的表达式编译为一个或多个模块,MForcal会对每个模块进行加锁。编译时 第一设置起始模块,也称主模块(并不是Forcal的0#模块,恰恰相反,MForcal不会将任何一个表达式编译为0#模块,概念主模块是为了与源程序中的其他模块相不同),将来每当遇见#MODULE#,开始编译为一个新的模块 ,称为子模块,而每当遇见#END#,回到主模块的编译。即#MODULE#和#END#之间的表达式概念为一个子模块,子模块之间不可以嵌套概念。注意#MODULE#和#END#需要坐落于表达式的开头。 在模块中,以~开头的表达式被编译为公有表达式(全局表达式或全局函数),能被其他模块访问到,其余的表达式均被编译为私有表达式(私有函数),其他模块没办法访问。所有模块的模块号由MForcal或技术员指定,不会重复,也不会被编译为0#模块。在源程序的任何地方,可用指令#USE#调用另一个模块。
模块源文件的格式如下:
//单行注解:模块名:myModule
/*
多行注解:在同一模块源文件中的所有表达式是同一个模块;
多行注解:以~开头的表达式可被其他模块的表达式所访问;
多行注解:不以~开头的表达式只能被该模块的表达式所访问。
*/
#MODULE#//概念一个子模块;
i:a=10+x; //私有函数,只能被该模块的表达式所访问;
c:!b=100+100i; //私有函数,只能被该模块的表达式所访问 ,该表达式是在编译时实行的;
~_c=x-5; //全局函数,任意模块包含本模块均可访问;
~_f=a+b; //全局函数,任意模块包含本模块均可访问;
~i:g=a+_c; //全局函数,任意模块包含本模块均可访问;
#USE# Module1;//用模块Module1;
~_ff+_gg; //函数_ff和_gg在模块Module1中概念;
#END#//子模块概念结束,可缺省;
#MODULE#//概念一个子模块;
i:a=10-x; //私有函数,只能被该模块的表达式所访问;
~ff=a; //全局函数,任意模块包含本模块均可访问;
#END# //子模块概念结束,不可缺省;
_f; //主模块中的表达式。
ff; //主模块中的表达式。
integer://设置缺省表达式为整数表达式;
2.2+3; //这是整数数表达式;
在其他模块中用该模块的格式如下:
#USE# myModule; //关键词USE需要为大写,myModule是模块名字;
_f+g; //调用myModule模块中概念的函数;
1.4 编译指令的地方和次序
在MForcal中用的#MODULE#、#END#、#USE#、integer:、real:、complex:、~、i:、r:、c:、:、!等称为编译指令,用以确定一个表达式的种类、所在模块、是不是私有函数等属性。这类编译指令需要坐落于表达式的开头,有的指令能同时用,有的指令不可以同时用,并且在用时有肯定的次序,按先后顺序依次为:
1)编译指令#MODULE#、#END#、#USE#、integer:、real:和complex:之间没先后顺序,可混合用,但这类指令需要在表达式的最前面,一般单独成行。
2)~表示该表达式是一个全局表达式,不然是私有表达式。
3)编译指令i:、r:、c:不可以混合用,只能用其中的一个,强制指定表达式的种类。假如都没用,表达式按缺省的种类进行编译。
4)编译指令:、!不可以混合用,只能用其中的一个。:表示该表达式只编译,不实行;!表示该表达式编译后立即实行,但将来实行模块时不再自动实行。
假如表达式前没用任何一个编译指令,则按缺省表达式的种类编译为私有表达式,若该表达式是无参表达式,则实行模块时将自动实行。
合适于:
1、初级用户:用OpenFC命令进行计算、能用简单的FORCAL表达式进行计算。
2、中级用户:熟练用FORCAL表达式进行计算。
3、高级用户:能用C++、Delphi、FORTRAN等高级语言撰写Forcal扩展动态库。
TAG标签:OpenFC(1)
转载请说明来源于当下软件园(https://www.gpsdan.com)
本文地址:https://www.gpsdan.com/soft/3515.html
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com