| ფაილის ტიპი | 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 OS-ზე დაემატა ლექსიკონისა და სტეკის საწყისი ზომის კონფიგურაცია, ლექსიკონში სიტყვის „სიტყვის წიგნში“ შენახვის შესაძლებლობა. „სიტყვის წიგნის“ რაოდენობა შეზღუდულია სამამდე.
ენის უფრო დეტალური დაზუსტებისთვის, გთხოვთ, ეწვიოთ ვებგვერდს იაპონურ ენაზე მხარდაჭერისთვის.
თუ გსურთ frtm თავისუფლად შეამოწმოთ, გთხოვთ სცადოთ frtm-ის Java აპლეტის ვერსია შემდეგ ვებ გვერდზე:
http://www.rbt.his.u-fukui.ac.jp/~naniwa/comp/frtma.html
*** სიტყვების მაგალითები ***
* ორი რიცხვის საშუალო
: გამზირი + 2.0/;
* N რიცხვის საშუალო
: ნავი სვოპ 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 * 1-ზე მეტი 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 * 1-ზე მეტი rot dup * + loop 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-1)]
** რეკურსია
: factr dup 1=თუ სხვაგან dup 1- factr * endif ;
10 ფაქტი. კრ
** გამეორება
: facti 1 swap 1+ 1 for I * loop ;
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= სხვა შემთხვევაში 0 1 rot 1 swap over + loop swap drop endif ;
30 ფიბი. კრ
* გრაფიკა
** მართკუთხედის შევსება
: ყუთები 16 0 I setcol 10 20 I * + dup 100 100 recf loop ;
გმ ყუთები
: hls 16 0 I 45 * 2/50 100 setHLS 10 20 I * + dup 100 100 recf loop ;
გმ hls
** რეკურსიული ნახაზი (კოხის მრუდი)
: 5 ეგზემპლარამდე ვარდნა ;
: genx 3 ndup 6 ndup - * მინუს 100/გაცვლა 4 ndup 7 ndup - * 100/+ 5 ndup +
5 nrotr 4 წვეთი;
: geny swap 3 ndup 6 ndup - * 100/swap 4 ndup 7 ndup - * 100/+ 4 ndup +
5 nrotr 4 წვეთი;
: 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= თუ ჩამოაგდეს ხაზი სხვა
pre 0 0 gen შენარჩუნება 33 0 gen post koch
წინასწარ 33 0 გენი შენარჩუნება 50 -28 გენ პოსტ კოჩ
წინასწარ 50 -28 გენი შენარჩუნება 66 0 გენ პოსტ კოჩ
წინასწარ 66 0 გენი შეინახე 100 0 გენი პოსტი კოჩ
5 წვეთი
დაასრულე თუ ;
: kochs 10 setcol 89 440 551 440 4 koch
11 სეტკოლ 551 440 320 40 4 კოხ
12 სეტკოლ 320 40 89 440 4 კოჩი;
გმ კოჩები
** ReGIS გრაფიკული ტერმინალის პირდაპირი გამოყენება, როგორიცაა escape sequence
გმ
(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]'გამარჯობა სამყარო') .
// სიტყვის "გრადემო" გამოყენებით, გრაფიკის მაგალითების ზოგიერთი სიტყვა დარეგისტრირდება ლექსიკონში.