分享

有趣的物理玩具——Frink编程语言(二)

 新用户5228KeDY 2022-05-31 发布于北京

I have been complimented many times and they always embarrass me; I alwaysfeel that they have not said enough.一受到表扬的时候,总是让我感到特尴尬;因为我觉得他们赞美的不够。

这是Frink的作者在Frink官网上引用的马克·吐温的话。

一、简易直接的Frink集成环境

Frink自带了好几种集成环境,包括网页模式的、JAVA小程序,但是值得尝试的,仍然是JAVA GUI和安卓apkFrink提供了jar发布包,安装了JRE之后,直接就能运行。

单行或多行运行模式:

代码编程模式:

安卓apk安装后,也能得到上述两种模式。安卓下的代码编程模式:

代码编程模式既可以直接运行和调试,也可以保存和调入扩展名为.frink的代码片断运行。好在Frink有很多C/C++JAVAPerl的风格,看看帮助文件就能照猫画虎。

二、一个用Frink写的函数式的二分法求方程根

找了一个简单的python二分法,改一改就放在Frink里了。简单看过帮助之后的练手。

/*

  Frink支持C语言格式的注释

  以下演示粗略的二分法求解方程的根

*/

//以下定义一个自定义函数,可以看到返回值是自动类型的

func[x] := x^4-x^2-1

//定义求解的误差为0.0X,即百分位

epsilon=10^-2

//定义区间ab

a=1.25

b=1.5

//初值

fa=func[a]

fb=func[b]

//求解

OUTERLOOP:

while a<=b

{

  if fa fb>0 //无根直接跳出循环

    {

      println["区间内无根"]

      break OUTERLOOP

    }

  x0=(a+b)/2.

  fx0=func[x0]

  if abs[fx0]<epsilon

    {

      println["所求根为x0= $x0"]

      break OUTERLOOP

    }

  if (fa * fx0 <0)

    {

      b=x0

      fb=fx0

      //注意println函数里面方便的字符插值和数据类型转换

      println["解在左侧,a = $a b = $b x0 = $x0"]

    }

  if (fb * fx0 <0)

    {

      a=x0

      fa=fx0

      println["解在右侧,a = $a b = $b x0 = $x0"]

    }

}

运行看看效果:

实际上Frink官方就带了一个二分法的示例,OOP的,完全JAVA风格,没细看,等有闲。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多