W Prologu możliwe jest wykonywanie działań arytmetycznych, jednak nie bezpośrednio – do tego celu służy predykant is, który „bierze” wyrażenia znajdujące się po prawej stronie, następnie je oblicza, a wynik przypisuje zmiennej znajdującej się po lewej stronie.
Działania wpisujemy w tym samym miejscu kompilatora, co zapytania, rozpoczynając od zmiennej, do której, poprzez predykant is, ma być przypisany wynik z wykonanej operacji arytmetycznej. Gdy użyjemy znaku równości = do zmiennej zostanie przypisane całe działanie, a nie jego wynik.
ZMIENNA is DZIAŁANIE.
Podstawowe operacje arytmetyczne:
+ dodawanie
– odejmowanie
* mnożenia
/ dzielenie liczb zmiennoprzecinkowych
// dzielenie liczb całkowitych
^ potęgowanie
mod modulo – dzielenie z resztą
Kolejność wykonywania działań w Prologu jest taka sama jak w innych językach programowania i taka sama, jak uczą nas w szkole – potęgowanie, mnożenie, dzielenie, dodawanie i odejmowanie. Gdy występują operatory sobie równe, wtedy program wykonuje je w kolejności od lewej do prawej.
Podstawowe funkcje:
abs() wartość całkowita
sqrt() pierwiastek
log() logarytm o podstawie e
Prolog nie służy do rozwiązywania równań z niewiadomą – gdy niewiadoma pojawi się po prawej stronie, program zwróci nam error, gdyż nie będzie mógł rozwiązać zadanego mu działania.
Zadania:
a) wykonaj dodawanie dwóch dowolnych cyfr – do jednej zmiennej przypisz poprzez predykant is wynik, a do kolejnej zmiennej przypisz poprzez znak równości = całe działanie;
A is 5+4. A=5+4.
b) przetestuj dodawanie, odejmowanie, mnożenie i dzielenie na wymyślonych przez siebie przykładach;
A is 7+9.
B is 9-3.
C is 3*4.
D is 4/2.
Przy dzieleniu możemy użyć podwójnego ukośnika, którego obecność spowoduje zaokrąglenie wyniku działania w dół do liczby całkowitej.
A is 5//2.
B is 3//2.
c) przećwicz użycie operatorów porównania, które wstawiamy w miejscu predykatu is;
5>4.
9<11.
7=3.
8>=9.
10=<8.
W przypadku porównywania dwóch wartości system będzie zwracał true jeżeli wyrażenie jest prawdziwe i false jeżeli wyrażenie nie jest prawdziwe. Ważne jest, aby zapamiętać kolejność wpisywania znaków przy „większy lub równy” i „mniejszy lub równy”. Jeżeli wpiszemy znaki na odwrót, program poinformuje nas o błędzie.
5=>7.
11<=15.
d) sprawdź na czym polega 5+4=:=8+1.;
Program zwraca nam true, co należy rozumieć, że lewa strona równa się prawej – operator =:= porównuje, czy dwie strony działania dają ten sam wynik.
e) zastosuj podstawowe funkcje występujące w Prologu;
A is abs(-11).
B is sqrt(9).
C is log(42).