| Тип на файла | APK |
|---|---|
| Издател | Tomohide NANIWA |
| Дата на излизане | 19.10.2019 г. |
| Датата е добавена | 19.10.2019 г. |
| Os изисквания | Android |
| Изисквания | Requires Android |
| Общо изтегляния | 0 |
| Цена | $1.00 |
Описание
Frtm (FoRTh Modoki) е софтуер, който симулира езика за програмиране FORTH. Въпреки това не е предназначен да възпроизвежда стриктния FORTH. Няма компилатор, но думите и константите в дефинирана от потребителя дума се интерпретират, когато е регистрирана.
Има и някои аспекти за разлика от FORTH: frtm няма думите за манипулиране на стека за връщане, докато frtm позволява рекурсивната дефиниция на думата.
Frtm също така поддържа изчисляване на реални числа. Има математически функции като експоненциална, квадратен корен, тригонометрични функции, хиперболични функции, битови операции. Така frtm може да бъде алтернативният софтуер на научния калкулатор.
Тълкуването на израза ще се извърши в съответствие с обратната полска нотация (RPN). Frtm има условен клон "if", структура за цикъл "do-while" и "for-loop". Можете също така да направите нова дума, като комбинирате думата.
В операционната система Android са добавени конфигурацията на първоначалния размер на речника и стека, възможността за запазване на думата в речника в „книга с думи“. Броят на "книгата с думи" е ограничен до три.
За по-подробна спецификация на езика, моля, вижте уеб страницата на японски за поддръжка.
Ако искате да тествате frtm свободно, моля, опитайте версията на Java applet на frtm на следната уеб страница:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** ПРИМЕРИ за думи ***
* Средна стойност на две числа
: ave + 2.0/;
* Средно от N числа
: nave swap над 1 за rot + loop swap 1.0 */;
2 4 6 8 10 5 кораб . кр
0 1 2 3 4 5 6 7 8 9 10 SP кораб . кр
* Дисперсия на популацията от N числа
: nvarp dup 1+ копиране nave SP nrotr swap dup * над 1 за rot dup * + loop swap 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp . кр
* Безпристрастна вариация на N числа
: nvar dup 1+ копиране nave SP nrotr swap dup * над 1 за rot dup * + цикъл SP nrot dup * 3 ndup * - swap 1- 1.0 */;
2 4 6 8 10 5 nvar . кр
* Най-голям общ делител на 2 числа
: gcd do swap over % dup 0 > while drop ;
1001 819 gcd. кр
* Факториал [факт(1)=1, факт(n)=n*факт(n-1)]
** Рекурсия
: factr dup 1=if else dup 1- factr * endif ;
10 фактор. кр
** Повторение
: facti 1 размяна 1+ 1 за I * цикъл;
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 за swap over + loop swap drop endif ;
30 фиби. кр
* Графика
** Запълване на правоъгълник
: кутии 16 0 за I setcol 10 20 I * + dup 100 100 rectf цикъл;
gm кутии
: hls 16 0 за I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf цикъл;
gm hls
** Рекурсивно рисуване (крива на Кох)
: капка преди 5 копия ;
: genx 3 ndup 6 ndup - * минус 100/размяна 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 ndrop;
: geny swap 3 ndup 6 ndup - * 100/swap 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- ;
: line moveto lineto ;
: 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
endif;
: kochs 10 setcol 89 440 551 440 4 koch
11 setcol 551 440 320 40 4 koch
12 setcol 320 40 89 440 4 koch ;
gm kochs
** Директно използване на графичен терминал ReGIS като последователност за изход
gm
(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', някои думи за примери на графики ще бъдат регистрирани в речника.