return

wersja polska

Czytaj mnie jExacter

© Witold Kossowski, 2009

Napisany w Javie jExacter jest przeznaczony do rachunku naukowego o wysokiej precyzji

 

*** Precyzja obliczen jest regulowalna w granicach 1 - 240 cyfr znaczacych (wstepnie 30).

*** Operator ma do swojej dyspozycji klawiature System Keyboard (48 funkcji standardowych) oraz klawiature Private o 48 klawiszach programowalnych (click prawy).

*** Kazdy przycisk "prywatny" moze byc oznakowany i powiazany z formula, w dowolnym momencie wprowadzona i gotowa do stalego uzytku.

*** Rachunek wykonywany jest na podstawie wprowadzonej formuly o dlugosci ograniczonej do 248 znakow.

*** Formula, zapisana w notacji 'naturalnej' jest zlozona ze stalych, zmiennych i operatorow (maks. 73).

*** Poprawnosc syntaktyczna formuly jest sprawdzana i kazdy blad jest interpretowany.

*** Kompilacja formuly jest zwiazana z optymalizacja obliczen.

*** Dostepne sa obliczenia o charakterze rekurencyjnym (zmienna me) oraz inkrementalnym (dowolna liczba zmiennych o roznych wartosciach inkrementacji)

*** Zarowno formula, jak i dowolne argumenty moga byc w kazdym momencie zmodyfikowane przez operatora.

*** jExacter umozliwia bezposredni dostep do dowolnego argumentu.

*** Kazdy argument moze byc wprowadzony w postaci stalo- lub zmiennoprzecinkowej.

*** W przypadku liczb okresowych, mozliwe jest stosowanie nawiasow, np. liczba 1,0(53) odpowiadajaca liczbie 1,053535353… .

*** Zapis wartosci kazdego argumentu jest testowany i kazdy blad jest zgloszony.

*** Najwieksza / najmniejsza liczba akceptowana wynosi 1e±1.000.000.000.

*** "Infinity", "NaN" (Not a Number), "TLN" (Too Large Number, tj. liczba > 1e+1.000.000.000, mniejsza od nieskonczonosci) moze byc wprowadzona, wyswietlona jako wynik rachunku i akceptowana jako wynik posredni w ciagu obliczen.

*** Dwie wartosci, e i pi, sa wstepnie zdefiniowane.

*** Operator ma bezposredni dostep do pliku HELP (Pomoc), ktory zawiera, miedzy innymi, opis wszystkich funkcji. Uzytkownik moze dodac do pliku HELP swoje wlasne uwagi.

*** Operator ma do swojej dyspozycji inny, w pelni edytowalny plik FORMULA FILE (zapamietywany jako "formfile"), oraz plik CONSTANTS ("constfile"), gdzie moze byc zarejestrowana / dopisana dowolna zmienna, ewentualnie z dorzucona nazwa.

*** Zgodnie z wybranym trybem, po zakonczeniu rachunku moze byc zapisany i zaprezentowany raport, zawierajacy liste argumentow i wszystkie operacje i wyniki posrednie, w porzadku chronologicznym.

*** Do okna REPORT zostala dorzucona funkcja FIND. Raporty potrafia byc bardzo dlugie, zwlaszcza w przypadku list liczb pierwszych (na przyklad funkcja pra[0;10000000] daje wszystkie liczby pierwsze od zera do 10 milionow, czyli 664.579 liczb zorganizowanych w 65.033 linie).

*** Kazdy plik, ktory ukazuje sie w oknie REPORT moze byc bezposrednio wydrukowany z menu File.

*** Formula, argumenty, wynik, poziom precyzji i raport nigdy nie znikaja z ekranu. Przemieszczanie kursora z jednego okna do drugiego jest zwiazane ze zmiana koloru okna; dzieki temu operator nigdy nie jest "zgubiony".

*** W zbiorze operatorow mozna znalezc dzielenie modulo w postaci reszty z dzielenia dwu liczb rzeczywistych, dowolny pierwiastek, logarytm o dowolnej bazie, iloczyn wszystkich kolejnych liczb calkowitych z dowolnego przedzialu, zmiane bazy liczby na dowolna z zakresu [2..16], liste wszystkich kolejnych liczb pierwszych z przedzialu [a..b], n-ta liczbe pierwsza, etc.

*** Operator ma mozliwosc uzywania zmiennej specjalnej o nazwie me (memory). Wystarczy zainicjowac wartosc tej zmiennej przed pierwszym wykonaniem rachunku; kazdy nastepny rachunek odbywa sie ze zmienna o wartosci ostatniego wyniku. Umozliwia to rachunek rekurencyjny.

*** Poza trybem "normalnym", jExacter posiada prosty i bezposredni tryb zliczania kasowego o nazwie CASH REGISTER, ktory umozliwia ciagle dodawanie liczb, iloczynow, procentow i wynikow dzielenia, z precyzja 25 liczb znaczacych, z separatorami tysiecy lub bez, oraz ze stala kontrola poprawnosci argumentow i operacji.

*** Copy / paste / cut / Save As / etc. sa w pelni operacyjne.

*** Czas egzekucji kazdego rachunku jest mierzony i wyswietlany

Operacje

+        dodawanie
-        odejmowanie
*        mnozenie
/        dzielenie
div      dzielenie bez reszty
inv      inwersja (operacja 1/x)
mod      dzielenie modulo
gcd      NWD, najwiekszy wspolny dzielnik
^        potega
abs      wartosc absolutna
int      czesc calkowita
inr      najblizsza liczba calkowita
dec      czesc ulamkowa
!        silnia
pro      iloczyn od .. do ..

max      wieksza z dwu liczb
min      mniejsza z dwu liczb
mo       operator inkrementalny (przyrostowy)
bas      zmiana bazy-n na base-m w zakresie [2..16]

r        pierwiastek n-ty
r2       pierwiastek kwadratowy
ln       logarytm naturalny
lg2      logarytm dwojkowy
log      logarytm dziesietny
lg       logarytm o bazie dowolnej

rd       stopnie => radiany
deg      radiany => stopnie
sn       sinus
cn       cosinus
tg       tangens
cg       cotangens
asn      arcus sinus
acn      arcus cosinus
atg      arcus tangens
acg      arcus cotangens

sh       sinus hiperboliczny
ch       cosinus hiperboliczny
ht       tangens hiperboliczny
hc       cotangens hiperboliczny
ash      area sinus hiperboliczny
ach      area cosinus hiperboliczny
aht      area tangens hiperboliczny
ahc      area cotangens hiperboliczny

 

pra      lista liczb pierwszych z przedzialu [a..b]
prn      n-ta liczba pierwsza
prx      liczba pierwsza najblizsza liczbie rzeczywistej x
pr1      Czy liczba i jest liczba pierwsza? Jesli nie, to lista dzielnikow pierwszych
pr2      lista wspolnych dzielnikow pierwszych dwu liczb

Argumenty

Nazwa kazdej zmiennej (maks. 3 zn.) musi sie zaczynac od litery z przedzialu [a..z], z wyjatkiem operatora "bas",

gdzie przedzial jest rowny [g..z].

 

Formaty argumentow:

naturalny 987 ,000178 0,321
naukowy e+450 1,78 e-200000 1,14 e+500000000
okresowy (23) ,02(7001) 6547(102)
mieszany 15(8) e-50 ,24(62) e+89 5,45(76) e-65012572

Menu

Menu File zawiera, miedzy innymi, polecenie Report, ktore otwiera plik Report (protokol), zapisywany automatycznie w przypadku nienormalnego przerwania rachunku (abnormal termination) lub gdy wybrany zostal tryb obliczen Run & Report. Raport("calcfile") jest zawsze umieszczany w folderze aplikacji. Jesli to jest pozadane, polecenie Save as zapamietuje raport (jak kazdy inny plik, zreszta) pod nazwa i w miejscu wybranym przez operatora.
Menu Formula zawiera dwie pozycje:
  • Formula Entry (wprowadzanie formuly)
  • Open Formula file (otworz plik "Formula")

Menu Arguments zawiera trzy pozycje:

  • Argument Entry (otwarcie okna do wprowadzania argumentow w narzuconym przez System porzadku ich wystepowania w formule)
  • Argument Selection (dostep bezposredni do argumentu)
  • Erase All Arguments (wyzerowanie wszystkich argumentow z listy)

Menu Constants zawiera dwie pozycje:

  • Constant Entry (wprowadzanie stalych, bez kontroli poprawnosci, a wiec z mozliwym komentarzem)
  • Constants file (otworz plik "Stale")

Meny Exec zawiera trzy pozycje:

  • Run (wykonanie)
  • Run & Report ((wykonanie + raport) (Uwaga: wyniki posrednie zawieraja na ogol o 2 cyfry wiecej, nizby na to wskazywala wybrana precyzja, a to po to, aby operator mogl zorientowac sie co do tendencji obliczeniowych)
  • CASH REGISTER (rachunek uproszczony, typu KASA)
    • Run
    • Reset to zero
    • Numbers with Separator (z separatorem tysiecy)
    • Save at Exit (jesli wybrane, to raport nie ulega wytarciu podczas opuszczania trybu CASH REGISTER)

Okna Formula, Arguments, Result i Report sa edytorami tekstu z pewna iloscia przyciskow funkcyjnych.

Przycisk Save umozliwia rejestracje formul w pliku "formfile", a argumentow, stalych i wynikow oblicznen - w pliku "constfile".

Zapis formuly wymaga czasem nawiasow kwadratowych. Klik w klawisz operatora powoduje jego wpisanie; kiedy operator jest dwuargumentowy i wymaga zastosowania srednika, srednik zostaje rowniez wpisany.

Mozliwe jest wyselekcjonowanie czesci formuly i nacisniecie myszka klawisza operatora. Symbol operatora jest wowczas wpisany do formuly, z wyselekcjonowana jej czescia jako pierwszym argumentem. Naturalnie, tego rodzaju uzywanie klawiszy nie jest obowiazkowe.

Duze litery i spacje sa przez aplikacje ignorowane. Operator moze uzywac jednych i drugich dla poprawienia czytelnosci wprowadzanej formuly lub argumentu.

Kilka przykladow formul:

r[10321;16]^n + 4,89 lg[x;2,01] ![45] - 16ab*c

Interpretacja:
  • 16-ty pierwiastek z 10321,
  • podniesiony do potegi n
  • + 4,89 mnozone przez logarytm przy podstawie 2,01 z x, przemnozony przez 45 silnia
  • - 16 mnozone przez ab i przemnozone przez c

Uwaga:

  • 4,89 lg[x;2,01] ![45] odpowiada 4,89 * lg[x;2,01] * ![45]
  • 16ab odpowiada 16*ab
  • abc bedzie zinterpretowane przez System jako zmienna "abc", stad wprowadzono ab*c jako iloczyn zmiennych ab i c.

mo[a;0,5]^3

Ta formula jest przykladem rachunku inkrementalnego z argumentem wstepnie ustawionym na jakas wartosc i przyrostem tej wartosci o 0,5 przed kazdym wykonaniem.

Kolejne wyniki beda jak nastepuje:
0
+,125
+1
+3,375
+8
. . .

r2[me]

To jest przyklad rachunku rekurencyjnego, przy uzyciu argumentu "me" (memory - pamiec).

Po wstepnym m=900, kolejno otrzymamy:

+30
+5,47722557505166113456969782800802133952744695
+2,34034731932071593845914096881666601946360615
+1,52981937473700336792700567684172782592938059
. . .

 

Natychmiast po udanej walidacji formuly, jesli formula jest nowa, albo chociazby jeden argument zostal dodany, pojawia sie komunikat "There are arguments to enter" (Sa argumenty do wprowadzenia).

I odwrotnie, jesli wprowadzona zostaje nowa formula, lub zmodyfikowana zostaja formula stara, i chocby jedna zmienna zachowuje nazwe, pojawia sie komunikat "Args presented in preceding formula are initialized." (Argumenty z poprzedniej formuly zostaly zainicjalizowane.). Dzieki temu - jesli wartosci argumentow nie ulegaja zmianie - uzytkownik nie bedzie zobowiazany do ich ponownego wprowadzania.

Udana walidacja argumentu pociaga za soba pojawienie sie w oknie nastepnego argumentu z listy.

Okno Argument Selection jest identyczne do okna Argument Entry, z ta roznica, ze uzytkownik moze sam wprowadzic nazwe zmiennej, aby do niej bezposrednio dotrzec.

Okno Constant Entry jest edytorem tekstu bez kontroli poprawnosci. Uzytkownik moze wprowadzic jakakolwiek wartosc stalej i dorzucic przed lub po niej dowolny komentarz. Plik "constfile" (Constant file) moze byc otwierany przez dowolny edytor tekstu.

Pole Precision jest przeznaczone do ustawiania precyzji rachunku, tj. liczby cyfr znaczacych wyniku. Czynnosc ta wymaga potwierdzenia nowej precyzji przez guzik OK.

Pole Find jest przeznaczone do wprowadzania tekstu do znalezienia w pliku wyswietlonym w oknie raportu. Po kliknieciu w Find, pierwsze wystapienie poszukiwanej sekwencji znakow staje sie wyselekcjonowane, a liczba wystapien jest wyswietlona w okienku System Info. Kazdy klik powoduje selekcje nastepnej ze znalezionych sekwencji (w petli).

Ekran CASH REGISTER prezentuje bialy (w rzeczywistosci zoltawy) arkusz z naglowkiem, zawierajacym date i biezacy czas. Ponizej znajduje sie kursor w ksztalcie ">", ktory dynamicznie ukazuje miejsce do wprowadzania danych. Poprawnosc wprowadzanych argumentow i operatorow jest kontrolowana przez aplikacje.

Przyklad:

jExacter 1E --- CASH REGISTER
Tue Aug 08 15:38:02 CEST 2006
-------------------------------------------------------
0,00
>10000  
  10 000,.00
 
10 000,00
>%22  
  2 200,00
 
12 200,00
>200  
  200,00
 
12 400,00
>/7,88  
  1 573,60
 
13 973,60
>45,01  
  45,01
 
14 018,61
>-%15  
  -2 102,79
 
11 915,82
>*-,2  
  -2 383,16
 
9 532,66
>Undo  
 
11 915,82
>-,82  
  0,82
 
11 915,00
>  
  • Pierwsza kolumna zawiera zapis biezacej operacji.
  • Druga kolumna przedstawia wartosc, ktora zostanie dodana do ostatniego wyniku.
  • Wynik osiagniety po dodaniu liczby z drugiej kolumny jest pokazany w trzeciej.

W powyzszym przykladzie mozna kolejno zidentyfikowac:

  1. wprowadzenie kwoty 10.000,00
  2. dodanie do niej 22%
  3. dorzucenie 200,00
  4. dodanie wyniku podzielonego przez 7,88
  5. dodanie 45,01
  6. odjecie 15%
  7. odjecie 0,2 ostatniego wyniku
  8. zastosowanie funkcji Undo (anulowanie ostatniej operacji)
  9. odjecie 0,82
  • CTRL-L reinicjalizuje na zero wynik; umozliwia to rozpoczecie nowego rachunku bez wymazania poprzedniego.
  • CTRL-E zeruje obliczenia i czysci okno.
  • CTRL -K pozwala opuscic tryb CASH REGISTER.
Gwarancja Aplikacja niniejsza jest zaoferowana "taka, jaka jest", bez jakiejkolwiek gwarancji. W zadnym wypadku autor nie bedzie odpowiedzialny za jakiekolwiek szkody przypadkowe, czy wynikajace z aplikacji, wliczajac w te szkody straty wynikajace z nieuzytkowania aplikacji, straty w zakresie zyskow uzytkownika, straty danych lub wystapienie danych niedokladnych, oraz straty poniesione na skutek skarg strony trzeciej, nawet jesli autor aplikacji byl ostrzezony o mozliwosci tego rodzaju szkod.
 
Wsparcie techniczne Z przykroscia informujemy, ze zadne wsparcie ani pomoc natury technicznej nie sa mozliwe. Ewentualne uwagi lub zgloszenia "bugow" prosimy nadsylac na adres : jexacter@kagi.com