Перейти до змісту
FF

frtm for Android APK

Видавництво: Tomohide NANIWA
Android APK $1.00
Завантажити 0 завантаження
Тип файлуAPK
Видавництво Tomohide NANIWA
Дата випуску19 жовт. 2019 р.
Дату додано19 жовт. 2019 р.
Вимоги ОС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 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+ copy nave SP nrotr swap dup * over 1 for rot dup * + loop swap 1.0 */SP nrot dup * - ;

2 4 6 8 10 5 nvarp . кр

* Незміщена дисперсія N чисел

: nvar dup 1+ copy nave SP nrotr swap dup * over 1 for 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 гкд. кр

* Факторіал [факт(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 for swap over + цикл swap drop endif ;

30 фібі. кр

* Графіка

** Заповнити прямокутник

: ящики 16 0 для I setcol 10 20 I * + dup 100 100 цикл rectf ;

гм коробки

: hls 16 0 для I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf loop ;

gm hls

** Рекурсивне малювання (крива Коха)

: попередні 5 копій;

: genx 3 ndup 6 ndup - * мінус 100/своп 4 ndup 7 ndup - * 100/+ 5 ndup +

5 nrotr 4 ndrop ;

: geny своп 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- ;

: 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 як escape-послідовність

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', деякі слова для прикладів графіки будуть зареєстровані в словнику.

Подібні програми

Альтернативи