跳到内容
FF

frtm for Android APK

发行人: Tomohide NANIWA
Android APK $1.00
下载 0 下载量
文件类型APK
发行人 Tomohide NANIWA
发布日期2019年10月19日
添加日期2019年10月19日
操作系统要求Android
要求Requires Android
下载总数0
价钱$1.00

描述

Frtm(ForTh Modoki)是一款模拟编程语言FORTH的软件。然而,它并不打算重现严格的 FORTH。没有编译器,但用户定义字中的字和常量在注册时会被解释。

还有一些方面与 FORTH 不同:frtm 没有操作返回堆栈的单词,而 frtm 允许对单词进行递归定义。

Frtm 还支持实数的计算。它具有数学函数,如指数、平方根、三角函数、双曲函数、按位运算。所以frtm可以作为科学计算器的替代软件。

表达式的解释将按照逆波兰表示法 (RPN) 进行。 Frtm 有条件分支“if”、循环结构“do-while”和“for-loop”。您还可以通过组合单词来创建一个新单词。

在Android OS上,增加了字典和栈的初始大小的配置,将字典中的单词保存到“单词本”的能力。 “单词书”的数量最多为三个。

有关语言的更详细说明,请参阅日语网页以获得支持。

如果您想免费测试 frtm,请在以下网页尝试 frtm 的 Java 小程序版本:

http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html

***单词示例***

* 两个数字的平均值

: 平均 + 2.0/;

* N 个数字的平均值

: 中殿交换 1 为 rot + 循环交换 1.0 */;

2 4 6 8 10 5 中殿。铬

0 1 2 3 4 5 6 7 8 9 10 SP 中殿。铬

* N 个数字的总体方差

: nvarp dup 1+ copy nave SP nrotr swap dup * over 1 for rot dup * + loop swap 1.0 */SP nrot dup * - ;

2 4 6 8 10 5 无功功率。铬

* N 个数字的无偏方差

: nvar dup 1+ copy nave SP nrotr swap dup * over 1 for rot dup * + loop SP nrot dup * 3 ndup * - swap 1- 1.0 */;

2 4 6 8 10 5 无功。铬

* 2 个数的最大公约数

: gcd do swap over % dup 0 > while drop ;

1001 819 gcd 。铬

* 阶乘 [fact(1)=1, fact(n)=n*fact(n-1)]

** 递归

: factr dup 1=if else dup 1- factr * endif ;

10 因素。铬

** 迭代

: facti 1 swap 1+ 1 for I * loop ;

10 事实。铬

* 斐波那契数列 [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]

** 递归

: fib dup 0= if else dup 1=if else dup 1- fib swap 2 - fib + endif endif ;

30 纤维。铬

** 迭代

: fibi dup 0= if else 0 1 rot 1 for swap over + loop swap drop endif ;

30 菲比。铬

*图形

** 填充矩形

: 框 16 0 for I setcol 10 20 I * + dup 100 100 rectf loop ;

通用盒子

: hls 16 0 for I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf 循环;

通用汽车

** 递归绘图(科赫曲线)

:前5副本掉落;

: genx 3 ndup 6 ndup - * 减 100/交换 4 ndup 7 ndup - * 100/+ 5 ndup +

5 nrotr 4 ndrop ;

: 精灵交换 3 ndup 6 ndup - * 100/交换 4 ndup 7 ndup - * 100/+ 4 ndup +

5 nrotr 4 ndrop ;

: gen 6 复制 genx 7 nrotr geny ;

: 保持 7 nrotr 7 nrotr pre ;

: 发布 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;

: 线移到线到 ;

: koch dup 0= if drop line else

pre 0 0 gen keep 33 0 gen post koch

pre 33 0 gen keep 50 -28 gen post koch

pre 50 -28 gen keep 66 0 gen post koch

pre 66 0 gen keep 100 0 gen post koch

5 ndrop

万一 ;

: 科赫斯 10 setcol 89 440 551 440 4 科赫

11 setcol 551 440 320 40 4 科赫

12 setcol 320 40 89 440 4 科赫;

通用科赫斯

** 直接使用 ReGIS 图形终端,如转义序列

通用汽车

(W(I15)P[50,50]C(S)[][+40,+40][+40,-40][+40,+40][+40,-40][+40,+ 40][+40,-40][](E)) 。

(W(I12)P[50,150]F(C(B)[200,+200][+200,-150](E))) 。

(W(I11)P[70,170]T(S16)[16,12]'Hello World')。

// 通过使用单词'grdemo',一些图形示例的单词将被注册到字典中。

类似程序

替代方案