Obliczane wyrażenia ADONIX  

Prezentacja

Dla pewnej ilości ekranów parametryzacji, istnieje możliwość wprowadzenia formuł dla obliczeń, które również są nazywane wyrażeniami Adonix (Adonix to w rzeczywistości nazwa mechanizmu wykonawczego w oprogramowaniu wykorzystującym technologię X3) Te wyrażenia są przedstawione w formacie algebraicznym i tworzą część ogólnego języka. Poniżej przedstawiono ogólny opis funkcji, których można używać w w wyrażeniach Adonix

Podczas wprowadzania formuły można posłużyć się licznymi pomocami, które zarówno podają informacje na temat dostępnych zmiennych i funkcji jak i wyjaśniają znaczenie formuły. Pomoce te są dostępne za pośrednictwem edytora formuł.

Istnieje możliwość przetestowania formuły (w ramach której dostępne są tylko stałe i zmienne, do których jest dostęp) z wykorzystaniem kalkulatora.

Wyrażenie typu ADONIX

Wyrażenie ADONIX może być wyrażeniem typu alfanumerycznego, numerycznego lub może występować jako data. W zależności od tego gdzie jest przeprowadzana parametryzacja, istnieje możliwość że potrzebne będą te lub inne typy wyrażeń (nawet jeśli wszystkie typy mogą być wykorzystane w formule, funkcje określonego typu mogą się odwoływać do argumentów innego typu). Należy Należy zwrócić uwagę, że funkcja typu służy do testowania typu zmiennej.

Jak ustawić wyrażenie ADONIX

Wyrażenie składa się ze stałych, operatorów, zmiennych i funkcji.

Stałe

Stałe mogą być:

* alfanumeryczne: wyrażone bądź to pomiędzy apostrofami (') bądź cudzysłowami („..”). Poniżej pokazano dwa przykłady ważnych ciągów:

 

„Jest pewne”

 

specyficzny ciąg

* numeryczne: wyrażone ze znakiem dziesiętnym, jeśli to wymagane. Poniżej pokazano dwa przykłady ważnych stałych numerycznych:

 

-2,5

 

123000

* data: wyrażone w formacie [dzień / miesiąc / rok]. Należy zwrócić uwagę, że rok należy obowiązkowo wyrazić czterema cyframi. Oto przykłady ważnych stałych wielkości, wyrażających datę:

 

[15/3/2002]

 

[21/05/1819]

* typu logicznego: są powiązane ze stałymi numerycznymi 1 (oraz poprzez rozszerzenie wszelkie inne wartości różne od zero) oznaczają Prawda, zero oznacza Fałsz.

Operatory

Poniżej przestawiono ważne operatory:

 

+

dodawanie dwóch liczb, daty i ilości dni lub łączenie dwóch ciągów znaków.

 

-

odejmowanie dwóch liczb, daty i ilości dni lub łączenie dwóch ciągów znaków poprzez wprowadzeni spacji pomiędzy te dwa ciągi.

 

*

mnożenie dwóch liczb

 

/

dzielenie dwóch liczb

 

^

potęgowanie do danej potęgi

 

<

<=

>

>=

<>

operatory porównania

 

 

oraz

lub

czy

nie

operatory logiczne, które można również skrócić do

&

|

?

!

Dodatkowo, istniej możliwość wykorzystania nawiasów bez ograniczenia w ich nakładaniu się (w ilości nakładających się nawiasów).

Zmienne

Zmienna jest wyrażona w ogólny sposób w postaci:

 

[ klasa ] nomvar ( indeks )

Dla przykładu, możliwe jest zdefiniowane następujących zmiennych:

 

[F:BPC]BPCNAME

 

MA_VARIABLE

 

ELEMENT(33)

Nazwa zmiennej nomvar jest wyrażona w formie liter i / lub liczb, przy czym pierwszy znak jest zawsze literą, wykorzystać można również znak podkreślenia. Długość nazwy zmiennej jest ograniczona do 12 znaków. Wszystkie nazwy są dozwolone, z wyjątkiem pewnych zarezerwowanych słów kluczowych (Plik, Aż do, lub popełnić są przykładami tych słów kluczowych) Kiedy wprowadzana jest nazwa zmiennej od małej litery, jest ona automatycznie zamieniana na dużą literę, chyba że jest to jedno ze słów kluczowych.

Niektóre zmienne mogą być wymiarowane, to znaczy, że odpowiadają tabelom elementów (możliwe są wymiary od 1 do 4). W takim przypadku, jeden lub więcej indeksów jest podany w postaci wyrażeń liczbowych, oddzielonych przecinkami (jeśli jest ich więcej niż jeden), w nawiasie (dla przykładu M_TB (1,2,8) jest poprawną składnią).

Klasa odpowiada grupie zmiennych powiązanych z kontekstem. Najczęściej używane klasy to klasy następujące:

* [V] : klasa zmiennych globalnych. Zmienna tego typu jest powiązana z sesją ADONIX. Po jej utworzeniu pozostaje dostępna tak długo, dopóki istnieje lub dopóki nie zostanie zakończona sesja ADONIX. Jej deklaracja jest dokonywana przy pomocy dedykowanych instrukcji (w zależności od jej typu, wykorzystywane są instrukcje Integer, Decimal, Char, Date, Label, Shortint, Float, Double ).

* [L] : klasa zmiennych lokalnych Jest ona powiązana z nakładającymi się sub-programami (każda instrukcja Wywołania tworzy nową klasę zmiennych lokalnych, która maskuje poprzednią klasę) Deklaracja zmiennych tego typu jest dokonywana w ten sam sposób jak w przypadku wcześniej opisanego typu klasy, ale jest ona poprzedzona słowem kluczowym Lokalna.

* [C] : Klasa zmiennych typu numeru sekwencji. Są to zmienne wspólne dla wszystkich poziomów folderu. Ich utworzenia można dokonać za pomocą dedykowanej funkcji projektowej.

* [F:abv] lub [abv] : jest to klasa zmiennych powiązanych z tabelą, zadeklarowaną w instrukcji pliku. W klasie tej można znaleźć wartości bieżącego rekordu.

* [M:abv] lub [abv] : jest to klasa zmiennych powiązanych z ekranem wprowadzania, deklarowanym w instrukcji maskowania. W klasie tej można znaleźć wartości, które zostały wprowadzone lub które mogą zostać wyświetlone (każda zakładka na ekranie uważana jest za maskę).

Klasa ta nie jest obowiązkowa, ponieważ dzięki regułom system rozpoznaje tę klasę jako domyślną.

Istnieje pewna ilość systemowych zmiennych, zarządzanych bezpośrednio przez Adonix. Podczas kiedy w przypadku innych zmiennych, w czasie wprowadzania ich nazwy, pierwsza litera jest automatycznie zamieniana na dużą literę, te zmienne, tworzące część słów kluczowych języka, pozostają zapisane z małej litery. Poniżej podano niektóre ze zmiennych systemowych, które można wykorzystać:

Nazwa

Typ

Definicja

nomap

ciąg

nazwa bieżącego foldera

datesyst

data

modyfikowalna data systemowa

adxdir

ciąg

Katalog główny Adonix

nolign

numeryczny

numer bieżący wiersza

fstat

numeryczny

Ukazuje status po odczytaniu tabeli lub zaksięgowaniu w tabeli

Funkcje zdefiniowane w mechanizmie wykonawczym

Funkcja wyrażona w formacie funkcji (lista argumentów). Istnieje duża ilość funkcji: przetwarzanie ciągu znaków, kalkulacja daty, klasyczne funkcje numeryczne, funkcje zaokrągleń i usuwania miejsc po przecinku, funkcje statystyczne....

Wykaz podstawowych funkcji, które mogą być używane w ADONIX znajduje się poniżej. W tabeli funkcji, sposoby zapisu są następujące:

* v jest argumentem dla każdego typu (taki sam dla v1, v2, v3...)

* c jest argumentem dla funkcji typu ciągu znaków

* x jest argumentem dla funkcji typu numerycznego

* n, p. q, ... są argumentami dla funkcji typu całkowitego

* V jest zmienną

* lista jest lista zmiennych lub wyrażeń. W przypadku listy tego typu, zmienna TABLO typu tabeli może być użyta w formie TABLO (I) (tylko jeden indeks jest wykorzystany) TABLO (wszystkie indeksy są wykorzystane) lub TABLO (I...J) (wykorzystane są indeksy od I do J włącznie)

Składnie

Typ

Definicja

data$

data

bieżąca data

sin(x), cos(x), tan(x)

numeryczny

funkcje trygonometryczne

asin(x),acos(x)...

numeryczny

funkcje odwrotne do funkcji trygonometrycznych

log(x),exp(x),ln(x)

numeryczny

funkcje logarytmiczne

abs(x), sgn(x)

numeryczny

wartość absolutna, znak

ar2(x), arr(x,y)

numeryczny

zaokrąglenie do dwóch miejsc dziesiętnych, zaokrąglenie do x - y

int(x), mod(x,y)

numeryczny

część całkowita, modulo

len(c)

numeryczny

długość ciągu

dzień(d), miesiąc(d), rok(d)

numeryczny

eksport dnia, miesiąca, roku do utworzenia daty

dzieńn(d), tydzień(d)

numeryczny

numer dnia w tygodniu, numer tygodnia

num$(x)

ciąg

zamiana liczby na ciąg (prezentacja dziesiętna)

space$(n), chr$(n)

ciąg

ciąg złożony z n spacji, z 1 znakiem o kodzie wewnętrznym n

string$(n,c), string$(n,x)

ciąg

ciąg złożony z n znaków o kodzie c

(lub n znaków o kodzie x)

day$(d), month$(d)

ciąg

nazwa dnia, nazwa miesiąca

addmonth(d,n)

data

data d do której dodano miesiąc n

eomonth(d)

data

ostatni dzień miesiąca, odpowiadający dacie d

left$(c,n), right$(c,n)

ciąg

prawa / lewa sekcja ciągu, utworzonego z n znaków

mid$(c,n,p), seg$(c,n,p)

ciąg

eksport pod-ciągów dla danego ciągu

gdat$(n,p,q)

data

konstrukcja daty (n = dzień, p = miesiąc, q rok)

pat(c1,c2)

numeryczny

weryfikacja zgodności ciągu c1 z szablonem c2 (1 jeśli zgodny, 0 jeśli niezgodny). Szablon może zawierać znaki wieloznaczników * (każda ilość każdego rodzaju znaków), ? (jakikolwiek znak), # (jakakolwiek liczba).

min(list), max(list)

wszystkie typy

minimum lub maksimum dla grupy zmiennych lub wartości

sum(list), prd(list)

numeryczny

suma, iloczyn grupy zmiennych lub wartości

avg(list), var(list)

numeryczny

średnia, odchylenie dla grupy zmiennych lub wartości

sum(list)

ciąg

łączenie grupy ciągu zmiennych lub wartości

uni(list)

numeryczny

weryfikacja unikalności dla grupy zmiennych wartości

find(v,list)

numeryczny

wyszukiwanie wartości każdego typu w liście

evalue(c)

wszystkie typy

obliczanie ciągu znaków zawierającego wyrażenie

format$(c,v)

ciąg

formatowanie wartości o danym formacie c.

toupper(c),tolower(c)

ciąg

zamiana litera mała, litera wielka

sigma(V=v1,v2,v3)

numeryczny

suma (wariant V, V1 do V2), wyrażenia v3 funkcji V

Funkcje zdefiniowane przez twórców programu

Istnieją również funkcje zdefiniowane przez twórców programu i mogą one być wykorzystywane w wyrażeniach kalkulowanych, za pomocą następującej składni:

func TRAIT.FUNCT(lista argumentów)

gdzie PROC jest nazwą danego procesu a FUNCT nazwą danej funkcji. Należy zwrócić uwagę, że funkcje, których można używać, są udokumentowane w tabeli sub-programu.