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

A VIK Wikiből
A lap korábbi változatát látod, amilyen Unknown user (vitalap) 2012. október 21., 21:09-kor történt szerkesztése után volt. (Új oldal, tartalma: „{{GlobalTemplate|Infoalap|PrologElm21}} * fejezetek: 4.4 <pre> int hatv(int a, unsigned h) { int e = 1; while (h > 0) { if (h & 1) e *= a; h >>= 1; a *…”)
(eltér) ← Régebbi változat | Aktuális változat (eltér) | Újabb változat→ (eltér)

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