Aritmetinės operacijos Spausdinti
( 4 Votes )
Parašė Aurimas Šimkus   

Šiame skyriuje aprašomos Prolog kalboje naudojamos aritmetinės ir skaičių palyginimo operacijos. Iš tiesų Prolog aritmetika daug nesiskiria nuo tradicinių programavimo kalbų aritmetikos, bet skiriasi sintaksė. Prolog kalboje galima manipuliuoti dviejų tipų skaičiais: sveikaisiais ir realiaisiais. Realiųjų skaičių sveikojo ir dešimtainė dalys skiramos tašku. Skaičių tipai atpažįstami dinamiškai, todėl nereikia nurodyti jų tipo. Norint užrašyti sudėtingas aritmetines konstrukcijas, galima naudoti skliaustus. Visi šie aprašyti dalykai nesiskiria nuo tradicinių programavimo kalbų ir matematos.

Prolog kalboje naudojamos šešios aritmetinės operacijos:

  1. Sudėtis:                           +
  2. Atimtis:                            -
  3. Daugyba:                         *
  4. Dalyba:                            /
  5. Sveikos dalies dalyba:         div             (tik su sveikaisiais skaičiais)
  6. Trupmeninės dalies likutis:   mod           (tik su sveikaisiais skaičiais)

Operatorius is. Prolog kalboje aritmetinei operacijai apskaičiuoti ir jai priskirti naudojamas operatorius is. Bendra šio operatoriaus naudojimo sintaksė:

    kintamasis arba skaičius is skaičius arba aritmetinė operacija. 

Taigi priklausomai nuo to, kas rašoma kairėje pusėje, turime du atvejus:

  • Nesukonkretintas kintamasis. Tokiu atveju šiam kintamajam yra priskiriama dešinėje pusėje esanti arba apskaičiuota (atlikus aritmetinę operaciją) skaičiaus reikšmė. Pavyzdžiai:
    X is 5.
       - X = 5
    X is (1+8)*2.
       - X = 18
    X is 5, Y is X mod 2.   /*dvi susietos operacijos*/
       - X = 5, Y = 1
    

  • Sukonkretintas kintamasis arba skaičius. Tokiu atveju dešinėje pusėje esanti reikšmė yra lyginama su kairaije puseje esančia arba apskaičiuota reikšme. Pavyzdžiai:
    5 is 2+3.
       - true
    X=2, X is 15+2.
       - false
    X=1, Y=X/2, Z is X * Y * 10.
       - X = 1, Y = 0.5, Z = 5.0
    

 Skaičių palyginimas

 Prolog kalboje kaip skaičius galima palyginti sukonkretintus kintamuosius (sukonkretintus skaičiumi), aritmetines operacijas (kurias apskaičiavus gaunamas skaičius) ir pačius skaičius. Naudojami šešios palyginimo operacijos:

  1. Lygu:                            =:=
  2. Nelygu:                         =\=
  3. Mažiau:                         <
  4. Daugiau:                       >
  5. Mažiau arba lygu:           <=
  6. Daugiau arba lygu:         =>

Pavyzdžiai:

7+8 =:= 4*2+3*2+1.
   - true
5 =/= 7.
   - true.
X is 4+8/2, X => 555.
   - false
X=2, X>5.
   - false.
X=2, X<5. 
   - X = 2

Atkreipkite dėmesį į paskutinius du pavyzdžius. Kai lyginame sukonkretintuosius kintamuosius, o atsakymas turėtų būtų true, interpretatorius gali tiesiog pakartoti sukonkretintųjų kintamųjų reikšmes. Tai gali priklausyti nuo interpretatoriaus.

Pastaba. Nederėtų painioti predikatų is, = ir =\=. Predikatas is naudojamas norint apskaičiuoti aritmetinę operaciją ir atsakymą priskirti kintamąjam arba palyginti su kita reikšme. Predikatas = skirtas kintamojo sukonkretinimui arba termų (neapskaičiuojant aritmetinės operacijos) palyginimui, Predikatas =\= skirtas skaičiams arba aritmetinėms operacijoms (jų rezultatams) palyginti. Kartais aritmetikoje predikatai = ir is gali būti naudojami pasirinktinai, jei norime kintamąjį norime sukonkretinti konkrečiu skaičiumi, pvz., X is 5 atitinka X = 5.