| Fayl turi | APK |
|---|---|
| Nashriyotchi | Tomohide NANIWA |
| Ishlab chiqarilish sanasi | 19-okt, 2019 |
| Qo'shilgan sana | 19-okt, 2019 |
| Os talablari | Android |
| Talablar | Requires Android |
| Jami yuklamalar | 0 |
| Narx | $1.00 |
Tavsif
Frtm (FoRTh Modoki) FORTH dasturlash tilini taqlid qiluvchi dasturdir. Biroq, bu qat'iy FORTH ni takrorlash uchun mo'ljallanmagan. Kompilyator yo'q, lekin foydalanuvchi tomonidan belgilangan so'zdagi so'zlar va doimiylar ro'yxatdan o'tkazilganda izohlanadi.
FORTH-dan farqli o'laroq, ba'zi jihatlari ham bor: frtm-da qaytish stekini boshqarish uchun so'zlar yo'q, frtm esa so'zning rekursiv ta'rifiga imkon beradi.
Frtm haqiqiy sonlarni hisoblashni ham qo'llab-quvvatlaydi. U eksponensial, kvadrat ildiz, trigonometrik funktsiyalar, giperbolik funktsiyalar, bitli operatsiyalar kabi matematik funktsiyalarga ega. Shunday qilib, frtm ilmiy kalkulyatorning muqobil dasturi bo'lishi mumkin.
Ifodaning talqini teskari Polsha yozuviga (RPN) muvofiq amalga oshiriladi. Frtm "if" shartli shoxiga, "do-while" va "for-loop" tsikli uchun tuzilishga ega. Shuningdek, so'zni birlashtirib yangi so'z yasashingiz mumkin.
Android operatsion tizimida lug'at va stekning boshlang'ich hajmining konfiguratsiyasi, lug'atdagi so'zni "so'zlar kitobi"ga saqlash imkoniyati qo'shildi. "So'z kitobi" soni uchtagacha cheklangan.
Tilning batafsil tavsifi uchun, iltimos, qo'llab-quvvatlash uchun yapon tilidagi veb-sahifaga qarang.
Agar siz frtm-ni bepul sinab ko'rmoqchi bo'lsangiz, frtm-ning Java applet versiyasini quyidagi veb-sahifada sinab ko'ring:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** So'zlarga misollar ***
* Ikki raqamning o'rtachasi
: ave + 2.0 /;
* N ta raqamning o'rtachasi
: rot + halqa almashish uchun 1 ustidan nave almashtirish 1.0 * /;
2 4 6 8 10 5 nave. cr
0 1 2 3 4 5 6 7 8 9 10 SP nave. cr
* N sonli populyatsiya dispersiyasi
: nvarp dup 1+ nusxa nave SP nrotr swap dup * rot dup uchun 1 dan ortiq * + halqa almashinuvi 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp. cr
* N sonning xolis dispersiyasi
: nvar dup 1+ nusxa nave SP nrotr swap dup * rot dup uchun 1 dan ortiq * + halqa SP nrot dup * 3 ndup * - almashtirish 1- 1,0 */;
2 4 6 8 10 5 nvar. cr
* 2 ta sonning eng katta umumiy boʻluvchisi
: gcd do swap over % dup 0 > while drop ;
1001 819 gcd. cr
* Faktorial [fakt(1)=1, fakt(n)=n*fakt(n-1)]
** Rekursiya
: factr dup 1=if other dup 1- factr * endif ;
10 faktr. cr
** Takrorlash
: fakti 1 almashtirish 1+ 1 uchun I * loop ;
10 fakt. cr
* Fibonachchi ketma-ketligi [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Rekursiya
: fib dup 0= if else dup 1=if other dup 1- fib swap 2 - fib + endif endif ;
30 fib. cr
** Takrorlash
: fibi dup 0= if other 0 1 rot 1 for swap over + loop swap drop endif ;
30 fibi. cr
* Grafika
** To'rtburchakni to'ldiring
: qutilar 16 0 uchun I setcol 10 20 I * + dup 100 100 rectf pastadir;
gm qutilari
: I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf pastadir uchun hls 16 0;
gm hls
** Rekursiv chizma (Koch egri chizig'i)
: oldingi 5 nusxa ko'chirish;
: genx 3 ndup 6 ndup - * minus 100/almashtirish 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 tomchi;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrotr 4 tomchi;
: gen 6 nusxa genx 7 nrotr geny;
: 7 nrotr 7 nrotr pre ushlab turing;
: post 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: line moveto lineto ;
: koch dup 0= agar tomchi chiziq boshqa bo'lsa
pre 0 0 gen keep 33 0 gen post koch
pre 33 0 gen saqlab 50 -28 gen post koch
oldingi 50 -28 gen saqlab 66 0 gen post koch
pre 66 0 gen keep 100 0 gen post koch
5 tomchi
endif;
: kochs 10 setcol 89 440 551 440 4 koch
11 setkol 551 440 320 40 4 koch
12 setkol 320 40 89 440 4 koch;
gm kochs
** Qochish ketma-ketligi kabi ReGIS grafik terminalidan bevosita foydalanish
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]'Salom Dunyo') .
// "Grdemo" so'zidan foydalanib, grafik misollar uchun ba'zi so'zlar lug'atda ro'yxatga olinadi.