| Fayl növü | APK |
|---|---|
| Nəşriyyat | Tomohide NANIWA |
| Buraxılış tarixi | 19 okt 2019 |
| Tarix əlavə edildi | 19 okt 2019 |
| Os tələbləri | Android |
| Tələblər | Requires Android |
| Cəmi yüklənmə | 0 |
| Qiymət | $1.00 |
Təsvir
Frtm (FoRTh Modoki) FORTH proqramlaşdırma dilini simulyasiya edən proqramdır. Bununla belə, ciddi FORTH-u təkrarlamaq üçün nəzərdə tutulmayıb. Kompilyator yoxdur, lakin istifadəçi tərəfindən təyin olunan sözdəki sözlər və sabitlər qeydiyyatdan keçdikdə şərh olunur.
FORTH-dən fərqli olaraq bəzi aspektlər də var: frtm-də qaytarma yığınını manipulyasiya etmək üçün sözlər yoxdur, frtm isə sözün rekursiv tərifinə imkan verir.
Frtm həmçinin real ədədlərin hesablanmasını dəstəkləyir. Eksponensial, kvadrat kök, triqonometrik funksiyalar, hiperbolik funksiyalar, bit əməliyyatları kimi riyazi funksiyalara malikdir. Beləliklə, frtm elmi kalkulyatorun alternativ proqramı ola bilər.
İfadənin təfsiri Tərs Polşa Notasiyasına (RPN) uyğun olaraq aparılacaq. Frtm şərti "if" budağına, "do-while" və "for-loop" dövrə üçün struktura malikdir. Siz həmçinin sözü birləşdirərək yeni söz yarada bilərsiniz.
Android ƏS-də lüğətin və yığının ilkin ölçüsünün konfiqurasiyası, lüğətdəki sözü "söz kitabı"na saxlamaq imkanı əlavə edilib. "Söz kitabı"nın sayı üçə qədər məhduddur.
Dilin daha ətraflı spesifikasiyası üçün dəstək üçün Yapon dilində Veb səhifəyə müraciət edin.
Əgər siz frtm-ni sərbəst sınaqdan keçirmək istəyirsinizsə, lütfən, aşağıdakı veb-səhifədə frtm-in Java proqram versiyasını sınayın:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** Söz NÜMUNƏLƏRİ ***
* İki ədədin orta
: ave + 2.0/;
* N ədədin orta
: rot + loop dəyişdirmə üçün 1 üzərində nave dəyişdirmə 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 ədədlərin * Əhali fərqi
: nvarp dup 1+ surəti nave SP nrotr swap dup * rot dup üçün 1-dən çox * + döngə dəyişdirmə 1.0 */SP nrot dup * - ;
2 4 6 8 10 5 nvarp . cr
* N ədədin qərəzsiz dəyişməsi
: nvar dup 1+ surəti nave SP nrotr swap dup * rot dup üçün 1-dən çox * + loop SP nrot dup * 3 ndup * - dəyişdirmə 1- 1.0 */;
2 4 6 8 10 5 nvar . cr
* 2 ədədin ən böyük ortaq bölməsi
: gcd dəyişdirin % dup 0 > while drop ;
1001 819 gcd. cr
* Faktorial [fakt(1)=1, fakt(n)=n*fakt(n-1)]
** Rekursiya
: faktr dup 1=əgər başqa dup 1- faktr * endif ;
10 faktr. cr
** İterasiya
: fakti 1 dəyişdirmə 1+ 1 üçün I * döngəsi ;
10 fakti. cr
* Fibonaççi ardıcıllığı [fib(0)=0, fib(1)=1, fib(n)=fib(n-1) + fib(n-2)]
** Rekursiya
: fib dup 0= if other dup 1=if other dup 1- fib swap 2 - fib + endif endif ;
30 fib. cr
** İterasiya
: fibi dup 0= əgər başqa 0 1 rot 1 üçün swap over + loop swap drop endif ;
30 fibi. cr
* Qrafika
** Düzbucaqlı doldurun
: qutular 16 0 üçün I setcol 10 20 I * + dup 100 100 rectf loop ;
gm qutuları
: I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 rectf loop üçün hls 16 0 ;
gm hls
** Rekursiv Rəsm (Koch əyrisi)
: əvvəlcədən 5 nüsxə buraxma;
: genx 3 ndup 6 ndup - * mənfi 100/dəyişdirmə 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 damla;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrotr 4 damla;
: gen 6 surəti genx 7 nrotr geny ;
: 7 nrotr 7 nrotr pre saxlamaq;
: post 9 nrot 9 nrot 4 nrot 4 nrot 5 ndup 1- ;
: line to lineto ;
: koch dup 0= əgər açılan xətt başqadırsa
pre 0 0 gen saxlamaq 33 0 gen post koch
pre 33 0 gen saxlamaq 50 -28 gen post koch
pre 50 -28 gen saxlamaq 66 0 gen post koch
pre 66 0 gen saxlamaq 100 0 gen post koch
5 damcı
endif ;
: kochs 10 setcol 89 440 551 440 4 koch
11 setcol 551 440 320 40 4 koç
12 setcol 320 40 89 440 4 koç ;
gm kochs
** Escape ardıcıllığı kimi ReGIS qrafik terminalının birbaşa istifadəsi
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]'Salam Dünya') .
// 'grdemo' sözündən istifadə etməklə, qrafika nümunələri üçün bəzi sözlər lüğətdə qeyd olunacaq.