| Файл түрі | APK |
|---|---|
| Баспа | Tomohide NANIWA |
| Шығару күні | 2019 ж. 19 қаз. |
| Қосылған күн | 2019 ж. 19 қаз. |
| 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-ді еркін тексергіңіз келсе, frtm-дің Java апплет нұсқасын келесі веб-бетте пайдаланып көріңіз:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** Сөздерге мысалдар ***
* Екі санның орташа мәні
: ave + 2,0/;
* N санның орташа мәні
: шірік үшін 1 үстінде nave своп + цикл алмасу 1.0 */;
2 4 6 8 10 5 неф. кр
0 1 2 3 4 5 6 7 8 9 10 SP nave. кр
* N санының популяциялық дисперсиясы
: nvarp dup 1+ copy nave SP nrotr swap dup * rot dup үшін 1-ден жоғары * + цикл алмасу 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 * - своп 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 other 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 other dup 1=if other dup 1- fib swap 2 - fib + endif endif ;
30 фиб. кр
** Итерация
: fibi dup 0= if other 0 1 rot 1 for swap over + loop swap drop endif ;
30 фиби. кр
* Графика
** Тіктөртбұрышты толтырыңыз
: қораптар 16 0 үшін I setcol 10 20 I * + dup 100 100 rectf циклі;
gm қораптары
: I 45 * 2/50 100 жиынтығы үшін hls 16 0HLS 10 20 I * + dup 100 100 rectf циклі;
gm hls
** Рекурсивті сурет (Кох қисығы)
: алдын ала 5 көшірменің түсуі;
: genx 3 ndup 6 ndup - * минус 100/swap 4 ndup 7 ndup - * 100/+ 5 ndup +
5 нротр 4 тамшы;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 нротр 4 тамшы;
: gen 6 copy 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= егер түсіру сызығы басқа
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 тамшы
endif;
: кох 10 сеткол 89 440 551 440 4 коч
11 сеткол 551 440 320 40 4 коч
12 сеткол 320 40 89 440 4 коч;
gm kochs
** Escape реттілігі сияқты 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' сөзін қолдану арқылы графика мысалдарының кейбір сөздері сөздікке тіркеледі.