BasicC/Operatory

Przypisanie i porównanieEdytuj

Stosuje się składnię C, czyli "=" dla przypisania, "==" dla równości, "!=" dla nierówności ("<>" jest niepoprawne). Po przypisaniu należy pamiętać o zakończeniu średnikiem.

Let(X,Y)
Do wersji 1.22 komenda przypisuje zmiennej X wartość wyrażenia Y, po której nie stosuje się średnika. Dodatkowo dokonuje rzutowania do typu double, co powinno dać prawidłowy wynik, w przeciwieństwie do podstawiania przez "=", jeśli w wyrażeniu występują liczby całkowite. Dokładnie wykonywana jest następująca operacja języka C:X=(double)Y; Od wersji 1.23 wykonuje kopiowanie łańcucha tekstowego.

Swap(X,Y)
Zamienia wartości zmiennych liczbowych X i Y z sobą. Wykonuje {VALUE=Y;Y=X;X=VALUE;}

Operatory logiczneEdytuj

Zdefiniowano następujące operatory logiczne (obok ich odpowiedniki w C): AND && MOD % NOT ! OR || XOR ^ Należy pamiętać, że przed i za komendami BasicC musi występować spacja (jeśli nie pełnią roli funkcji), więc nie można np. użyć NOT= zamiast !=, NOT = też jest błędne. XOR jest tak naprawdę operatorem bitowym, dla pozostałych operacji bitowych stosujemy składnię C. Zdefiniowana jest funkcja Mod działająca również na liczbach rzeczywistych oraz Xor opisane poniżej.

Dodatkowe operacje na bitachEdytuj

Bchg(x,b) Neguje bit b w x, bity liczymy od prawej strony poczynając od 0
Bclr(x,b) Zeruje bit w x
Bset(x,b) Ustawia bit w x
Btst(x,b) Zwraca 1, jeśli bit w x wynosi 1
BSchg(x,b) Zmienia bity w x, b jest liczbą, zmieniane są bity na pozycjach ustawionych w b na 1
BSclr(x,b) Zeruje bity w x
BSset(x,b) Ustawia bity w x
BStst(x,b) Zwraca 1, jeśli bity w x są ustawione

Warto przejrzeć def. tych funkcji w pliku Basic.h

Funkcje matematyczneEdytuj

Abs(x) wartość bezwzględna z x
Deg(a) wartość w stopniach kąta a podanego w radianach
Frac(a) część ułamkowa liczby a
Int(X) część całkowita liczby X (typu long int)
Max(X,Y) większa z liczb X i Y
Min(X,Y) Mniejsza z liczb X i Y
Mod(a,b) reszta z dzielenia a/b, działa też na typach ułamkowych
Rad(a) zamienia stopnie na radiany
Sqp(x) x*x
Sgn(a) zwraca 1, gdy a>0; 0, gdy a=0; -1, gdy a<0
Round(X) zaokrągla do liczby całkowitej, uwaga: .5 zaokrągla w dół
Ceil(X) zaokrągla w górę
Floor(X) zaokrągla w dół
ROUNDFC(double X, float a, float b) funkcja używana przez 3 powyższe
Xor(a,b) zwraca 0, gdy a AND b; w przeciwnym razie zwraca a OR b

Xor nie jest tym samym co XOR, nie występuje w czystym C i wiekszości odmian Basic.

Komendy te nie wymagają dodatkowej biblioteki. Round, Ceil, Floor są wolniejsze od odpowiedników z math.h, Max, Min, Mod są znacznie szybsze.