Utaratibu (uhandisi wa programu)

Kutoka Wikipedia, kamusi elezo huru
Jump to navigation Jump to search

Utaratibu (kwa Kiingereza: subroutine) ni sehemu ya programu ya kompyuta iliyopewa jina au inayotambuliwa kwa njia nyingine yenye elezo la seti yoyote ya matendo au hatua. Utaratibu unaweza kuvutwa kutoka sehemu mbalimbali za programu mara nyingi. Katika lugha mbalimbali za programu taratibu zinaweza kuwa na majina kama procedure, function, routine, method au subprogram.

Makusudi[hariri | hariri chanzo]

Kwanza taratibu zilitokea kama chombo cha kufanya programu kuwa bora kabisa kuhusu kiasi cha kumbukumbu ya kompyuta zinazokaliwa nazo. Programu hizo ziliwezesha kutorudia sehemu za msimbo zilizo sawa katika programu bali kuzieleza mara moja na kuzivuta wakati unapohitajiwa. Sasa kazi hiyo ya utaratibu ikawa ya kusaidia na wajibu wake mkuu ni kupanga sehemu za programu kwa kurahisisha kuifahamu na kuitengeneza.

  • Utengaji wa seti ya matendo katika utaratibu na kuivuta wakati unapohitajiwa zinawezesha kulitenga kimantiki fumbo la chini kamilifu lenye utoshelezi sanifu. Tendo hilo lina nafuu tena tofauti na marudio ya matendo ya namna ileile (ghairi ya uokoaji wa kumbukumbu) yaani mabadiliko yoyote yaliyofanyiwa katika utaratibu (kwa mfano kusahihisha makosa, kufanya kuwa bora kabisa, kuongeza kazi) yanaathiri miwito yake yote maadam wakati wa kurudufu kila badiliko lazima ziwekwe katika kila uingiaji wa msimbo unaobadilika.
  • Hata wakati katika utaratibu kunatolewa na seti ya matendo inayotekelezwa mara moja, hii ni ya maana kwa sababu inawezesha kudogesha ukubwa wa blocku kamilifu za msimbo zinazotengeneza programu, yaani kufanya programu iweze kufahamika na kutazamiwa zaidi.

Mifano[hariri | hariri chanzo]

Ruby[hariri | hariri chanzo]

def fib(n)
  zinazotangulia, hii = 1, 1
  3.upto(n) {
    zinazotangulia, hii = hii, (zinazotangulia + hii)
  }
  hii
end

fib(1)    # 1
fib(2)    # 1
fib(3)    # 2
fib(20)   # 6765

Python[hariri | hariri chanzo]

def fib(n):
    zinazotangulia, hii = 1, 1
    for i in range(3, n + 1):
        zinazotangulia, hii = hii, (zinazotangulia + hii)
    return hii

fib(20)     # 6765

Javascript[hariri | hariri chanzo]

function fib(n) {
    var zinazotangulia = 1;
    var hii = 1;
    for (var i = 3; i <= n; i++) {
        var nakalaYaZinazotangulia = zinazotangulia;
        zinazotangulia = hii;
        hii = hii + nakalaYaZinazotangulia;
    }
    return hii;
}

fib(20);    // 6765

Blocky[hariri | hariri chanzo]

Fibonacci number in Blocky.png

Mifano (recursive)[hariri | hariri chanzo]

Ruby[hariri | hariri chanzo]

def fib(n)
  return n if n <= 1
  fib(n - 1) + fib(n - 2)
end

fib(20)   # 6765

Python[hariri | hariri chanzo]

def fib(n):
    if n <= 1:
        return n
    return fib(n - 1) + fib(n - 2)

fib(20)     # 6765

Javascript[hariri | hariri chanzo]

function fib(n) {
    if (n <= 1) {
        return n;
    }
    return fib(n - 1) + fib(n - 2);
}

fib(20);    // 6765

Angalia pia[hariri | hariri chanzo]