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

A VIK Wikiből

Ez az oldal a korábbi SCH wikiről lett áthozva.

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