Változó-értékadáson alapuló algoritmusok átírása Prologba

A VIK Wikiből
Ugrás a navigációhoz Ugrás a kereséshez

Ez az oldal a korábbi SCH wiki-ről lett áthozva. Az eredeti változata itt érhető el.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor kérlek javíts rajta egy rövid szerkesztéssel.

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót


  • fejezetek: 4.4
int hatv(int a, unsigned h) 
{ 
 int e = 1; 
 while (h > 0) 
 { 
  if (h & 1) e *= a; 
  h >>= 1; 
  a *= a; 
 } 
 return e; 
} 

A C függvény átírása

  • két argumentumú C függvény három argumentumú Prolog eljárás (a 3. kimenő argumentum az eredmény)
  • ciklusból segédeljárás lesz
  • minden egyes C változónak a segédeljárás egy vagy két argumentuma felel majd meg
  • azok a változók, amelyek csak "bemenő" értékei a ciklusnak, tehát a ciklus lefutása után nincs rájuk szükség (a és h), egy-egy bemenő paraméterré válnak a segédeljárásban
  • az a változó viszont, amelyre a ciklus után is szükség van (ilyen az e), egy gyűjtőargumentum-párrá változik