2. Arytmetyka

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;

Rozwiązanie zadania

A is 5+4. A=5+4.

b) przetestuj dodawanie, odejmowanie, mnożenie i dzielenie na wymyślonych przez siebie przykładach;

Rozwiązanie zadania

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;

Rozwiązanie zadania

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.;

Rozwiązanie zadania

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;

Rozwiązanie zadania

A is abs(-11).

B is sqrt(9).

C is log(42).

Komentowanie jest wyłączone.