Utaratibu (uhandisi wa programu)

(Elekezwa kutoka Subroutine)

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

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
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
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
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

 

Mifano (recursive)

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

fib(20)   # 6765

Python

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

fib(20)     # 6765

Javascript

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

fib(20);    // 6765

Angalia pia

hariri
  Makala hii kuhusu mambo ya teknolojia bado ni mbegu.
Je, unajua kitu kuhusu mada hiyo kama historia yake au mahusiano yake na mada nyingine?
Labda unaona habari katika Wikipedia ya Kiingereza au lugha nyingine zinazofaa kutafsiriwa?
Basi unaweza kuisaidia Wikipedia kwa kuihariri na kuongeza habari.